aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2025-11-05 22:53:26 -0800
committerchrislu <chris.lu@gmail.com>2025-11-05 22:53:26 -0800
commit0a3bc313b32872b3f0f967747156a758229c4818 (patch)
treeb16e8fc1a19cd1be7bfed3aef5b91f64427a8930
parentde24b2e42c67d9cc96f7ff97660e505ef58c96d1 (diff)
downloadseaweedfs-0a3bc313b32872b3f0f967747156a758229c4818.tar.xz
seaweedfs-0a3bc313b32872b3f0f967747156a758229c4818.zip
context
-rw-r--r--weed/server/filer_grpc_server.go6
1 files changed, 4 insertions, 2 deletions
diff --git a/weed/server/filer_grpc_server.go b/weed/server/filer_grpc_server.go
index 34c5eb773..5a51faeeb 100644
--- a/weed/server/filer_grpc_server.go
+++ b/weed/server/filer_grpc_server.go
@@ -310,8 +310,10 @@ func (fs *FilerServer) DeleteEntry(ctx context.Context, req *filer_pb.DeleteEntr
stopAtPath = "/"
}
- // Clean up empty parent directories starting from req.Directory
- fs.filer.DeleteEmptyParentDirectories(ctx, util.FullPath(req.Directory), stopAtPath)
+ // Use non-cancellable context to ensure cleanup completes atomically
+ // even if the client cancels the request after deletion succeeds
+ opCtx := context.WithoutCancel(ctx)
+ fs.filer.DeleteEmptyParentDirectories(opCtx, util.FullPath(req.Directory), stopAtPath)
}
return resp, nil