Bug #39335
Updated by Sage Weil about 5 years ago
set_store does a wait for a mon command reply while holding the GIL. if you are unlucky we can get a deadlock that is incompletely captured by these partial notes i used to debug it: <pre> 40 Thread 13 clusterstate::lock mgr::lock mgr::ms_dispatch lock objecter::rwlock (blocked) activepy::lock activepymodules::notify_all (wiating) 28 Thread 20 activepymodules::lock *** mgr::lock mgr::get_services (waiting) Thread 21 clusterstate::lock objecter::rwlock (blocked) gil notify_clog 27? osd_command Thread 22 objecter::rwlock (blocked) submit_command daemonserver::lock handle_open Thread 24 objecter__rwlock (blocked) 13 cluster_state::lock send_report objecter::rwlock activepymodules::lock (blocked) ... deadlock! objecter::Lock activepy::lock get_health_checks (waiting) $ thread 43 activepy::lock with_perf_counters gil restorethread </pre>