Bug #55424
closedceph-mon process exit in dead status , which backtrace displayed has blocked by compact_queue_thread
0%
Description
plz see abc.png
LevelDBstore::close
set thread quit flag, compact_queue_stop = true.
then send signal to compact_queue_cond
LevelDBStore::compact_thread_entry
loop on !compact_queue_stop
wait compact_queue_cond, block current thread running.
follow gdb checking.
compact_queue_stop = true
ceph-mon most thread are quit.
compact_queue empty
compact_queue_lock seems like normally, not invalid memory members.
compact_queue_cond and this seems like normally, not invalid memory members.
ceph-mon has dead blocked while it be killed.
checking mutex logic and condition (signal/wait)
I guest it maybe compact_queue_stop was declared to type bool.
Should it be atomic/volatile, when in multi threads and multi core env, bool type vars may meet inconsistent questions.
RocksDBStore::compact_thread_entry and some other places have a lot of similary codes.
Look for a help and conversgations. tks.
Files
Updated by Radoslaw Zarzynski about 2 years ago
- Status changed from New to Won't Fix
Sorry, the version is EOL :-(.