Actions
Bug #17568
closedmultisite: race between ReadSyncStatus and InitSyncStatus leads to EIO errors
% Done:
0%
Source:
other
Tags:
Backport:
jewel
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
RGWInitSyncStatusCoroutine locks the mdlog.sync-status object, queries log positions from the remote, writes shard marker objects, then writes the mdlog.sync-status object. The cls lock operation will actually create mdlog.sync-status, so there's a window where RGWReadSyncStatusCoroutine can read an empty buffer instead of getting ENOENT (before RGWInitSyncStatusCoroutine starts) or valid data (after RGWInitSyncStatusCoroutine completes). When RGWReadSyncStatusCoroutine sees a successful read with an empty buffer, RGWSimpleRadosReadCR tries to decode that into rgw_meta_sync_info and fails with EIO.
Updated by Casey Bodley over 7 years ago
- Related to Bug #17569: multisite: assertion in RGWRados::wakeup_data_sync_shards added
Updated by Casey Bodley over 7 years ago
- Related to Bug #17570: rgw: segfault on shutdown after failure to start meta_sync_processor_thread added
Updated by Casey Bodley over 7 years ago
- Related to Bug #17571: multisite: coroutine deadlock assertion on error in FetchAllMetaCR added
Updated by Casey Bodley over 7 years ago
- Status changed from New to Fix Under Review
- Backport set to jewel
Updated by Yehuda Sadeh over 7 years ago
- Status changed from Fix Under Review to Pending Backport
Updated by Loïc Dachary over 7 years ago
- Copied to Backport #17710: jewel: multisite: race between ReadSyncStatus and InitSyncStatus leads to EIO errors added
Updated by Nathan Cutler about 7 years ago
- Status changed from Pending Backport to Resolved
Actions