]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd: flush peering queue (consume maps) prior to boot
authorSage Weil <sage@inktank.com>
Thu, 7 Feb 2013 18:21:49 +0000 (10:21 -0800)
committerSage Weil <sage@inktank.com>
Thu, 7 Feb 2013 18:21:49 +0000 (10:21 -0800)
commitaf95d934b039d65d3667fc022e2ecaebba107b01
tree7047bfff55a279013784fda698aae2f832ee929b
parent27fb0e63053a581b67a79718876e89fea0026d7a
osd: flush peering queue (consume maps) prior to boot

If the osd itself is behind on many maps during boot, it will get more and
(as part of that) flush the peering wq to ensure the pgs consume them.
However, it is possible for OSD to have latest/recnet maps, but pgs to be
behind, and to jump directly to boot and join.  The OSD is then laggy and
unresponsive because the peering wq is way behind.

To avoid this, call consume_map() (kick the peering wq) at the end of
init and flush it to ensure we are *internally* all caught up before we
consider joining the cluster.

I'm pretty sure this is the root cause of #3905 and possibly #3995.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
src/osd/OSD.cc