From b06364d641bf527f3049230676e297ed6488321d Mon Sep 17 00:00:00 2001 From: chrislu Date: Tue, 25 Nov 2025 14:56:21 -0800 Subject: [PATCH] refetch --- weed/s3api/s3api_object_handlers_put.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/weed/s3api/s3api_object_handlers_put.go b/weed/s3api/s3api_object_handlers_put.go index 97438de2b..540a1e512 100644 --- a/weed/s3api/s3api_object_handlers_put.go +++ b/weed/s3api/s3api_object_handlers_put.go @@ -139,8 +139,14 @@ func (s3a *S3ApiServer) PutObjectHandler(w http.ResponseWriter, r *http.Request) if !s3a.handleAutoCreateBucket(w, r, bucket, "PutObjectHandler") { return } - // After creating the bucket, versioning state is empty (not configured) - versioningState = "" + // Re-fetch versioning state to handle race conditions where + // another process might have created the bucket with versioning enabled. + versioningState, err = s3a.getVersioningState(bucket) + if err != nil { + glog.Errorf("Error re-checking versioning status for bucket %s after auto-creation: %v", bucket, err) + s3err.WriteErrorResponse(w, r, s3err.ErrInternalError) + return + } } else { glog.Errorf("Error checking versioning status for bucket %s: %v", bucket, err) s3err.WriteErrorResponse(w, r, s3err.ErrInternalError)