Project

General

Profile

Bug #18819

Possible lockdep false alarm for ThreadPool lock

Added by Mykola Golub 5 months ago. Updated 3 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
02/04/2017
Due date:
% Done:

0%

Source:
Tags:
Backport:
kraken
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Release:
Needs Doc:
No

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]


Related issues

Copied to Ceph - Backport #18894: kraken: Possible lockdep false alarm for ThreadPool lock Resolved

History

#1 Updated by Mykola Golub 5 months ago

  • Status changed from In Progress to Need Review

#2 Updated by Jason Dillaman 5 months ago

  • Status changed from Need Review to Pending Backport

#3 Updated by Loic Dachary 5 months ago

  • Copied to Backport #18894: kraken: Possible lockdep false alarm for ThreadPool lock added

#4 Updated by Nathan Cutler 3 months ago

  • Status changed from Pending Backport to Resolved

Also available in: Atom PDF