From c4f4d38f9098ed55c2f1c67d881356bb08d51e9d Mon Sep 17 00:00:00 2001 From: chrislu Date: Thu, 20 Nov 2025 19:50:44 -0800 Subject: [PATCH] data racing in test --- test/s3/iam/s3_iam_framework.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/test/s3/iam/s3_iam_framework.go b/test/s3/iam/s3_iam_framework.go index 178ae0763..c155b7358 100644 --- a/test/s3/iam/s3_iam_framework.go +++ b/test/s3/iam/s3_iam_framework.go @@ -705,12 +705,22 @@ func (f *S3IAMTestFramework) CreateBucketWithCleanup(s3Client *s3.S3, bucketName f.t.Logf("Warning: Failed to delete existing bucket %s: %v", bucketName, deleteErr) } + // Add a small delay to allow deletion to propagate + time.Sleep(100 * time.Millisecond) + // Now create it fresh _, err = s3Client.CreateBucket(&s3.CreateBucketInput{ Bucket: aws.String(bucketName), }) if err != nil { - return fmt.Errorf("failed to recreate bucket after cleanup: %v", err) + // If it still says bucket exists after cleanup, it might be in an inconsistent state + // In this case, just use the existing bucket since we emptied it + if awsErr, ok := err.(awserr.Error); ok && (awsErr.Code() == "BucketAlreadyExists" || awsErr.Code() == "BucketAlreadyOwnedByYou") { + f.t.Logf("Bucket %s still exists after cleanup, reusing it", bucketName) + // Bucket exists and is empty, so we can proceed + } else { + return fmt.Errorf("failed to recreate bucket after cleanup: %v", err) + } } } else { return err