use context.WithoutCancel to avoid context cancellation when the client connection is closed

This commit is contained in:
Chris Lu
2026-01-11 11:59:44 -08:00
parent ce6e9be66b
commit 2b5e951390

View File

@@ -1,6 +1,7 @@
package weed_server
import (
"context"
"errors"
"fmt"
"net/http"
@@ -46,7 +47,8 @@ func (vs *VolumeServer) PostHandler(w http.ResponseWriter, r *http.Request) {
}
ret := operation.UploadResult{}
isUnchanged, writeError := topology.ReplicatedWrite(ctx, vs.GetMaster, vs.grpcDialOption, vs.store, volumeId, reqNeedle, r, contentMd5)
// use context.WithoutCancel to avoid context cancellation when the client connection is closed
isUnchanged, writeError := topology.ReplicatedWrite(context.WithoutCancel(ctx), vs.GetMaster, vs.grpcDialOption, vs.store, volumeId, reqNeedle, r, contentMd5)
if writeError != nil {
writeJsonError(w, r, http.StatusInternalServerError, writeError)
return