]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
Objecter: don't attempt to read from non-primary on EC pools
authorIlya Dryomov <idryomov@gmail.com>
Thu, 28 May 2020 10:24:20 +0000 (12:24 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Sun, 31 May 2020 12:26:28 +0000 (14:26 +0200)
commitaabdd4eed4c67531680a6f1f00c4a3cfe372b65c
tree240f00fa8e8673744ccb0a2b8cfb48ad1622ec76
parent64aa6910df80dea3468fff35edf20c3c10ff9b1b
Objecter: don't attempt to read from non-primary on EC pools

With BALANCE_READS or LOCALIZE_READS set, the client will hang if
the non-primary OSD is picked because the OSD will most likely drop
the op (or start waiting for peering that won't actually happen).

Refactor the code so that the replica read conditions don't need to
be repeated.  Apart from the missing replica pool check, the acting
set size was checked only in the LOCALIZE_READS case.

Fixes: https://tracker.ceph.com/issues/45793
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
src/osdc/Objecter.cc