[
https://issues.apache.org/jira/browse/DISPATCH-1918?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ganesh Murthy reassigned DISPATCH-1918:
---------------------------------------
Assignee: Ganesh Murthy (was: Ken Giusti)
> Thread race between I/O and Core over link->undelivered and unsettled lists
> ---------------------------------------------------------------------------
>
> Key: DISPATCH-1918
> URL: https://issues.apache.org/jira/browse/DISPATCH-1918
> Project: Qpid Dispatch
> Issue Type: Bug
> Components: Router Node
> Affects Versions: 1.15.0
> Reporter: Ken Giusti
> Assignee: Ganesh Murthy
> Priority: Major
> Labels: race-condition
> Fix For: 1.16.0
>
>
> 70: WARNING: ThreadSanitizer: data race (pid=70705)
> 70: Read of size 8 at 0x7b540008eb68 by thread T1:
> 70: #0 qdr_forward_balanced_CT
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/forwarder.c:778
> (libqpid-dispatch.so+0xb19c9)
> 70: #1 qdr_forward_message_CT
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/forwarder.c:1101
> (libqpid-dispatch.so+0xb5160)
> 70: #2 qdr_link_forward_CT
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/transfer.c:566
> (libqpid-dispatch.so+0xc69ad)
> 70: #3 qdr_link_deliver_CT
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/transfer.c:853
> (libqpid-dispatch.so+0xc7bca)
> 70: #4 router_core_thread
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core_thread.c:239
> (libqpid-dispatch.so+0xbf09d)
> 70: #5 _thread_init
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172
> (libqpid-dispatch.so+0x8c5f2)
> 70: #6 <null> <null> (libtsan.so.0+0x2d33f)
> 70:
> 70: Previous write of size 8 at 0x7b540008eb68 by thread T4 (mutexes: write
> M348):
> 70: #0 qdr_link_complete_sent_message
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/transfer.c:289
> (libqpid-dispatch.so+0xc5ce8)
> 70: #1 _process_request
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_server.c:715
> (libqpid-dispatch.so+0x4d568)
> 70: #2 _handle_connection_events
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_server.c:615
> (libqpid-dispatch.so+0x4dd9a)
> 70: #3 handle_event_with_context
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:804
> (libqpid-dispatch.so+0xe025d)
> 70: #4 do_handle_raw_connection_event
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:810
> (libqpid-dispatch.so+0xe025d)
> 70: #5 handle /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1090
> (libqpid-dispatch.so+0xe025d)
> 70: #6 thread_run /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1122
> (libqpid-dispatch.so+0xe2aa7)
> 70: #7 _thread_init
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172
> (libqpid-dispatch.so+0x8c5f2)
> 70: #8 <null> <null> (libtsan.so.0+0x2d33f)
> 70:
> 70: Location is heap block of size 576 at 0x7b540008ea80 allocated by thread
> T4:
> 70: #0 posix_memalign <null> (libtsan.so.0+0x3061d)
> 70: #1 qd_alloc
> /home/kgiusti/work/dispatch/qpid-dispatch/src/alloc_pool.c:388
> (libqpid-dispatch.so+0x580a4)
> 70: #2 new_qdr_link_t
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core.c:32
> (libqpid-dispatch.so+0xb8a01)
> 70: #3 qdr_link_first_attach
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:580
> (libqpid-dispatch.so+0x9e6a6)
> 70: #4 _setup_server_links
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_server.c:305
> (libqpid-dispatch.so+0x4e855)
> 70: #5 _handle_connection_events
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_server.c:485
> (libqpid-dispatch.so+0x4e855)
> 70: #6 handle_event_with_context
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:804
> (libqpid-dispatch.so+0xe025d)
> 70: #7 do_handle_raw_connection_event
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:810
> (libqpid-dispatch.so+0xe025d)
> 70: #8 handle /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1090
> (libqpid-dispatch.so+0xe025d)
> 70: #9 thread_run /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1122
> (libqpid-dispatch.so+0xe2aa7)
> 70: #10 _thread_init
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172
> (libqpid-dispatch.so+0x8c5f2)
> 70: #11 <null> <null> (libtsan.so.0+0x2d33f)
> 70:
> 70: Mutex M348 (0x7b1000009980) created at:
> 70: #0 pthread_mutex_init <null> (libtsan.so.0+0x4a7c6)
> 70: #1 sys_mutex
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:43
> (libqpid-dispatch.so+0x8c64c)
> 70: #2 qdr_connection_opened
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:110
> (libqpid-dispatch.so+0x9caf6)
> 70: #3 _create_server_connection
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_server.c:187
> (libqpid-dispatch.so+0x4f0c9)
> 70: #4 qd_http1_configure_connector
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_server.c:224
> (libqpid-dispatch.so+0x4f0c9)
> 70: #5 qd_dispatch_configure_http_connector
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http_common.c:169
> (libqpid-dispatch.so+0x3a1cd)
> 70: #6 ffi_call_unix64 <null> (libffi.so.6+0x6aef)
> 70: #7 main_process
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:95
> (qdrouterd+0x40281c)
> 70: #8 main /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:367
> (qdrouterd+0x4024fc)
> 70:
> 70: Thread T1 (tid=70707, running) created by main thread at:
> 70: #0 pthread_create <null> (libtsan.so.0+0x5ec29)
> 70: #1 sys_thread
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:181
> (libqpid-dispatch.so+0x8ca8e)
> 70: #2 qdr_core
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core.c:121
> (libqpid-dispatch.so+0xb9b16)
> 70: #3 qd_router_setup_late
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_node.c:1989
> (libqpid-dispatch.so+0xdc0f8)
> 70: #4 ffi_call_unix64 <null> (libffi.so.6+0x6aef)
> 70: #5 main_process
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:95
> (qdrouterd+0x40281c)
> 70: #6 main /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:367
> (qdrouterd+0x4024fc)
> 70:
> 70: Thread T4 (tid=70710, running) created by main thread at:
> 70: #0 pthread_create <null> (libtsan.so.0+0x5ec29)
> 70: #1 sys_thread
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:181
> (libqpid-dispatch.so+0x8ca8e)
> 70: #2 qd_server_run
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1482
> (libqpid-dispatch.so+0xe350a)
> 70: #3 main_process
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:113
> (qdrouterd+0x40287c)
> 70: #4 main /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:367
> (qdrouterd+0x4024fc)
> 70:
> 70: SUMMARY: ThreadSanitizer: data race
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/forwarder.c:778 in
> qdr_forward_balanced_CT
> 70: ==================
> 70: WARNING: ThreadSanitizer: data race (pid=70705)
> 70: Read of size 8 at 0x7b540008eb88 by thread T1:
> 70: #0 qdr_forward_balanced_CT
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/forwarder.c:778
> (libqpid-dispatch.so+0xb19dc)
> 70: #1 qdr_forward_message_CT
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/forwarder.c:1101
> (libqpid-dispatch.so+0xb5160)
> 70: #2 qdr_link_forward_CT
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/transfer.c:566
> (libqpid-dispatch.so+0xc69ad)
> 70: #3 qdr_link_deliver_CT
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/transfer.c:853
> (libqpid-dispatch.so+0xc7bca)
> 70: #4 router_core_thread
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core_thread.c:239
> (libqpid-dispatch.so+0xbf09d)
> 70: #5 _thread_init
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172
> (libqpid-dispatch.so+0x8c5f2)
> 70: #6 <null> <null> (libtsan.so.0+0x2d33f)
> 70:
> 70: Previous write of size 8 at 0x7b540008eb88 by thread T4 (mutexes: write
> M348):
> 70: #0 qdr_link_complete_sent_message
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/transfer.c:304
> (libqpid-dispatch.so+0xc604b)
> 70: #1 _process_request
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_server.c:715
> (libqpid-dispatch.so+0x4d568)
> 70: #2 _handle_connection_events
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_server.c:615
> (libqpid-dispatch.so+0x4dd9a)
> 70: #3 handle_event_with_context
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:804
> (libqpid-dispatch.so+0xe025d)
> 70: #4 do_handle_raw_connection_event
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:810
> (libqpid-dispatch.so+0xe025d)
> 70: #5 handle /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1090
> (libqpid-dispatch.so+0xe025d)
> 70: #6 thread_run /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1122
> (libqpid-dispatch.so+0xe2aa7)
> 70: #7 _thread_init
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172
> (libqpid-dispatch.so+0x8c5f2)
> 70: #8 <null> <null> (libtsan.so.0+0x2d33f)
> 70:
> 70: Location is heap block of size 576 at 0x7b540008ea80 allocated by thread
> T4:
> 70: #0 posix_memalign <null> (libtsan.so.0+0x3061d)
> 70: #1 qd_alloc
> /home/kgiusti/work/dispatch/qpid-dispatch/src/alloc_pool.c:388
> (libqpid-dispatch.so+0x580a4)
> 70: #2 new_qdr_link_t
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core.c:32
> (libqpid-dispatch.so+0xb8a01)
> 70: #3 qdr_link_first_attach
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:580
> (libqpid-dispatch.so+0x9e6a6)
> 70: #4 _setup_server_links
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_server.c:305
> (libqpid-dispatch.so+0x4e855)
> 70: #5 _handle_connection_events
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_server.c:485
> (libqpid-dispatch.so+0x4e855)
> 70: #6 handle_event_with_context
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:804
> (libqpid-dispatch.so+0xe025d)
> 70: #7 do_handle_raw_connection_event
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:810
> (libqpid-dispatch.so+0xe025d)
> 70: #8 handle /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1090
> (libqpid-dispatch.so+0xe025d)
> 70: #9 thread_run /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1122
> (libqpid-dispatch.so+0xe2aa7)
> 70: #10 _thread_init
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172
> (libqpid-dispatch.so+0x8c5f2)
> 70: #11 <null> <null> (libtsan.so.0+0x2d33f)
> 70:
> 70: Mutex M348 (0x7b1000009980) created at:
> 70: #0 pthread_mutex_init <null> (libtsan.so.0+0x4a7c6)
> 70: #1 sys_mutex
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:43
> (libqpid-dispatch.so+0x8c64c)
> 70: #2 qdr_connection_opened
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:110
> (libqpid-dispatch.so+0x9caf6)
> 70: #3 _create_server_connection
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_server.c:187
> (libqpid-dispatch.so+0x4f0c9)
> 70: #4 qd_http1_configure_connector
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_server.c:224
> (libqpid-dispatch.so+0x4f0c9)
> 70: #5 qd_dispatch_configure_http_connector
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http_common.c:169
> (libqpid-dispatch.so+0x3a1cd)
> 70: #6 ffi_call_unix64 <null> (libffi.so.6+0x6aef)
> 70: #7 main_process
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:95
> (qdrouterd+0x40281c)
> 70: #8 main /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:367
> (qdrouterd+0x4024fc)
> 70:
> 70: Thread T1 (tid=70707, running) created by main thread at:
> 70: #0 pthread_create <null> (libtsan.so.0+0x5ec29)
> 70: #1 sys_thread
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:181
> (libqpid-dispatch.so+0x8ca8e)
> 70: #2 qdr_core
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core.c:121
> (libqpid-dispatch.so+0xb9b16)
> 70: #3 qd_router_setup_late
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_node.c:1989
> (libqpid-dispatch.so+0xdc0f8)
> 70: #4 ffi_call_unix64 <null> (libffi.so.6+0x6aef)
> 70: #5 main_process
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:95
> (qdrouterd+0x40281c)
> 70: #6 main /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:367
> (qdrouterd+0x4024fc)
> 70:
> 70: Thread T4 (tid=70710, running) created by main thread at:
> 70: #0 pthread_create <null> (libtsan.so.0+0x5ec29)
> 70: #1 sys_thread
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:181
> (libqpid-dispatch.so+0x8ca8e)
> 70: #2 qd_server_run
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1482
> (libqpid-dispatch.so+0xe350a)
> 70: #3 main_process
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:113
> (qdrouterd+0x40287c)
> 70: #4 main /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:367
> (qdrouterd+0x4024fc)
> 70:
> 70: SUMMARY: ThreadSanitizer: data race
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/forwarder.c:778 in
> qdr_forward_balanced_CT
> 70: ==================
> 70: ThreadSanitizer: reported 2 warnings
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]