Project

General

Profile

Actions

Bug #8373

closed

Pool creation defaults to ruleset 0 even if it doesn't exist

Added by John Spray about 10 years ago. Updated almost 10 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Monitor
Target version:
-
% 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

Also available in: Atom PDF