Bug #64979
openjava_s3tests: some test cases don't wait for multipart uploads to complete
0%
Description
from rgw logs, i see lots of errors from multipart part uploads that fail because the bucket no longer exists:
2024-03-19T04:19:16.835+0000 10e5ef640 20 REQUEST_METHOD=PUT 2024-03-19T04:19:16.835+0000 10e5ef640 20 REQUEST_URI=/test-921b1aef-219b-462b-ae42-b66b013832cd46/key1?uploadId=2%7EJtIGDHGF8yljSpZI0YTLWfz3lkToMEm&partNumber=64 ... 2024-03-19T04:19:16.879+0000 d9585640 5 bucket test-921b1aef-219b-462b-ae42-b66b013832cd46 doesn't exist, not logging 2024-03-19T04:19:16.879+0000 d9585640 2 req 7429086370090654760 0.043999478s s3:put_obj op status=0 2024-03-19T04:19:16.879+0000 d9585640 2 req 7429086370090654760 0.043999478s s3:put_obj http status=404
some test cases must be returning early and cleaning up the bucket before the multipart upload completes
Updated by Samarah Uriarte 5 days ago
The "bucket ... doesn't exist, not logging" statement appears because the "rgw enable ops log" config option is set to true in the qa/suites/rgw/verify/datacache/rgw-datacache.yaml file.
The verify/tasks/bucket-check.yaml file calls run-bucket-check.sh, which runs the test_rgw_bucket_check.py program. Within this program on lines 37-41, the bucket named "check-bucket" is deleted as part of the pre-test cleanup: https://github.com/ceph/ceph/blob/main/qa/workunits/rgw/test_rgw_bucket_check.py#L37-L41.
Additionally, the Java S3 Tests run the tearDown method as part of the set up for each unit test. Within the tearDown method, the bucket is deleted as seen here: https://github.com/ceph/java_s3tests/blob/master/src/main/java/S3.java#L232. This is likely the source of the above log statement appearing for each test bucket. This is more evident when reviewing the logs and seeing that the bucket itself is created after the log statement appears for that particular test.
Additional note: Recent runs of the verify suite do not include this message within the java_s3test jobs.