Project

General

Profile

Actions

Bug #38060

closed

rgw:versioning:fix versioning concurrent bug, supplement using of olh.ver

Added by hao wang over 5 years ago. Updated about 5 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
mimic, luminous
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

when i learn about the implementation scheme of rgw versioning, i found the olh.ver is not used, which causes concurrent issue:
the process of put object to versioned bucket: fist, add key_[V1] to data pool; second, set 1001_key in index pool to 1000_key_V1; third, read log in 1001_key, then based on these logs, set the olh.info of olh object to V1, which means the newest version.
While, in the third phase, when rgw1 read log{op_tag1} then rgw1 halt here. Meanwhile, rgw2 put a new verison V2, after phase second, read log{op_tag1, op_tag2}, then change the olh.info to V2. Then rgw1 change the olh.info to V1, which is old instance actually.
The auth design the olh.ver to avoid this issue actually, while he forget to add the setxattr in phase third.


Related issues 2 (0 open2 closed)

Copied to rgw - Backport #38414: luminous: rgw:versioning:fix versioning concurrent bug, supplement using of olh.verResolvedCasey BodleyActions
Copied to rgw - Backport #38415: mimic: rgw:versioning:fix versioning concurrent bug, supplement using of olh.verResolvedPrashant DActions
Actions

Also available in: Atom PDF