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

Charles E. Rolke resolved DISPATCH-2166.
----------------------------------------
    Fix Version/s: 1.17.0
       Resolution: Fixed

Fixed at commit fc745cdf

> Race accessing several message content flags and values
> -------------------------------------------------------
>
>                 Key: DISPATCH-2166
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-2166
>             Project: Qpid Dispatch
>          Issue Type: Bug
>            Reporter: Charles E. Rolke
>            Assignee: Charles E. Rolke
>            Priority: Major
>             Fix For: 1.17.0
>
>
> Asynchronous read/write of the send_complete flag in the message content:
> {code:java}
> 71: E           WARNING: ThreadSanitizer: data race (pid=3184)
> 71: E             Write of size 1 at 0x7b4800014551 by thread T4:
> 71: E               #0 qd_message_set_send_complete 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/message.c:1321
>  (libqpid-dispatch.so+0x82975)
> 71: E               #1 read_message_body 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:534
>  (libqpid-dispatch.so+0x561d2)
> 71: E               #2 handle_outgoing 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:627
>  (libqpid-dispatch.so+0x561d2)
> 71: E               #3 qdr_tcp_deliver 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:1541
>  (libqpid-dispatch.so+0x59a74)
> 71: E               #4 qdr_link_process_deliveries 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_core/transfer.c:178
>  (libqpid-dispatch.so+0xd4daf)
> 71: E               #5 qdr_tcp_push 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:1479
>  (libqpid-dispatch.so+0x5741f)
> 71: E               #6 qdr_connection_process 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_core/connections.c:414
>  (libqpid-dispatch.so+0xa86fd)
> 71: E               #7 handle_connection_event 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:850
>  (libqpid-dispatch.so+0x57881)
> 71: E               #8 handle_event_with_context 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:802 
> (libqpid-dispatch.so+0xf206d)
> 71: E               #9 do_handle_raw_connection_event 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:808 
> (libqpid-dispatch.so+0xf206d)
> 71: E               #10 handle 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1089 
> (libqpid-dispatch.so+0xf206d)
> 71: E               #11 thread_run 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1121 
> (libqpid-dispatch.so+0xf64d5)
> 71: E               #12 _thread_init 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:172
>  (libqpid-dispatch.so+0x96d52)
> 71: E           
> 71: E             Previous read of size 1 at 0x7b4800014551 by thread T3 
> (mutexes: write M410):
> 71: E               #0 qd_message_send_complete 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/message.c:1313
>  (libqpid-dispatch.so+0x82923)
> 71: E               #1 qdr_delivery_send_complete 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_core/delivery.c:64
>  (libqpid-dispatch.so+0xb442c)
> 71: E               #2 qdr_link_process_deliveries 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_core/transfer.c:186
>  (libqpid-dispatch.so+0xd4ddc)
> 71: E               #3 qdr_tcp_push 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:1479
>  (libqpid-dispatch.so+0x5741f)
> 71: E               #4 qdr_connection_process 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_core/connections.c:414
>  (libqpid-dispatch.so+0xa86fd)
> 71: E               #5 on_activate 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:185
>  (libqpid-dispatch.so+0x5a209)
> 71: E               #6 qd_timer_visit 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/timer.c:317 
> (libqpid-dispatch.so+0xf7fad)
> 71: E               #7 handle 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1006 
> (libqpid-dispatch.so+0xf1fbe)
> 71: E               #8 thread_run 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1121 
> (libqpid-dispatch.so+0xf64d5)
> 71: E               #9 _thread_init 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:172
>  (libqpid-dispatch.so+0x96d52)
> 71: E           
> 71: E             Location is heap block of size 384 at 0x7b4800014400 
> allocated by thread T2:
> 71: E               #0 posix_memalign <null> (libtsan.so.0+0x32a23)
> 71: E               #1 qd_alloc 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/alloc_pool.c:396
>  (libqpid-dispatch.so+0x5cca3)
> 71: E               #2 new_qd_message_t 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/message.c:95 
> (libqpid-dispatch.so+0x81d31)
> 71: E               #3 qd_message 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/message.c:995 
> (libqpid-dispatch.so+0x82238)
> 71: E               #4 qd_message_receive 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/message.c:1463
>  (libqpid-dispatch.so+0x88e53)
> 71: E               #5 AMQP_rx_handler 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_node.c:466
>  (libqpid-dispatch.so+0xeaf87)
> 71: E               #6 do_receive 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/container.c:227
>  (libqpid-dispatch.so+0x751dc)
> 71: E               #7 qd_container_handle_event 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/container.c:737
>  (libqpid-dispatch.so+0x751dc)
> 71: E               #8 handle 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1096 
> (libqpid-dispatch.so+0xf2021)
> 71: E               #9 thread_run 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1121 
> (libqpid-dispatch.so+0xf6460)
> 71: E               #10 _thread_init 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:172
>  (libqpid-dispatch.so+0x96d52)
> 71: E           
> 71: E             Mutex M410 (0x7b10000022c0) created at:
> 71: E               #0 pthread_mutex_init <null> (libtsan.so.0+0x49603)
> 71: E               #1 sys_mutex 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:43
>  (libqpid-dispatch.so+0x96dac)
> 71: E               #2 qdr_connection_opened 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_core/connections.c:111
>  (libqpid-dispatch.so+0xa7516)
> 71: E               #3 qdr_tcp_open_server_side_connection 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:966
>  (libqpid-dispatch.so+0x53031)
> 71: E               #4 qdr_tcp_connection_egress 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:1050
>  (libqpid-dispatch.so+0x59704)
> 71: E               #5 qd_dispatch_configure_tcp_connector 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:1287
>  (libqpid-dispatch.so+0x5b917)
> 71: E               #6 ffi_call_unix64 <null> (libffi.so.6+0x6c03)
> 71: E               #7 main_process 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:97
>  (qdrouterd+0x40281c)
> 71: E               #8 main 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:369
>  (qdrouterd+0x4024fc)
> 71: E           
> 71: E             Thread T4 (tid=3189, running) created by main thread at:
> 71: E               #0 pthread_create <null> (libtsan.so.0+0x5bf45)
> 71: E               #1 sys_thread 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:181
>  (libqpid-dispatch.so+0x971ee)
> 71: E               #2 qd_server_run 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1499 
> (libqpid-dispatch.so+0xf6712)
> 71: E               #3 main_process 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:115
>  (qdrouterd+0x40287c)
> 71: E               #4 main 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:369
>  (qdrouterd+0x4024fc)
> 71: E           
> 71: E             Thread T3 (tid=3188, running) created by main thread at:
> 71: E               #0 pthread_create <null> (libtsan.so.0+0x5bf45)
> 71: E               #1 sys_thread 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:181
>  (libqpid-dispatch.so+0x971ee)
> 71: E               #2 qd_server_run 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1499 
> (libqpid-dispatch.so+0xf6712)
> 71: E               #3 main_process 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:115
>  (qdrouterd+0x40287c)
> 71: E               #4 main 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:369
>  (qdrouterd+0x4024fc)
> 71: E           
> 71: E             Thread T2 (tid=3187, running) created by main thread at:
> 71: E               #0 pthread_create <null> (libtsan.so.0+0x5bf45)
> 71: E               #1 sys_thread 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:181
>  (libqpid-dispatch.so+0x971ee)
> 71: E               #2 qd_server_run 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1499 
> (libqpid-dispatch.so+0xf6712)
> 71: E               #3 main_process 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:115
>  (qdrouterd+0x40287c)
> 71: E               #4 main 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:369
>  (qdrouterd+0x4024fc)
> 71: E           
> 71: E           SUMMARY: ThreadSanitizer: data race 
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/message.c:1321
>  in qd_message_set_send_complete
> 71: E           ==================
> 71: E           ThreadSanitizer: reported 1 warnings
> {code}
>  



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to