Project

General

Profile

Actions

Bug #17138

closed

crush: inconsistent ruleset/ruled_id are difficult to figure out

Added by Michael Hackett over 7 years ago. Updated over 6 years ago.

Status:
Resolved
Priority:
Low
Assignee:
-
Category:
Administration/Usability
Target version:
-
% Done:

0%

Source:
Support
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
rbd
Component(RADOS):
CRUSH
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Attempting to unprotect a Ceph RBD snapshot that does not have any children with 'rbd -p <pool name> snap unprotect' causes the command to hang and the snapshot remains in a protected state so that it cannot be deleted. The snapshot does not have any children.
This issue is seen when a pool that was created after the CRUSH map was manually edited to remove a ruleset has an invalid rule_id that does not exist due to the manual edit of the CRUSH map. This unprotect likely fails because snap_unprotect() in librbd/internal.cc: loops over all existing pools to look for children, when it reaches the errorerd pool with invalid rule_id we get stuck in loop.

Actions

Also available in: Atom PDF