Actions
Bug #7062
closedDead lock happend if daemonize
% Done:
0%
Source:
Community (dev)
Tags:
Backport:
Regression:
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
New ceph_osd.cc code did ObjectStore init work before global_init_daemonize(), and WBThrottle thread is created when objectstore constructed. So after daemon(), WBThrottle thread won't exist in new process. It will result in deadlock.
When "cur_ios" which is member of WBThrottle hits hard limit, there exists two ways to decrease "cur_ios". The first is WBThrottle thread which is dead if deamonize, another is SyncThread. SyncThread will block at op_tp.pause() because thread in op_tp(threadpool) block at wbthrottle.throttle(FileStore::_do_op). So no thread will continue process jobs in filestore layer and all threads is waiting.
Turn off daemon is OK
Updated by Sage Weil over 10 years ago
- Status changed from New to Resolved
- Source changed from other to Community (dev)
Actions