[
https://issues.apache.org/jira/browse/DISPATCH-1956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17428437#comment-17428437
]
ASF GitHub Bot commented on DISPATCH-1956:
------------------------------------------
kgiusti commented on a change in pull request #1376:
URL: https://github.com/apache/qpid-dispatch/pull/1376#discussion_r728282926
##########
File path: src/log.c
##########
@@ -419,7 +419,10 @@ static void qd_log_source_free(qd_log_source_t *src) {
bool qd_log_enabled(qd_log_source_t *source, qd_log_level_t level) {
if (!source) return false;
- int mask = source->mask == -1 ? default_log_source->mask : source->mask;
+ uint32_t mask = sys_atomic_get(&source->mask);
+ if (mask == QD_LOG_UNDEFINED) {
+ mask = sys_atomic_get(&default_log_source->mask);
+ }
return level & mask;
Review comment:
Can't default_log_source->mask also be QD_LOG_UNDEFINED?
I'd recommend changing the return on line 426 to
return (mask == QD_LOG_UNDEFINED) ? false : !!(level & mask)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
> log.c rewrite to reduce locking scope
> -------------------------------------
>
> 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.18.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]