Project

General

Profile

Actions

Bug #55424

closed

ceph-mon process exit in dead status , which backtrace displayed has blocked by compact_queue_thread

Added by Yong Wang about 2 years ago. Updated about 2 years ago.

Status:
Won't Fix
Priority:
Normal
Assignee:
-
Category:
Code Hygiene
Target version:
% Done:

0%

Source:
Community (dev)
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
rados
Component(RADOS):
Monitor
Pull request ID:
Crash signature (v1):
Crash signature (v2):

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

abc.png (82.2 KB) abc.png Yong Wang, 04/25/2022 09:31 AM
Actions #1

Updated by Radoslaw Zarzynski about 2 years ago

  • Status changed from New to Won't Fix

Sorry, the version is EOL :-(.

Actions

Also available in: Atom PDF