Description of problem: If all of the OSDs in a host are marked out, crush_choose_indep on a leaf bucket with recurse_to_leaf=1 (chooseleaf rather than choose) will populate out2 before the is_out check: The motivating example was: rule ecpool-86 { id 86 type erasure step set_chooseleaf_tries 5 step set_choose_tries 100 step take default class hdd step choose indep 4 type host step chooseleaf indep 4 type osd step emit } If all of the OSDs in a host are marked out, crush_choose_indep on a leaf bucket with recurse_to_leaf=1 (chooseleaf rather than choose) will populate out2 before the is_out check: https://tracker.ceph.com/issues/62213 Version-Release number of selected component (if applicable): ceph version 17.2.6-70.el9cp How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info: