Bug #21202
openRGW: RGWDeleteMultiObj failed with '_' in object name
0%
Description
Hi, guys!
We found there is some problem in RGWDeleteMultiObj::execute(). This function is called when one want to delete multiple objects in a single HTTP request. However, when the object name contains '_' character, for example '_ABC_', the HTTP request will return 200, but the object called '_ABC_' still exists in ceph.
Further investigation shows that RGWDeleteMultiObj init an rgw_obj class with rgw_obj_key type, which will discriminate objects with '_' in names. However, RGWDeleteObj just use an string to initiate a rgw_obj class, thus everything goes well.
The strange behavior was introduce at https://github.com/ceph/ceph/commit/470afb9cc7a792f09ab417ae833e4ec8b6fae7ef. With changing the way rgw_obj is initiated, RGWMultiDeleteObj can deal with object with '_' in name. But the commit mentioned ahead exists from 9.1.0 to 11.2.1, I'm not sure whether it is a bug, any one can help? Or could any one tell us is this strange behavior expected?
Thanks!