[
https://issues.apache.org/jira/browse/DISPATCH-1956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17428436#comment-17428436
]
ASF GitHub Bot commented on DISPATCH-1956:
------------------------------------------
mgoulish commented on a change in pull request #1376:
URL: https://github.com/apache/qpid-dispatch/pull/1376#discussion_r728342081
##########
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:
First change worked fine, but second change -- to line 426 -- caused 3
new test failures.
Your concern is what happens if the mask is still UNDEFINED, right?
In which case level & mask == level.
I will look into the failures.
--
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]