[
https://issues.apache.org/jira/browse/DISPATCH-2181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jiri Daněk resolved DISPATCH-2181.
----------------------------------
Resolution: Resolved
Resolved by PROTON-2436.
> Data race coming from Proton (pni_raw_connection_process/post_event) in
> system_tests_tcp_adaptor
> ------------------------------------------------------------------------------------------------
>
> Key: DISPATCH-2181
> URL: https://issues.apache.org/jira/browse/DISPATCH-2181
> Project: Qpid Dispatch
> Issue Type: Bug
> Affects Versions: 1.17.0, 1.18.0
> Reporter: Jiri Daněk
> Assignee: Clifford Jansen
> Priority: Major
> Labels: race-condition, tsan
> Fix For: 1.19.0
>
>
> PR build, but containing only CMake changes, unlikely to have caused this.
> https://github.com/apache/qpid-dispatch/pull/1267/checks?check_run_id=2872865179#step:25:5231
> {noformat}
> 71: ::TcpAdaptor::test_80_stats 2021-06-21 07:43:37.568445 test_80 check
> stats in qdmanage START
> 71: 2021-06-21 07:43:37.872270 test_80 check stats in qdmanage SUCCESS
> 71: PASSED2021-06-21 07:43:37.874339 TCP_TEST Stopping echo server ES_INTA
> 71: 2021-06-21 07:43:37.975012 TCP_TEST Stopping echo server ES_INTB
> 71: 2021-06-21 07:43:38.075261 TCP_TEST Stopping echo server ES_INTC
> 71: 2021-06-21 07:43:38.131639 TCP_TEST Stopping echo server ES_EA1
> 71: 2021-06-21 07:43:38.183962 TCP_TEST Stopping echo server ES_EA2
> 71: 2021-06-21 07:43:38.275843 TCP_TEST Stopping echo server ES_EB1
> 71: 2021-06-21 07:43:38.376357 TCP_TEST Stopping echo server ES_EB2
> 71: 2021-06-21 07:43:38.476605 TCP_TEST Stopping echo server ES_EC1
> 71: 2021-06-21 07:43:38.569269 TCP_TEST Stopping echo server ES_EC2
> 71: 2021-06-21 07:43:38.655474 TCP_TEST Stopping echo server NS_EC2_CONN_STALL
> 71:
> 71: Router INTA output file:
> 71: >>>>
> 71: ==================
> 71: WARNING: ThreadSanitizer: data race (pid=3231)
> 71: Write of size 4 at 0x7b6800032338 by thread T4 (mutexes: write M261):
> 71: #0 post_event
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll.c:2304
> (libqpid-proton-proactor.so.1+0x14108)
> 71: #1 poller_do_epoll
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll.c:2534
> (libqpid-proton-proactor.so.1+0x14108)
> 71: #2 next_event_batch
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll.c:2438
> (libqpid-proton-proactor.so.1+0x14108)
> 71: #3 pn_proactor_wait
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll.c:2650
> (libqpid-proton-proactor.so.1+0x14622)
> 71: #4 thread_run
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1106
> (qdrouterd+0x4e3ebe)
> 71: #5 _thread_init
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:172
> (qdrouterd+0x4868bd)
> 71:
> 71: Previous read of size 4 at 0x7b6800032338 by thread T2 (mutexes: write
> M2585):
> 71: #0 pni_raw_connection_process
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll_raw_connection.c:355
> (libqpid-proton-proactor.so.1+0x108ec)
> 71: #1 process
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll.c:2230
> (libqpid-proton-proactor.so.1+0x108ec)
> 71: #2 next_event_batch
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll.c:2419
> (libqpid-proton-proactor.so.1+0x108ec)
> 71: #3 pn_proactor_wait
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll.c:2650
> (libqpid-proton-proactor.so.1+0x14622)
> 71: #4 thread_run
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1106
> (qdrouterd+0x4e3ebe)
> 71: #5 _thread_init
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:172
> (qdrouterd+0x4868bd)
> 71:
> 71: Location is heap block of size 1536 at 0x7b6800031e00 allocated by
> thread T4:
> 71: #0 calloc <null> (libtsan.so.0+0x32b3e)
> 71: #1 pn_raw_connection
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll_raw_connection.c:168
> (libqpid-proton-proactor.so.1+0xdf82)
> 71: #2 qdr_tcp_connection_egress
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:1086
> (qdrouterd+0x448b52)
> 71: #3 qdr_tcp_deliver
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:1531
> (qdrouterd+0x448e86)
> 71: #4 qdr_link_process_deliveries
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_core/transfer.c:178
> (qdrouterd+0x4c43d0)
> 71: #5 qdr_tcp_push
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:1509
> (qdrouterd+0x44707c)
> 71: #6 qdr_connection_process
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_core/connections.c:414
> (qdrouterd+0x497c7d)
> 71: #7 on_activate
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:186
> (qdrouterd+0x449491)
> 71: #8 qd_timer_visit
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/timer.c:316
> (qdrouterd+0x4e6bb5)
> 71: #9 handle
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1006
> (qdrouterd+0x4e1be6)
> 71: #10 thread_run
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1121
> (qdrouterd+0x4e4005)
> 71: #11 _thread_init
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:172
> (qdrouterd+0x4868bd)
> 71:
> 71: Mutex M261 (0x7b640003cd20) created at:
> 71: #0 pthread_mutex_init <null> (libtsan.so.0+0x49603)
> 71: #1 pmutex_init
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll-internal.h:323
> (libqpid-proton-proactor.so.1+0xd52c)
> 71: #2 pn_proactor
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll.c:1941
> (libqpid-proton-proactor.so.1+0xd52c)
> 71: #3 qd_server
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1354
> (qdrouterd+0x4e4264)
> 71: #4 qd_dispatch_prepare
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/dispatch.c:333
> (qdrouterd+0x466486)
> 71: #5 ffi_call_unix64 <null> (libffi.so.6+0x6c03)
> 71: #6 main_process
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:97
> (qdrouterd+0x426c6c)
> 71: #7 main
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:369
> (qdrouterd+0x42622c)
> 71:
> 71: Mutex M2585 (0x7b6800031e00) created at:
> 71: #0 pthread_mutex_init <null> (libtsan.so.0+0x49603)
> 71: #1 pmutex_init
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll-internal.h:323
> (libqpid-proton-proactor.so.1+0x146eb)
> 71: #2 task_init
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll.c:224
> (libqpid-proton-proactor.so.1+0x146eb)
> 71: #3 praw_connection_init
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll_raw_connection.c:141
> (libqpid-proton-proactor.so.1+0x146eb)
> 71: #4 pn_proactor_raw_connect
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll_raw_connection.c:179
> (libqpid-proton-proactor.so.1+0x146eb)
> 71: #5 qdr_tcp_connection_egress
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:1088
> (qdrouterd+0x448bbf)
> 71: #6 qdr_tcp_deliver
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:1531
> (qdrouterd+0x448e86)
> 71: #7 qdr_link_process_deliveries
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_core/transfer.c:178
> (qdrouterd+0x4c43d0)
> 71: #8 qdr_tcp_push
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:1509
> (qdrouterd+0x44707c)
> 71: #9 qdr_connection_process
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_core/connections.c:414
> (qdrouterd+0x497c7d)
> 71: #10 on_activate
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/adaptors/tcp_adaptor.c:186
> (qdrouterd+0x449491)
> 71: #11 qd_timer_visit
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/timer.c:316
> (qdrouterd+0x4e6bb5)
> 71: #12 handle
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1006
> (qdrouterd+0x4e1be6)
> 71: #13 thread_run
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1121
> (qdrouterd+0x4e4005)
> 71: #14 _thread_init
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:172
> (qdrouterd+0x4868bd)
> 71:
> 71: Thread T4 (tid=3238, running) created by main thread at:
> 71: #0 pthread_create <null> (libtsan.so.0+0x5bf45)
> 71: #1 sys_thread
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:181
> (qdrouterd+0x486d4c)
> 71: #2 qd_server_run
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1499
> (qdrouterd+0x4e4bec)
> 71: #3 main_process
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:115
> (qdrouterd+0x426ccc)
> 71: #4 main
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:369
> (qdrouterd+0x42622c)
> 71:
> 71: Thread T2 (tid=3236, running) created by main thread at:
> 71: #0 pthread_create <null> (libtsan.so.0+0x5bf45)
> 71: #1 sys_thread
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:181
> (qdrouterd+0x486d4c)
> 71: #2 qd_server_run
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1499
> (qdrouterd+0x4e4bec)
> 71: #3 main_process
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:115
> (qdrouterd+0x426ccc)
> 71: #4 main
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:369
> (qdrouterd+0x42622c)
> 71:
> 71: SUMMARY: ThreadSanitizer: data race
> /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-proton/c/src/proactor/epoll.c:2304
> in post_event
> 71: ==================
> 71: ThreadSanitizer: reported 1 warnings
> 71:
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]