fix(bssdk): fix background delete when context is canceled

. #22765250 of #22357724

Signed-off-by: mawei029 <mawei2@oppo.com>
This commit is contained in:
mawei029 2024-11-07 09:57:05 +08:00 committed by 梁曟風
parent 4224c19de0
commit 1f8eb1f584
2 changed files with 8 additions and 4 deletions

View File

@ -450,7 +450,9 @@ func (c *client) putPartsBatch(ctx context.Context, parts []blobPart) error {
})
}
if err := task.Run(context.Background(), tasks...); err != nil {
span := trace.SpanFromContextSafe(ctx)
_, newCtx := trace.StartSpanFromContextWithTraceID(context.Background(), "", span.TraceID())
if err := task.Run(ctx, tasks...); err != nil {
for _, part := range parts {
part := part
// asynchronously delete blob
@ -461,7 +463,7 @@ func (c *client) putPartsBatch(ctx context.Context, parts []blobPart) error {
if err != nil {
return
}
rpcClient.DoWith(ctx, req, nil)
rpcClient.DoWith(newCtx, req, nil)
}()
}
return err

View File

@ -548,12 +548,14 @@ func (s *sdkHandler) putPartsBatch(ctx context.Context, parts []blobPart) error
})
}
if err := task.Run(context.Background(), tasks...); err != nil {
span := trace.SpanFromContextSafe(ctx)
_, newCtx := trace.StartSpanFromContextWithTraceID(context.Background(), "", span.TraceID())
if err := task.Run(ctx, tasks...); err != nil {
for _, pt := range parts {
part := pt
// asynchronously delete blob
go func() {
s.deleteBlob(ctx, &acapi.DeleteBlobArgs{
s.deleteBlob(newCtx, &acapi.DeleteBlobArgs{
ClusterID: part.cid,
Vid: part.vid,
BlobID: part.bid,