Actions
Bug #22555
closedStale bucket index entry remains after object deletion
Status:
Resolved
Priority:
Normal
Assignee:
-
Target version:
-
% Done:
0%
Source:
Tags:
Backport:
jewel luminous
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
We have a race condition:
RGW client 1: requests an object be deleted. RGW client 1: sends a prepare op to bucket index OSD 1. OSD 1: prepares the op, adding pending ops to the bucket dir entry RGW client 2: sends a list bucket to OSD 1 RGW client 2: sees that there are pending operations on bucket dir entry, and calls check_disk_state RGW client 2: check_disk_state sees that the object still exists, so it sends CEPH_RGW_UPDATE to bucket index OSD (1) RGW client 1: sends a delete object to object OSD (2) OSD 2: deletes the object RGW client 2: sends a complete op to bucket index OSD (1) OSD 1: completes the op OSD 1: receives the CEPH_RGW_UPDATE and updates the bucket index entry, thereby RECREATING it
Solution implemented:
At step 5 the object's dir entry exists. If we get to beginning of step 11 and the object's dir entry no longer exists, we know that the dir entry was just actively being modified, and ignore the CEPH_RGW_UPDATE operation, thereby NOT recreating it.
Updated by Casey Bodley over 6 years ago
- Status changed from New to Pending Backport
Updated by Nathan Cutler over 6 years ago
- Copied to Backport #22571: luminous: Stale bucket index entry remains after object deletion added
Updated by Nathan Cutler over 6 years ago
- Copied to Backport #22572: jewel: Stale bucket index entry remains after object deletion added
Updated by Nathan Cutler about 6 years ago
- Status changed from Pending Backport to Resolved
Actions