Actions
Bug #18819
closedPossible lockdep false alarm for ThreadPool lock
% Done:
0%
Source:
Tags:
Backport:
kraken
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
After the recent changes ThreadPool lockname is wrongly set to just "::lock". As a result different pools have the same lock names, which might lead to false alarms.
This was noticed, when running qa/workunits/rbd/rbd-nbd.sh, due to interference of "librbd::thread_pool" from ImageCtx.cc and "librbd::ImageUpdateWatchers::thread_pool" from ImageState.cc:
2017-02-04 13:07:13.462430 7f08d2ffd700 20 librbd::ImageState: 0x55c445811860 handle_update_notification: refresh_seq = 1, last_refresh = 0 2017-02-04 13:07:13.462433 7f08d2ffd700 20 librbd::ImageState: 0x55c445811be0 ImageUpdateWatchers::notify 2017-02-04 13:07:13.462434 7f08d2ffd700 0 ------------------------------------ existing dependency ::lock (38) -> librbd::ImageState::m_lock (0x55c445811860) (36) at: ceph version 11.1.0-7326-g3b807e7 (3b807e763ab0db0accc35fd3fc1ff75e360d34be) 1: (()+0x6d05b) [0x7f0909f6c05b] 2: (()+0x4dcd6) [0x7f0909f4ccd6] 3: (ThreadPool::worker(ThreadPool::WorkThread*)+0x654) [0x7f0901348f84] 4: (ThreadPool::WorkThread::entry()+0x10) [0x7f090134a9d0] 5: (()+0x76ba) [0x7f0900e976ba] 6: (clone()+0x6d) [0x7f090043182d] 2017-02-04 13:07:13.462465 7f08d2ffd700 0 existing intermediate dependency librbd::ImageUpdateWatchers::m_lock (0x55c445811be0) (37) -> ::lock (38) at: ceph version 11.1.0-7326-g3b807e7 (3b807e763ab0db0accc35fd3fc1ff75e360d34be) 1: (ThreadPool::start()+0x1a5) [0x7f0901343ad5] 2: (()+0x72c02) [0x7f0909f71c02] 3: (librbd::Image::update_watch(librbd::UpdateWatchCtx*, unsigned long*)+0x30) [0x7f0909f36fe0] 4: (()+0x11d6f) [0x55c443885d6f] 5: (__libc_start_main()+0xf0) [0x7f090034b830] 6: (_start()+0x29) [0x55c4438841c9] 2017-02-04 13:07:13.462827 7f08d2ffd700 0 new dependency librbd::ImageState::m_lock (0x55c445811860) (36) -> librbd::ImageUpdateWatchers::m_lock (0x55c445811be0) (37) creates a cycle at ceph version 11.1.0-7326-g3b807e7 (3b807e763ab0db0accc35fd3fc1ff75e360d34be) 1: (()+0x6bed1) [0x7f0909f6aed1] 2: (()+0x6cbfc) [0x7f0909f6bbfc] 3: (()+0x5fc28) [0x7f0909f5ec28] 4: (()+0xceed0) [0x7f0909fcded0] 5: (()+0x1494aa) [0x7f090a0484aa] 6: (()+0x4ab59) [0x7f0909f49b59] 7: (()+0x14e1f0) [0x7f090a04d1f0] 8: (librados::C_AioComplete::finish(int)+0x36) [0x7f0909c4e2f6] 9: (Context::complete(int)+0x9) [0x7f0909c30f39] 10: (Finisher::finisher_thread_entry()+0x49e) [0x7f090133cc4e] 11: (()+0x76ba) [0x7f0900e976ba] 12: (clone()+0x6d) [0x7f090043182d]
Actions