]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd: request new map from PG when needed 17796/head
authorJosh Durgin <jdurgin@redhat.com>
Tue, 19 Sep 2017 02:31:10 +0000 (22:31 -0400)
committerJosh Durgin <jdurgin@redhat.com>
Tue, 19 Sep 2017 18:28:56 +0000 (14:28 -0400)
commita6ce7bfcf3ab00046f220a00ef2c283c3aa0bb31
treea8b98150b6e58a38194ec1115dc77a9c7d074333
parentddf84249fa8a8ec3655c39bac5331ab81c0307b1
osd: request new map from PG when needed

The fast dispatch refactor in 3cc48278bf0ee5c9535d04b60a661f988c50063b
eliminated the osdmap subscription in the ms_fast_dispatch path, which
meant ops could reach a PG without having the latest map. In a cluster
with few osdmap updates, where the monitor fails to send a new map to
an osd (it tries one random osd), this can result in indefinitely
blocked requests.

Fix this by adding an OSDService mechanism for scheduling a new osdmap
subscription request.

Fixes: http://tracker.ceph.com/issues/21428
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
(cherry picked from commit dd33360e5a4ed06228af552edadee88e66c5aba9)
src/osd/OSD.cc
src/osd/OSD.h
src/osd/PrimaryLogPG.cc