Actions
Bug #8373
closedPool creation defaults to ruleset 0 even if it doesn't exist
% Done:
0%
Source:
Development
Tags:
Backport:
Regression:
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
common/config.h 33: CEPH_DEFAULT_CRUSH_REPLICATED_RULESET, 34: CEPH_DEFAULT_CRUSH_ERASURE_RULESET, common/config_opts.h 422:OPTION(osd_pool_default_crush_replicated_ruleset, OPT_INT, CEPH_DEFAULT_CRUSH_REPLICATED_RULESET)
The default value (0) for ruleset in replicated pools is defined as an enum, but interpreted as a literal value. If there is no rule 0, pool creation operations create a broken pool with crush_ruleset=0.
We should interpret osd_pool_default_crush_replicated_ruleset during creation such that if it equals CEPH_DEFAULT_CRUSH_REPLICATED_RULESET we pick the lowest numbered available crush rule.
Actions