]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mon/OSDMonitor: send_to_waiting() in on_active()
authorSage Weil <sage@inktank.com>
Tue, 16 Jul 2013 21:49:33 +0000 (14:49 -0700)
committerSage Weil <sage@inktank.com>
Tue, 16 Jul 2013 21:49:59 +0000 (14:49 -0700)
commitf06a124a7fa0717ef8c523408b31d814df57caca
tree65711266bad0ab0021de2b84740c5f2811bd5cfc
parentacbc2f0bc0b4266125403aebb28e6e3a2365394d
mon/OSDMonitor: send_to_waiting() in on_active()

The send_latest() helper may put a message in the waiting_for_map list
if we are not readable, but currently send_to_waiting() is only called
from update_from_paxos(), and it is possible that we may be unreadable
but not get a map update.

Instead, share the map when we are active.  Do the same for check_subs(),
which is also about sharing the *new* map.  Leave
share_map_with_random_osd() and process_failures() which are not
concerned with whether this is the latest map or not.

This problem surfaced when we changed the timing of refresh relative to
paxos commit, since update_from_paxos() is now not normally called while
readable; see f1ce8d7c955a2443111bf7d9e16b4c563d445712 and
c711203c0d4b924e5951aa808b243bf06e7ad23a.

Fixes: #5643
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
src/mon/OSDMonitor.cc