summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-06-24 18:12:11 -0700
committerSage Weil <sage@inktank.com>2013-06-24 18:12:11 -0700
commit03d3be3eaa96a8e72754c36abd6f355c68d52d59 (patch)
tree820e27292b79373c3d3a1e898049ccc43ebad595
parent521fdc2a4e65559b3da83283e6ca607b6e55406f (diff)
downloadceph-03d3be3eaa96a8e72754c36abd6f355c68d52d59.tar.gz
mon: cancel probe timeout on reset
If we are probing and get (say) an election timeout that calls reset(), cancel the timer. Otherwise, we assert later with a splat like 2013-06-24 01:09:33.675882 7fb9627e7700 4 mon.b@0(leader) e1 probe_timeout 0x307a520 2013-06-24 01:09:33.676956 7fb9627e7700 -1 mon/Monitor.cc: In function 'void Monitor::probe_timeout(int)' thread 7fb9627e7700 time 2013-06-24 01:09:43.675904 mon/Monitor.cc: 1888: FAILED assert(is_probing() || is_synchronizing()) ceph version 0.64-613-g134d08a (134d08a9654f66634b893d493e4a92f38acc63cf) 1: (Monitor::probe_timeout(int)+0x161) [0x56f5c1] 2: (Context::complete(int)+0xa) [0x574a2a] 3: (SafeTimer::timer_thread()+0x425) [0x7059a5] 4: (SafeTimerThread::entry()+0xd) [0x7065dd] 5: (()+0x7e9a) [0x7fb966f62e9a] 6: (clone()+0x6d) [0x7fb9652f9ccd] NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this. Fixes: #5438 Backport: cuttlefish Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
-rw-r--r--src/mon/Monitor.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc
index 7b8d95173f0..c4ce3577651 100644
--- a/src/mon/Monitor.cc
+++ b/src/mon/Monitor.cc
@@ -712,6 +712,7 @@ void Monitor::reset()
{
dout(10) << "reset" << dendl;
+ cancel_probe_timeout();
timecheck_finish();
leader_since = utime_t();