[
https://issues.apache.org/jira/browse/DISPATCH-2123?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ken Giusti updated DISPATCH-2123:
---------------------------------
Labels: race-condition tsan (was: )
> qd_entity_refresh_allocator race in alloc_pool.c
> ------------------------------------------------
>
> Key: DISPATCH-2123
> URL: https://issues.apache.org/jira/browse/DISPATCH-2123
> Project: Qpid Dispatch
> Issue Type: Bug
> Components: Router Node
> Affects Versions: 1.16.0
> Reporter: Ken Giusti
> Assignee: Ken Giusti
> Priority: Major
> Labels: race-condition, tsan
> Fix For: 1.19.0
>
>
> qd_entity_refresh_allocator walks all the descriptors reading their contents.
> This can happen while the descriptors are being written to during normal
> pool operations.
>
> Example:
>
> 5: WARNING: ThreadSanitizer: data race (pid=566878)
> 65: Read of size 8 at 0x7b0c00000d10 by main thread (mutexes: write M13,
> write M286, write M9):
> 65: #0 qd_entity_refresh_allocator
> /home/kgiusti/work/dispatch/qpid-dispatch/src/alloc_pool.c:700
> (libqpid-dispatch.so+0x6cdec)
> 65: #1 ffi_call_unix64 <null> (libffi.so.6+0x6aef)
> 65: #2 qdr_forward_on_message
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/forwarder.c:336
> (libqpid-dispatch.so+0xe4ff5)
> 65: #3 qdr_general_handler
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core.c:929
> (libqpid-dispatch.so+0xf83f6)
> 65: #4 qd_timer_visit
> /home/kgiusti/work/dispatch/qpid-dispatch/src/timer.c:317
> (libqpid-dispatch.so+0x135b52)
> 65: #5 handle /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1006
> (libqpid-dispatch.so+0x12fc8d)
> 65: #6 thread_run /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1121
> (libqpid-dispatch.so+0x13063a)
> 65: #7 qd_server_run
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1501
> (libqpid-dispatch.so+0x1328de)
> 65: #8 main_process
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:115
> (qdrouterd+0x40271a)
> 65: #9 main /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:369
> (qdrouterd+0x403557)
> 65:
> 65: Previous write of size 8 at 0x7b0c00000d10 by thread T1 (mutexes: write
> M305):
> 65: #0 qd_dealloc
> /home/kgiusti/work/dispatch/qpid-dispatch/src/alloc_pool.c:494
> (libqpid-dispatch.so+0x6bacd)
> 65: #1 free_qdr_action_t
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core_thread.c:33
> (libqpid-dispatch.so+0xf9a35)
> 65: #2 router_core_thread
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core_thread.c:240
> (libqpid-dispatch.so+0xfb2ba)
> 65: #3 _thread_init
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172
> (libqpid-dispatch.so+0xad37a)
> 65: #4 <null> <null> (libtsan.so.0+0x2d33f)
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]