You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
removeObjects() sends the requested objects to the server in batches of 1000. When a batch returns any error other than NoSuchVersion, the iterator sets completed = error != null (MinioAsyncClient.java line 1120 on master), so it stops after reporting that batch's errors and never sends the remaining batches. The caller sees only the failing batch's errors, and nothing indicates that the later objects were not deleted.
Steps to reproduce
Create a bucket with object lock enabled, and put 1500 objects (obj-0000 to obj-1499).
Enable legal hold on obj-0010.
Call removeObjects() with all 1500 object names and version IDs, and iterate every result.
List the object versions left in the bucket.
Actual result
One error is reported (obj-0010, InvalidRequest), and 501 object versions remain: obj-0010 plus all 500 objects in the second batch.
removeObjects()sends the requested objects to the server in batches of 1000. When a batch returns any error other thanNoSuchVersion, the iterator setscompleted = error != null(MinioAsyncClient.java line 1120 on master), so it stops after reporting that batch's errors and never sends the remaining batches. The caller sees only the failing batch's errors, and nothing indicates that the later objects were not deleted.Steps to reproduce
obj-0000toobj-1499).obj-0010.removeObjects()with all 1500 object names and version IDs, and iterate every result.Actual result
One error is reported (
obj-0010,InvalidRequest), and 501 object versions remain:obj-0010plus all 500 objects in the second batch.Expected result
One error is reported, and only
obj-0010remains.Details
0b581976, whereremoveObjects()is identical to master.completed = error != null;line removed, the same run reports the same error and leaves 1 object version.completed = true, so a batch whose only errors areNoSuchVersionno longer ends the iteration; any other error still does.