]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd: discard rank > 0 ops on erasure pools
authorSage Weil <sage@redhat.com>
Mon, 20 Oct 2014 20:55:33 +0000 (13:55 -0700)
committerSage Weil <sage@redhat.com>
Thu, 13 Nov 2014 01:14:20 +0000 (17:14 -0800)
commit588602bf0095de5b59064123ca01345f1364bdde
tree3fb267d1460c4c02a83369b3503064e9e2bb7883
parent0c1c4152e6f402af7612c8c8d4719ab0f4cc6ad9
osd: discard rank > 0 ops on erasure pools

Erasure pools do not support read from replica, so we should drop
any rank > 0 requests.

This fixes a bug where an erasure pool maps to [1,2,3], temporarily maps
to [-1,2,3], sends a request to osd.2, and then remaps back to [1,2,3].
Because the 0 shard never appears on osd.2, the request sits in the
waiting_for_pg map indefinitely and cases slow request warnings.
This problem does not come up on replicated pools because all instances of
the PG are created equal.

Fix by only considering role == 0 for erasure pools as a correct mapping.

Fixes: #9835
Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc