]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd: handle boot racing with NOUP set + clear 7483/head
authorSage Weil <sage@redhat.com>
Tue, 2 Feb 2016 15:51:53 +0000 (10:51 -0500)
committerSage Weil <sage@redhat.com>
Tue, 8 Mar 2016 16:19:26 +0000 (11:19 -0500)
commit7139a232d26beef441ffbc13bc087baab3505ea8
tree641cc21b6da44a163d1012aa874fe7eaf1bf1f78
parent7eba5baedc17ce7d66b9372713f85ae48b23671f
osd: handle boot racing with NOUP set + clear

Resolve this race:

- osd sends boot message
- mon sets NOUP
- mon receives and drops boot message
- mon later clear NOUP
-> osd still waiting

by restarting the boot process if we are is_booting() and we see
the NOUP flag cleared.  This implies we sent the boot before NOUP
was set (we don't send boot while it is) and the mon probably
dropped our request.  If it didn't we'll go through another boot
cycle, but that is rare, mostly harmless, and unavoidable (there's
no easy way to tell whether our message was dropped or not).

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