[
https://issues.apache.org/jira/browse/DISPATCH-1956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17350564#comment-17350564
]
michael goulish commented on DISPATCH-1956:
-------------------------------------------
Using Ken's reproducer, I cannot see exactly the same BT from latest master.
But I see many reports of a similar cycle, so I will pick one of those and
proceed.
Here it is:
65: WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
65: Cycle in lock order graph: M11
65:
65: Mutex M9 acquired here while holding mutex M11 in main thread:
65: #0 pthread_mutex_lock <null>
65: #1 sys_mutex_lock src/posix/threading.c:57
65: #2 push_event src/entity_cache.c:61
65: #3 qd_entity_cache_add src/entity_cache.c:67
65: #4 qd_log_source_lh src/log.c:373
65: #5 qd_log_source_lh src/log.c:362
65: #6 qd_log_source src/log.c:381
65: #7 qd_log_initialize src/log.c:516
65: #8 qd_dispatch src/dispatch.c:90
65: #9 main_process router/src/main.c:92
65: #10 main router/src/main.c:369
65:
65: Mutex M11 previously acquired by the same thread here:
65: #0 pthread_mutex_lock <null>
65: #1 sys_mutex_lock src/posix/threading.c:57
65: #2 qd_log_source src/log.c:380
65: #3 qd_log_initialize src/log.c:516
65: #4 qd_dispatch src/dispatch.c:90
65: #5 main_process router/src/main.c:92
65: #6 main router/src/main.c:369
65:
65: Mutex M11 acquired here while holding mutex M9 in main thread:
65: #0 pthread_mutex_lock <null>
65: #1 sys_mutex_lock src/posix/threading.c:57
65: #2 qd_vlog_impl src/log.c:436
65: #3 qd_log_impl src/log.c:462
65: #4 qd_python_log src/python_embedded.c:545
65: #5 <null> <null>
65: #6 main_process router/src/main.c:97
65: #7 main router/src/main.c:369
65:
65: Mutex M9 previously acquired by the same thread here:
65: #0 pthread_mutex_lock <null>
65: #1 sys_mutex_lock src/posix/threading.c:57
65: #2 qd_entity_refresh_begin src/entity_cache.c:78
65: #3 ffi_call_unix64 <null>
65: #4 main_process router/src/main.c:97
65: #5 main router/src/main.c:369
65:
> Potential deadlock: logging lock vs entity cache lock
> -----------------------------------------------------
>
> Key: DISPATCH-1956
> URL: https://issues.apache.org/jira/browse/DISPATCH-1956
> Project: Qpid Dispatch
> Issue Type: Bug
> Components: Router Node
> Affects Versions: 1.15.0
> Reporter: Ken Giusti
> Assignee: Michael Goulish
> Priority: Major
> Labels: deadlock, tsan
> Fix For: 1.17.0
>
> Attachments: tsan.supp
>
>
> {noformat}
> WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
> (pid=1474955)
> Cycle in lock order graph: M11 (0x7b10000002c0) => M9 (0x7b1000000240) =>
> M11
>
> Mutex M9 acquired here while holding mutex M11 in main thread:
> #0 pthread_mutex_lock <null> (libtsan.so.0+0x528ac)
> #1 sys_mutex_lock
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:57
> (libqpid-dispatch.so+0x8cb7d)
> #2 push_event
> /home/kgiusti/work/dispatch/qpid-dispatch/src/entity_cache.c:63
> (libqpid-dispatch.so+0x6fa13)
> #3 qd_entity_cache_add
> /home/kgiusti/work/dispatch/qpid-dispatch/src/entity_cache.c:69
> (libqpid-dispatch.so+0x6fc26)
> #4 qd_alloc_init
> /home/kgiusti/work/dispatch/qpid-dispatch/src/alloc_pool.c:302
> (libqpid-dispatch.so+0x5878b)
> #5 qd_alloc /home/kgiusti/work/dispatch/qpid-dispatch/src/alloc_pool.c:318
> (libqpid-dispatch.so+0x5878b)
> #6 new_qd_log_entry_t /home/kgiusti/work/dispatch/qpid-dispatch/src/log.c:61
> (libqpid-dispatch.so+0x75891)
> #7 qd_vlog_impl /home/kgiusti/work/dispatch/qpid-dispatch/src/log.c:426
> (libqpid-dispatch.so+0x76205)
> #8 qd_log_impl /home/kgiusti/work/dispatch/qpid-dispatch/src/log.c:453
> (libqpid-dispatch.so+0x76580)
> #9 qd_python_log
> /home/kgiusti/work/dispatch/qpid-dispatch/src/python_embedded.c:547
> (libqpid-dispatch.so+0x8d1cb)
> #10 <null> <null> (libpython3.8.so.1.0+0x12a23b)
> #11 main_process
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:95
> (qdrouterd+0x40281c)
> #12 main /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:367
> (qdrouterd+0x4024fc)
>
> Hint: use TSAN_OPTIONS=second_deadlock_stack=1 to get more informative
> warning message
>
> Mutex M11 acquired here while holding mutex M9 in main thread:
> #0 pthread_mutex_lock <null> (libtsan.so.0+0x528ac)
> #1 sys_mutex_lock
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:57
> (libqpid-dispatch.so+0x8cb7d)
> #2 qd_vlog_impl /home/kgiusti/work/dispatch/qpid-dispatch/src/log.c:425
> (libqpid-dispatch.so+0x76200)
> #3 qd_log_impl /home/kgiusti/work/dispatch/qpid-dispatch/src/log.c:453
> (libqpid-dispatch.so+0x76580)
> #4 qd_python_log
> /home/kgiusti/work/dispatch/qpid-dispatch/src/python_embedded.c:547
> (libqpid-dispatch.so+0x8d1cb)
> #5 <null> <null> (libpython3.8.so.1.0+0x12a23b)
> #6 main_process
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:95
> (qdrouterd+0x40281c)
> #7 main /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:367
> (qdrouterd+0x4024fc)
>
> SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock)
> (/lib64/libtsan.so.0+0x528ac) in __interceptor_pthread_mutex_lock
> {noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]