Project

General

Profile

Actions

Bug #53963

closed

[rbd-mirror] fix races in snapshot-based mirroring deletion propagation

Added by Ilya Dryomov over 2 years ago. Updated almost 2 years ago.

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

0%

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

Description

When remote image is deleted, rbd-mirror can encounter three cases:

- no remote image id
- no remote mirror metadata
- MIRROR_IMAGE_STATE_DISABLING in remote mirror metadata

Currently, only the first case is handled correctly.

This is not observed at all times, but is observed if the following (broad) sequence of operations are performed:

- Create image on "east" cluster
- Enable snapshot mirroring for created image on "east" 
- Ensure mirror image on "west" is created
- Force promote "west" image
- Demote "east" image
- Resync "east" image from "west" 
- Demote "west" image
- Ensure "east" has caught up (both should be "up+unknown, remote image demoted")
- Promote "east" image
- Ensure "west" has caught up ("east" should be "up+stopped, local image is primary", "west" should be "up+replaying")
- Delete "east" image
! Image at "west" does not get garbage collected

Related issues 2 (0 open2 closed)

Copied to rbd - Backport #53988: octopus: [rbd-mirror] fix races in snapshot-based mirroring deletion propagationResolvedIlya DryomovActions
Copied to rbd - Backport #53989: pacific: [rbd-mirror] fix races in snapshot-based mirroring deletion propagationResolvedIlya DryomovActions
Actions

Also available in: Atom PDF