From 5208c7c7275f3a5be761be03817032905c6ab2b7 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Wed, 11 Mar 2026 13:49:11 -0700 Subject: [PATCH] fix(s3api): improve PutBucketHandler comment for orphaned collection recovery Clarify the comment and log message for the case where a collection exists but the bucket directory is missing, explaining the root cause (partial deletion) more precisely. --- weed/s3api/s3api_bucket_handlers.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/weed/s3api/s3api_bucket_handlers.go b/weed/s3api/s3api_bucket_handlers.go index e8a1fd064..53e2fce36 100644 --- a/weed/s3api/s3api_bucket_handlers.go +++ b/weed/s3api/s3api_bucket_handlers.go @@ -251,11 +251,12 @@ func (s3a *S3ApiServer) PutBucketHandler(w http.ResponseWriter, r *http.Request) } } - // If collection exists but bucket directory doesn't, this is an orphaned state - // from a previous bucket deletion where volumes haven't been fully cleaned up yet. - // Allow the bucket to be recreated by proceeding with directory creation. + // If collection exists but bucket directory doesn't, this is an inconsistent state + // that can occur when a previous bucket deletion partially completed (collection + // deletion failed but directory deletion succeeded, or volumes were recreated). + // Recover by proceeding to create the missing bucket directory. if collectionExists { - glog.Warningf("PutBucketHandler: collection exists but bucket directory missing for %s, recreating bucket directory", bucket) + glog.Warningf("PutBucketHandler: collection exists but bucket directory missing for %s, recovering by creating bucket directory", bucket) } // Check for x-amz-bucket-object-lock-enabled header BEFORE creating bucket