Bug 1369586

Summary: ceph osd pool create uses 'rule_id' vs 'ruleset' when ruleset name specified during pool creation
Product: [Red Hat Storage] Red Hat Ceph Storage Reporter: Mike Hackett <mhackett>
Component: RADOSAssignee: Kefu Chai <kchai>
Status: CLOSED ERRATA QA Contact: Parikshith <pbyregow>
Severity: medium Docs Contact: Erin Donnelly <edonnell>
Priority: medium    
Version: 1.3.2CC: anharris, ceph-eng-bugs, dzafman, edonnell, hnallurv, jdurgin, kchai, kdreyer, pbyregow, skinjo, vumrao
Target Milestone: rc   
Target Release: 3.0   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: RHEL: ceph-12.2.0-1.el7cp Ubuntu: ceph_12.2.0-2redhat1xenial Doc Type: Bug Fix
Doc Text:
.Creating a new pool after manually modifying the CRUSH map and removing a CRUSH ruleset no longer causes issues Previously, creating a new pool after manually modifying the CRUSH map and removing a CRUSH ruleset caused the newly created pool to use `rule_id` rather than the specified `ruleset`. This lead to other issues in the cluster, such as the inability to unprotect snapshots because the newly created pool was in an incorrect state. The underlying issue has been fixed, and the newly created pools have the correct specified CRUSH ruleset and behave as expected.
Story Points: ---
Clone Of:
: 1372071 (view as bug list) Environment:
Last Closed: 2017-12-05 23:31:14 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1372071, 1494421    

Description Mike Hackett 2016-08-23 20:53:55 UTC
Description of problem:
Creating a new pool after manually modifying the CRUSH map and removing a CRUSH ruleset causes the newly created pool to use rule_id rather than the specified ruleset. This can lead to other issues in the cluster such as not being able to unprotect snapshots due to the newly created pool being in an errored state.

Version-Release number of selected component (if applicable):
RHCS 1.3.2
Ceph-0.94.6

How reproducible:
Always

Steps to Reproduce:
1. Have 3 crush rulesets with consecutive rule ID's (ex. 0, 1, 2)
2. Manually manipulate the CRUSH map and delete the middle ruleset. Leaving a gap between rule_id 0 and 2 and inject the new map.
3. Create a new pool and specify the ruleset name for rule_id 2. Pool shows as successfully created but PG's never get created and pool shows it's using a crush_ruleset that does not exist.

Actual results:
The pool gets created with an incorrect crush_ruleset

Expected results:
Pool should get created with correct specified crush ruleset.

Additional info:
Similar to https://bugzilla.redhat.com/show_bug.cgi?id=1258953

Comment 4 Mike Hackett 2016-08-25 20:01:24 UTC
Upstream tracker: http://tracker.ceph.com/issues/17138

Comment 12 Josh Durgin 2017-08-30 17:27:23 UTC
https://github.com/ceph/ceph/pull/13683

Comment 13 Ken Dreyer (Red Hat) 2017-09-27 19:04:44 UTC
PR 13683 has been available since v12.1.0

Comment 25 errata-xmlrpc 2017-12-05 23:31:14 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:3387