Description of problem: Running the following command: radosgw-admin bucket check –fix In builds of Jewel >= 10.2.7 results in valid objects being removed as well. Upstream master has been fixed but we need a fix for Ceph 2.4. http://tracker.ceph.com/issues/18470 https://github.com/ceph/ceph/pull/16856 Version-Release number of selected component (if applicable): 2.3 How reproducible: 100% Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
Moving to 2.5 until post 2.4 release.
@matt, @orit, Could you please suggest a reproducer for this?
(In reply to shilpa from comment #3) > @matt, @orit, > > Could you please suggest a reproducer for this? This is bug caused bucket check to remove non multipart entries. You can try creating a bucket, adding objects. Upload a multipart objects at least one that is not commited. Run bucket check --fix see all the objects are there
(In reply to Orit Wasserman from comment #6) > (In reply to shilpa from comment #3) > > @matt, @orit, > > > > Could you please suggest a reproducer for this? > > This is bug caused bucket check to remove non multipart entries. > You can try creating a bucket, adding objects. > Upload a multipart objects at least one that is not commited. > Run bucket check --fix see all the objects are there Thanks Orit. Do you mean initiate a multipart upload that is incomplete without doing a complete_upload?
(In reply to shilpa from comment #7) > (In reply to Orit Wasserman from comment #6) > > (In reply to shilpa from comment #3) > > > @matt, @orit, > > > > > > Could you please suggest a reproducer for this? > > > > This is bug caused bucket check to remove non multipart entries. > > You can try creating a bucket, adding objects. > > Upload a multipart objects at least one that is not commited. > > Run bucket check --fix see all the objects are there > > Thanks Orit. Do you mean initiate a multipart upload that is incomplete > without doing a complete_upload? yes
Created attachment 1329785 [details] bucket.py -- create a bucket with some objects script used to create a bucket with some objects in it.
Created attachment 1329786 [details] testmulti.py -- this creates an unfinished multpart uploaded file Creates a multpart uploaded file that is not complete.
Created attachment 1329787 [details] testmulti.py -- multisite tester. This creates an incomplete multipart file.
Created attachment 1329788 [details] viewbucket.py -- look at bucket objects. This is used to verify that other objects in the bucket are not affected by the check run on the multipart object.
Test procedure: 1. cat a /var/log/*/* file that was big with itself repeatedly until you get a 16G text file named bigstuff. 2. run python bucket.py foo 1 to create a bucket with 1000 objects in it. 3. run python testmulti.py foo bigstuff 4. run radosgw-admin bucket check --fix --bucket=foo 5. run python viewbucket.py foo to make sure that bigstuff is gone and all the other files are still there. This test reproduced the bug on 2.4 and the bug did not occur on 2.4a
(In reply to Warren from comment #14) > Created attachment 1329787 [details] > testmulti.py -- multisite tester. > > This creates an incomplete multipart file. Ignore this comment. It inaccurately repeats the one before.
Verified on Ubuntu
This has been verified on Ubuntu as well.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2017:2903