[ 
https://issues.apache.org/jira/browse/DISPATCH-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ken Giusti reassigned DISPATCH-1919:
------------------------------------

    Assignee: Ken Giusti

> Thread race accessing qdr_delivery_t->conn_id and ->link_id
> -----------------------------------------------------------
>
>                 Key: DISPATCH-1919
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-1919
>             Project: Qpid Dispatch
>          Issue Type: Bug
>          Components: Router Node
>    Affects Versions: 1.15.0
>            Reporter: Ken Giusti
>            Assignee: Ken Giusti
>            Priority: Minor
>              Labels: race-condition
>             Fix For: 1.16.0
>
>
> 71: ==================
> 71: WARNING: ThreadSanitizer: data race (pid=70857)
> 71: Write of size 8 at 0x7b4800013338 by thread T1:
> 71: #0 qdr_link_process_initial_delivery_CT 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:1651 
> (libqpid-dispatch.so+0x9ff1e)
> 71: #1 qdr_link_inbound_first_attach_CT 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:1779 
> (libqpid-dispatch.so+0x9ff1e)
> 71: #2 router_core_thread 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core_thread.c:239
>  (libqpid-dispatch.so+0xbf09d)
> 71: #3 _thread_init 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172 
> (libqpid-dispatch.so+0x8c5f2)
> 71: #4 <null> <null> (libtsan.so.0+0x2d33f)
> 71: 
> 71: Previous read of size 8 at 0x7b4800013338 by thread T4:
> 71: #0 qdr_tcp_open_server_side_connection 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:674 
> (libqpid-dispatch.so+0x50ca1)
> 71: #1 handle_connection_event 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:524 
> (libqpid-dispatch.so+0x55c45)
> 71: #2 handle_event_with_context 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:804 
> (libqpid-dispatch.so+0xe025d)
> 71: #3 do_handle_raw_connection_event 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:810 
> (libqpid-dispatch.so+0xe025d)
> 71: #4 handle /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1090 
> (libqpid-dispatch.so+0xe025d)
> 71: #5 thread_run /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1122 
> (libqpid-dispatch.so+0xe2aa7)
> 71: #6 _thread_init 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172 
> (libqpid-dispatch.so+0x8c5f2)
> 71: #7 <null> <null> (libtsan.so.0+0x2d33f)
> 71: 
> 71: Location is heap block of size 384 at 0x7b4800013200 allocated by thread 
> T4:
> 71: #0 posix_memalign <null> (libtsan.so.0+0x3061d)
> 71: #1 qd_alloc 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/alloc_pool.c:388 
> (libqpid-dispatch.so+0x580a4)
> 71: #2 new_qdr_delivery_t 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/delivery.c:23 
> (libqpid-dispatch.so+0xa7ca1)
> 71: #3 qdr_link_deliver_to_routed_link 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/transfer.c:117 
> (libqpid-dispatch.so+0xc50e9)
> 71: #4 AMQP_rx_handler 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_node.c:480 
> (libqpid-dispatch.so+0xd9e25)
> 71: #5 do_receive 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/container.c:223 
> (libqpid-dispatch.so+0x6cac4)
> 71: #6 qd_container_handle_event 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/container.c:733 
> (libqpid-dispatch.so+0x6cac4)
> 71: #7 handle /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1097 
> (libqpid-dispatch.so+0xe0211)
> 71: #8 thread_run /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1122 
> (libqpid-dispatch.so+0xe2a34)
> 71: #9 _thread_init 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172 
> (libqpid-dispatch.so+0x8c5f2)
> 71: #10 <null> <null> (libtsan.so.0+0x2d33f)
> 71: 
> 71: Thread T1 (tid=70859, running) created by main thread at:
> 71: #0 pthread_create <null> (libtsan.so.0+0x5ec29)
> 71: #1 sys_thread 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:181 
> (libqpid-dispatch.so+0x8ca8e)
> 71: #2 qdr_core 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core.c:121 
> (libqpid-dispatch.so+0xb9b16)
> 71: #3 qd_router_setup_late 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_node.c:1989 
> (libqpid-dispatch.so+0xdc0f8)
> 71: #4 ffi_call_unix64 <null> (libffi.so.6+0x6aef)
> 71: #5 main_process 
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:95 
> (qdrouterd+0x40281c)
> 71: #6 main /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:367 
> (qdrouterd+0x4024fc)
> 71: 
> 71: Thread T4 (tid=70862, running) created by main thread at:
> 71: #0 pthread_create <null> (libtsan.so.0+0x5ec29)
> 71: #1 sys_thread 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:181 
> (libqpid-dispatch.so+0x8ca8e)
> 71: #2 qd_server_run 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1482 
> (libqpid-dispatch.so+0xe350a)
> 71: #3 main_process 
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:113 
> (qdrouterd+0x40287c)
> 71: #4 main /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:367 
> (qdrouterd+0x4024fc)
> 71: 
> 71: SUMMARY: ThreadSanitizer: data race 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:1651 
> in qdr_link_process_initial_delivery_CT
> 71: ==================
> 71: ==================
> 71: WARNING: ThreadSanitizer: data race (pid=70857)
> 71: Read of size 8 at 0x7b4800013338 by thread T4:
> 71: #0 qdr_delivery_decref 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/delivery.c:141 
> (libqpid-dispatch.so+0xa8348)
> 71: #1 qdr_tcp_open_server_side_connection 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:676 
> (libqpid-dispatch.so+0x50b83)
> 71: #2 handle_connection_event 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:524 
> (libqpid-dispatch.so+0x55c45)
> 71: #3 handle_event_with_context 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:804 
> (libqpid-dispatch.so+0xe025d)
> 71: #4 do_handle_raw_connection_event 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:810 
> (libqpid-dispatch.so+0xe025d)
> 71: #5 handle /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1090 
> (libqpid-dispatch.so+0xe025d)
> 71: #6 thread_run /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1122 
> (libqpid-dispatch.so+0xe2aa7)
> 71: #7 _thread_init 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172 
> (libqpid-dispatch.so+0x8c5f2)
> 71: #8 <null> <null> (libtsan.so.0+0x2d33f)
> 71: 
> 71: Previous write of size 8 at 0x7b4800013338 by thread T1:
> 71: #0 qdr_link_process_initial_delivery_CT 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:1651 
> (libqpid-dispatch.so+0x9ff1e)
> 71: #1 qdr_link_inbound_first_attach_CT 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:1779 
> (libqpid-dispatch.so+0x9ff1e)
> 71: #2 router_core_thread 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core_thread.c:239
>  (libqpid-dispatch.so+0xbf09d)
> 71: #3 _thread_init 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172 
> (libqpid-dispatch.so+0x8c5f2)
> 71: #4 <null> <null> (libtsan.so.0+0x2d33f)
> 71: 
> 71: Location is heap block of size 384 at 0x7b4800013200 allocated by thread 
> T4:
> 71: #0 posix_memalign <null> (libtsan.so.0+0x3061d)
> 71: #1 qd_alloc 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/alloc_pool.c:388 
> (libqpid-dispatch.so+0x580a4)
> 71: #2 new_qdr_delivery_t 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/delivery.c:23 
> (libqpid-dispatch.so+0xa7ca1)
> 71: #3 qdr_link_deliver_to_routed_link 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/transfer.c:117 
> (libqpid-dispatch.so+0xc50e9)
> 71: #4 AMQP_rx_handler 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_node.c:480 
> (libqpid-dispatch.so+0xd9e25)
> 71: #5 do_receive 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/container.c:223 
> (libqpid-dispatch.so+0x6cac4)
> 71: #6 qd_container_handle_event 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/container.c:733 
> (libqpid-dispatch.so+0x6cac4)
> 71: #7 handle /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1097 
> (libqpid-dispatch.so+0xe0211)
> 71: #8 thread_run /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1122 
> (libqpid-dispatch.so+0xe2a34)
> 71: #9 _thread_init 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172 
> (libqpid-dispatch.so+0x8c5f2)
> 71: #10 <null> <null> (libtsan.so.0+0x2d33f)
> 71: 
> 71: Thread T4 (tid=70862, running) created by main thread at:
> 71: #0 pthread_create <null> (libtsan.so.0+0x5ec29)
> 71: #1 sys_thread 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:181 
> (libqpid-dispatch.so+0x8ca8e)
> 71: #2 qd_server_run 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1482 
> (libqpid-dispatch.so+0xe350a)
> 71: #3 main_process 
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:113 
> (qdrouterd+0x40287c)
> 71: #4 main /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:367 
> (qdrouterd+0x4024fc)
> 71: 
> 71: Thread T1 (tid=70859, running) created by main thread at:
> 71: #0 pthread_create <null> (libtsan.so.0+0x5ec29)
> 71: #1 sys_thread 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:181 
> (libqpid-dispatch.so+0x8ca8e)
> 71: #2 qdr_core 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core.c:121 
> (libqpid-dispatch.so+0xb9b16)
> 71: #3 qd_router_setup_late 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_node.c:1989 
> (libqpid-dispatch.so+0xdc0f8)
> 71: #4 ffi_call_unix64 <null> (libffi.so.6+0x6aef)
> 71: #5 main_process 
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:95 
> (qdrouterd+0x40281c)
> 71: #6 main /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:367 
> (qdrouterd+0x4024fc)
> 71: 
> 71: SUMMARY: ThreadSanitizer: data race 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/delivery.c:141 in 
> qdr_delivery_decref
> 71: ==================
> 71: ==================
> 71: WARNING: ThreadSanitizer: data race (pid=70857)
> 71: Write of size 8 at 0x7b4800013330 by thread T1:
> 71: #0 qdr_link_process_initial_delivery_CT 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:1652 
> (libqpid-dispatch.so+0x9ff4e)
> 71: #1 qdr_link_inbound_first_attach_CT 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:1779 
> (libqpid-dispatch.so+0x9ff4e)
> 71: #2 router_core_thread 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core_thread.c:239
>  (libqpid-dispatch.so+0xbf09d)
> 71: #3 _thread_init 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172 
> (libqpid-dispatch.so+0x8c5f2)
> 71: #4 <null> <null> (libtsan.so.0+0x2d33f)
> 71: 
> 71: Previous read of size 8 at 0x7b4800013330 by thread T4:
> 71: #0 qdr_delivery_decref 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/delivery.c:141 
> (libqpid-dispatch.so+0xa8335)
> 71: #1 qdr_tcp_open_server_side_connection 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:676 
> (libqpid-dispatch.so+0x50b83)
> 71: #2 handle_connection_event 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:524 
> (libqpid-dispatch.so+0x55c45)
> 71: #3 handle_event_with_context 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:804 
> (libqpid-dispatch.so+0xe025d)
> 71: #4 do_handle_raw_connection_event 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:810 
> (libqpid-dispatch.so+0xe025d)
> 71: #5 handle /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1090 
> (libqpid-dispatch.so+0xe025d)
> 71: #6 thread_run /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1122 
> (libqpid-dispatch.so+0xe2aa7)
> 71: #7 _thread_init 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172 
> (libqpid-dispatch.so+0x8c5f2)
> 71: #8 <null> <null> (libtsan.so.0+0x2d33f)
> 71: 
> 71: Location is heap block of size 384 at 0x7b4800013200 allocated by thread 
> T4:
> 71: #0 posix_memalign <null> (libtsan.so.0+0x3061d)
> 71: #1 qd_alloc 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/alloc_pool.c:388 
> (libqpid-dispatch.so+0x580a4)
> 71: #2 new_qdr_delivery_t 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/delivery.c:23 
> (libqpid-dispatch.so+0xa7ca1)
> 71: #3 qdr_link_deliver_to_routed_link 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/transfer.c:117 
> (libqpid-dispatch.so+0xc50e9)
> 71: #4 AMQP_rx_handler 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_node.c:480 
> (libqpid-dispatch.so+0xd9e25)
> 71: #5 do_receive 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/container.c:223 
> (libqpid-dispatch.so+0x6cac4)
> 71: #6 qd_container_handle_event 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/container.c:733 
> (libqpid-dispatch.so+0x6cac4)
> 71: #7 handle /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1097 
> (libqpid-dispatch.so+0xe0211)
> 71: #8 thread_run /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1122 
> (libqpid-dispatch.so+0xe2a34)
> 71: #9 _thread_init 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172 
> (libqpid-dispatch.so+0x8c5f2)
> 71: #10 <null> <null> (libtsan.so.0+0x2d33f)
> 71: 
> 71: Thread T1 (tid=70859, running) created by main thread at:
> 71: #0 pthread_create <null> (libtsan.so.0+0x5ec29)
> 71: #1 sys_thread 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:181 
> (libqpid-dispatch.so+0x8ca8e)
> 71: #2 qdr_core 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core.c:121 
> (libqpid-dispatch.so+0xb9b16)
> 71: #3 qd_router_setup_late 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_node.c:1989 
> (libqpid-dispatch.so+0xdc0f8)
> 71: #4 ffi_call_unix64 <null> (libffi.so.6+0x6aef)
> 71: #5 main_process 
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:95 
> (qdrouterd+0x40281c)
> 71: #6 main /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:367 
> (qdrouterd+0x4024fc)
> 71: 
> 71: Thread T4 (tid=70862, running) created by main thread at:
> 71: #0 pthread_create <null> (libtsan.so.0+0x5ec29)
> 71: #1 sys_thread 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:181 
> (libqpid-dispatch.so+0x8ca8e)
> 71: #2 qd_server_run 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1482 
> (libqpid-dispatch.so+0xe350a)
> 71: #3 main_process 
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:113 
> (qdrouterd+0x40287c)
> 71: #4 main /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:367 
> (qdrouterd+0x4024fc)
> 71: 
> 71: SUMMARY: ThreadSanitizer: data race 
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:1652 
> in qdr_link_process_initial_delivery_CT
> 71: ==================
> 71: ThreadSanitizer: reported 3 warnings



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to