Skip to content

Commit

Permalink
feature: optimize failed reason not set (dragonflyoss#446)
Browse files Browse the repository at this point in the history
Signed-off-by: Jim Ma <majinjing3@gmail.com>
  • Loading branch information
jim3ma authored Jul 9, 2021
1 parent 60df3f6 commit 1b12a34
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 6 deletions.
11 changes: 10 additions & 1 deletion client/daemon/peer/peertask_base.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ const (
reasonContextCanceled = "context canceled"
reasonPeerGoneFromScheduler = "scheduler says client should disconnect"

failedCodeNotSet = 0
failedReasonNotSet = "unknown"
failedCodeNotSet = 0
)

var errPeerPacketChanged = errors.New("peer packet changed")
Expand Down Expand Up @@ -344,6 +345,14 @@ func (pt *peerTask) pullPiecesFromPeers(pti Task, cleanUnfinishedFunc func()) {
}()
// wait first available peer
select {
case <-pt.ctx.Done():
err := pt.ctx.Err()
pt.Errorf("context done due to %s", err)
if pt.failedReason == failedReasonNotSet && err != nil {
pt.failedReason = err.Error()
}
pt.span.AddEvent(fmt.Sprintf("pulling pieces end due to %s", err))
return
case <-pt.peerPacketReady:
// preparePieceTasksByPeer func already send piece result with error
pt.Infof("new peer client ready, scheduler time cost: %dus, main peer: %s",
Expand Down
2 changes: 1 addition & 1 deletion client/daemon/peer/peertask_file.go
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ func newFilePeerTask(ctx context.Context,
readyPieces: NewBitmap(),
requestedPieces: NewBitmap(),
failedPieceCh: make(chan int32, 4),
failedReason: "unknown",
failedReason: failedReasonNotSet,
failedCode: dfcodes.UnknownError,
contentLength: -1,
totalPiece: -1,
Expand Down
9 changes: 5 additions & 4 deletions client/daemon/peer/peertask_stream.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ func newStreamPeerTask(ctx context.Context,
span.SetAttributes(config.AttributePeerID.String(request.PeerId))
span.SetAttributes(semconv.HTTPURLKey.String(request.Url))

logger.Debugf("request overview, url: %s, filter: %s, meta: %s, biz: %s", request.Url, request.Filter, request.UrlMeta, request.BizId)
logger.Debugf("request overview, pid: %s, url: %s, filter: %s, meta: %s, biz: %s",
request.PeerId, request.Url, request.Filter, request.UrlMeta, request.BizId)
// trace register
_, regSpan := tracer.Start(ctx, config.SpanRegisterTask)
result, err := schedulerClient.RegisterPeerTask(ctx, request)
Expand Down Expand Up @@ -153,7 +154,7 @@ func newStreamPeerTask(ctx context.Context,
readyPieces: NewBitmap(),
requestedPieces: NewBitmap(),
failedPieceCh: make(chan int32, 4),
failedReason: "unknown",
failedReason: failedReasonNotSet,
failedCode: dfcodes.UnknownError,
contentLength: -1,
totalPiece: -1,
Expand Down Expand Up @@ -229,7 +230,7 @@ func (s *streamPeerTask) Start(ctx context.Context) (io.Reader, map[string]strin
select {
case <-s.ctx.Done():
var err error
if s.failedReason != "" {
if s.failedReason != failedReasonNotSet {
err = errors.Errorf(s.failedReason)
} else {
err = errors.Errorf("ctx.PeerTaskDone due to: %s", s.ctx.Err())
Expand All @@ -243,7 +244,7 @@ func (s *streamPeerTask) Start(ctx context.Context) (io.Reader, map[string]strin
return nil, attr, err
case <-s.done:
var err error
if s.failedReason != "" {
if s.failedReason != failedReasonNotSet {
err = errors.Errorf(s.failedReason)
} else {
err = errors.Errorf("stream peer task early done")
Expand Down

0 comments on commit 1b12a34

Please sign in to comment.