failed CompleteMultipartUpload request does not release lock
A rados lock is used to prevent racing CompleteMultipartUpload requests on the same object. But if we fail the request (due to invalid arguments, missing parts, etc), the lock is not released.
So after a failed CompleteMultipartUpload request, all later CompleteMultipartUpload requests on that object will fail with '500 Internal Error' for a duration of rgw_mp_lock_max_time (default: 10 minutes). The radosgw log prints:
RGWCompleteMultipart::execute() failed to acquire lock