Bug #21596
failed CompleteMultipartUpload request does not release lock
Status:
Resolved
Priority:
High
Assignee:
-
Target version:
-
% Done:
0%
Source:
Tags:
Backport:
luminous, jewel
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
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
Related issues
History
#1 Updated by Matt Benjamin over 6 years ago
- Status changed from New to Fix Under Review
#2 Updated by Matt Benjamin over 6 years ago
- Status changed from Fix Under Review to Pending Backport
#3 Updated by Nathan Cutler over 6 years ago
- Copied to Backport #21695: luminous: failed CompleteMultipartUpload request does not release lock added
#4 Updated by Yuri Weinstein over 6 years ago
#5 Updated by Robin Johnson over 6 years ago
- Backport changed from luminous to luminous, jewel
This needs backporting to Jewel as well; I'm hitting what looks to be the same issue in DreamObjects, when there are many RGWs in the cluster, and the uploads are happening very fast.
#6 Updated by Nathan Cutler over 6 years ago
- Copied to Backport #21873: jewel: failed CompleteMultipartUpload request does not release lock added
#7 Updated by Nathan Cutler about 6 years ago
- Status changed from Pending Backport to Resolved