[
https://issues.apache.org/jira/browse/PROTON-1574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Ross updated PROTON-1574:
--------------------------------
Fix Version/s: proton-c-0.18.0
> WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) due to
> missing unlock in stop_polling()
> -----------------------------------------------------------------------------------------------------------
>
> Key: PROTON-1574
> URL: https://issues.apache.org/jira/browse/PROTON-1574
> Project: Qpid Proton
> Issue Type: Bug
> Components: proton-c
> Affects Versions: proton-c-0.18.0
> Reporter: Jiri Daněk
> Assignee: Alan Conway
> Fix For: proton-c-0.18.0
>
>
> There is a lot of warnings about lock order on proton tests, that all result
> from a missing unlock in {{stop_polling()}}.
> {code}
> diff --git a/proton-c/src/proactor/epoll.c b/proton-c/src/proactor/epoll.c
> index 46effcc7..887327dc 100644
> --- a/proton-c/src/proactor/epoll.c
> +++ b/proton-c/src/proactor/epoll.c
> @@ -296,8 +296,10 @@ static bool start_polling(epoll_extended_t *ee, int
> epollfd) {
> static void stop_polling(epoll_extended_t *ee, int epollfd) {
> // TODO: check for error, return bool or just log?
> lock(&ee->mutex);
> - if (ee->fd == -1 || !ee->polling || epollfd == -1)
> + if (ee->fd == -1 || !ee->polling || epollfd == -1) {
> + unlock(&ee->mutex);
> return;
> + }
> struct epoll_event ev;
> ev.data.ptr = ee;
> ev.events = 0;
> {code}
> The warnings follow. TSan is enabled as described in PROTON-1540.
> {noformat}
> $ LD_PRELOAD=/path/to/gcc-7.1.0-lib/lib/libtsan.so TSAN_OPTIONS="color=always
> second_deadlock_stack=1" ctest -VV
> [...]
> 21: Test command:
> /home/jdanek/Work/repos/qpid-proton/build/proton-c/src/tests/c-proactor-tests
> 21: Test timeout computed to be: 1500
> 21: TEST: test_inactive(&t)
> 21: TEST: test_interrupt_timeout(&t)
> 21: TEST: test_errors(&t)
> 21: TEST: test_client_server(&t)
> 21: TEST: test_connection_wake(&t)
> 21: ==================
> 21: WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
> (pid=687)
> 21: Cycle in lock order graph: M170 (0x7b70000014a0) => M173
> (0x7b7000001558) => M170
>
>
> 21:
> 21: Mutex M173 acquired here while holding mutex M170 in main thread:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
>
>
>
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x000000044f10)
> 21: #2 start_polling
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:286
> (libqpid-proton.so.11+0x000000044f10)
> 21: #3 start_polling
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1194
> (libqpid-proton.so.11+0x00000004513e)
> 21: #4 pconnection_start
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1178
> (libqpid-proton.so.11+0x00000004513e)
> 21: #5 pn_listener_accept
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1611
> (libqpid-proton.so.11+0x000000048cf2)
> 21: #6 listen_handler
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:328
> (c-proactor-tests+0x000000405720)
> 21: #7 test_proactors_get
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:167
> (c-proactor-tests+0x000000407490)
> 21: #8 test_proactors_run
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:183
> (c-proactor-tests+0x00000040bf84)
> 21: #9 test_connection_wake
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:397
> (c-proactor-tests+0x00000040bf84)
> 21: #10 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1066
> (c-proactor-tests+0x000000404371)
> 21:
> 21: Mutex M170 previously acquired by the same thread here:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x000000048cd3)
> 21: #2 pn_listener_accept
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1608
> (libqpid-proton.so.11+0x000000048cd3)
> 21: #3 listen_handler
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:328
> (c-proactor-tests+0x000000405720)
> 21: #4 test_proactors_get
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:167
> (c-proactor-tests+0x000000407490)
> 21: #5 test_proactors_run
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:183
> (c-proactor-tests+0x00000040bf84)
> 21: #6 test_connection_wake
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:397
> (c-proactor-tests+0x00000040bf84)
> 21: #7 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1066
> (c-proactor-tests+0x000000404371)
> 21:
> 21: Mutex M170 acquired here while holding mutex M173 in main thread:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
>
>
>
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x00000004681f)
> 21: #2 pconnection_cleanup
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:790
> (libqpid-proton.so.11+0x00000004681f)
> 21: #3 pconnection_forced_shutdown
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:829
> (libqpid-proton.so.11+0x0000000494d9)
> 21: #4 pn_proactor_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1684
> (libqpid-proton.so.11+0x0000000494d9)
> 21: #5 test_proactor_destroy
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:130
> (c-proactor-tests+0x00000040c07f)
> 21: #6 test_connection_wake
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:406
> (c-proactor-tests+0x00000040c07f)
> 21: #7 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1066
> (c-proactor-tests+0x000000404371)
> 21:
> 21: Mutex M173 previously acquired by the same thread here:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x000000044dda)
> 21: #2 stop_polling
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:298
> (libqpid-proton.so.11+0x000000044dda)
> 21: #3 pconnection_cleanup
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:788
> (libqpid-proton.so.11+0x00000004680b)
> 21: #4 pconnection_forced_shutdown
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:829
> (libqpid-proton.so.11+0x0000000494d9)
> 21: #5 pn_proactor_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1684
> (libqpid-proton.so.11+0x0000000494d9)
> 21: #6 test_proactor_destroy
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:130
> (c-proactor-tests+0x00000040c07f)
> 21: #7 test_connection_wake
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:406
> (c-proactor-tests+0x00000040c07f)
> 21: #8 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1066
> (c-proactor-tests+0x000000404371)
> 21:
> 21: SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock)
> (/nix/store/05ajcpmpia6imj82q7mqd8lvv1rc2hsm-gcc-7.1.0-lib/lib/libtsan.so.0+0x385df)
> in __interceptor_pthread_mutex_lock
> 21: ==================
> 21: ==================
> 21: WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
> (pid=687)
> 21: Cycle in lock order graph: M150 (0x7b3400000010) => M151
> (0x7b7400000010) => M150
>
>
> 21:
> 21: Mutex M151 acquired here while holding mutex M150 in main thread:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
>
>
>
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x000000044f10)
> 21: #2 start_polling
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:286
> (libqpid-proton.so.11+0x000000044f10)
> 21: #3 start_polling
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1399
> (libqpid-proton.so.11+0x000000048494)
> 21: #4 pn_proactor_listen
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1399
> (libqpid-proton.so.11+0x000000048494)
> 21: #5 test_listen
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:219
> (c-proactor-tests+0x000000408935)
> 21: #6 test_connection_wake
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:379
> (c-proactor-tests+0x00000040bddd)
> 21: #7 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1066
> (c-proactor-tests+0x000000404371)
> 21:
> 21: Mutex M150 previously acquired by the same thread here:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x000000047fc6)
> 21: #2 pn_proactor_listen
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1360
> (libqpid-proton.so.11+0x000000047fc6)
> 21: #3 test_listen
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:219
> (c-proactor-tests+0x000000408935)
> 21: #4 test_connection_wake
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:379
> (c-proactor-tests+0x00000040bddd)
> 21: #5 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1066
> (c-proactor-tests+0x000000404371)
> 21:
> 21: Mutex M150 acquired here while holding mutex M151 in main thread:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
>
>
>
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x000000048794)
> 21: #2 pn_listener_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1445
> (libqpid-proton.so.11+0x000000048794)
> 21: #3 listener_forced_shutdown
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1489
> (libqpid-proton.so.11+0x0000000493e9)
> 21: #4 pn_proactor_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1687
> (libqpid-proton.so.11+0x0000000493e9)
> 21: #5 test_proactor_destroy
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:130
> (c-proactor-tests+0x00000040c07f)
> 21: #6 test_connection_wake
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:406
> (c-proactor-tests+0x00000040c07f)
> 21: #7 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1066
> (c-proactor-tests+0x000000404371)
> 21:
> 21: Mutex M151 previously acquired by the same thread here:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x000000044dda)
> 21: #2 stop_polling
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:298
> (libqpid-proton.so.11+0x000000044dda)
> 21: #3 listener_begin_close
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1463
> (libqpid-proton.so.11+0x00000004585b)
> 21: #4 listener_begin_close
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1457
> (libqpid-proton.so.11+0x0000000493be)
> 21: #5 listener_forced_shutdown
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1484
> (libqpid-proton.so.11+0x0000000493be)
> 21: #6 pn_proactor_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1687
> (libqpid-proton.so.11+0x0000000493be)
> 21: #7 test_proactor_destroy
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:130
> (c-proactor-tests+0x00000040c07f)
> 21: #8 test_connection_wake
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:406
> (c-proactor-tests+0x00000040c07f)
> 21: #9 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1066
> (c-proactor-tests+0x000000404371)
> 21:
> 21: SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock)
> (/nix/store/05ajcpmpia6imj82q7mqd8lvv1rc2hsm-gcc-7.1.0-lib/lib/libtsan.so.0+0x385df)
> in __interceptor_pthread_mutex_lock
> 21: ==================
> 21: TEST: test_ipv4_ipv6(&t)
> 21: TEST: test_release_free(&t)
> 21: ==================
> 21: WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
> (pid=687)
> 21: Cycle in lock order graph: M304 (0x7b70000004a0) => M307
> (0x7b7000000558) => M304
>
>
> 21:
> 21: Mutex M307 acquired here while holding mutex M304 in main thread:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
>
>
>
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x000000044f10)
> 21: #2 start_polling
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:286
> (libqpid-proton.so.11+0x000000044f10)
> 21: #3 start_polling
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1194
> (libqpid-proton.so.11+0x00000004513e)
> 21: #4 pconnection_start
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1178
> (libqpid-proton.so.11+0x00000004513e)
> 21: #5 pconnection_maybe_connect_lh
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1208
> (libqpid-proton.so.11+0x0000000460da)
> 21: #6 pn_proactor_connect
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1269
> (libqpid-proton.so.11+0x000000047add)
> 21: #7 test_release_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:686
> (c-proactor-tests+0x000000409ec4)
> 21: #8 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1068
> (c-proactor-tests+0x000000404475)
> 21:
> 21: Mutex M304 previously acquired by the same thread here:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x0000000478b5)
> 21: #2 pn_proactor_connect
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1257
> (libqpid-proton.so.11+0x0000000478b5)
> 21: #3 test_release_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:686
> (c-proactor-tests+0x000000409ec4)
> 21: #4 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1068
> (c-proactor-tests+0x000000404475)
> 21:
> 21: Mutex M304 acquired here while holding mutex M307 in main thread:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
>
>
>
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x00000004681f)
> 21: #2 pconnection_cleanup
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:790
> (libqpid-proton.so.11+0x00000004681f)
> 21: #3 pconnection_forced_shutdown
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:829
> (libqpid-proton.so.11+0x0000000494d9)
> 21: #4 pn_proactor_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1684
> (libqpid-proton.so.11+0x0000000494d9)
> 21: #5 test_proactor_destroy
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:130
> (c-proactor-tests+0x00000040a084)
> 21: #6 test_release_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:706
> (c-proactor-tests+0x00000040a084)
> 21: #7 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1068
> (c-proactor-tests+0x000000404475)
> 21:
> 21: Mutex M307 previously acquired by the same thread here:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x000000044dda)
> 21: #2 stop_polling
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:298
> (libqpid-proton.so.11+0x000000044dda)
> 21: #3 pconnection_cleanup
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:788
> (libqpid-proton.so.11+0x00000004680b)
> 21: #4 pconnection_forced_shutdown
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:829
> (libqpid-proton.so.11+0x0000000494d9)
> 21: #5 pn_proactor_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1684
> (libqpid-proton.so.11+0x0000000494d9)
> 21: #6 test_proactor_destroy
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:130
> (c-proactor-tests+0x00000040a084)
> 21: #7 test_release_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:706
> (c-proactor-tests+0x00000040a084)
> 21: #8 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1068
> (c-proactor-tests+0x000000404475)
> 21:
> 21: SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock)
> (/nix/store/05ajcpmpia6imj82q7mqd8lvv1rc2hsm-gcc-7.1.0-lib/lib/libtsan.so.0+0x385df)
> in __interceptor_pthread_mutex_lock
> 21: ==================
> 21: ==================
> 21: WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
> (pid=687)
> 21: Cycle in lock order graph: M310 (0x7b70000014a0) => M313
> (0x7b7000001558) => M310
>
>
> 21:
> 21: Mutex M313 acquired here while holding mutex M310 in main thread:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
>
>
>
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x000000044f10)
> 21: #2 start_polling
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:286
> (libqpid-proton.so.11+0x000000044f10)
> 21: #3 start_polling
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1194
> (libqpid-proton.so.11+0x00000004513e)
> 21: #4 pconnection_start
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1178
> (libqpid-proton.so.11+0x00000004513e)
> 21: #5 pn_listener_accept
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1611
> (libqpid-proton.so.11+0x000000048cf2)
> 21: #6 listen_handler
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:328
> (c-proactor-tests+0x000000405720)
> 21: #7 test_proactors_get
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:167
> (c-proactor-tests+0x000000407490)
> 21: #8 test_proactors_run
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:183
> (c-proactor-tests+0x000000409ed4)
> 21: #9 test_release_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:687
> (c-proactor-tests+0x000000409ed4)
> 21: #10 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1068
> (c-proactor-tests+0x000000404475)
> 21:
> 21: Mutex M310 previously acquired by the same thread here:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x000000048cd3)
> 21: #2 pn_listener_accept
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1608
> (libqpid-proton.so.11+0x000000048cd3)
> 21: #3 listen_handler
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:328
> (c-proactor-tests+0x000000405720)
> 21: #4 test_proactors_get
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:167
> (c-proactor-tests+0x000000407490)
> 21: #5 test_proactors_run
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:183
> (c-proactor-tests+0x000000409ed4)
> 21: #6 test_release_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:687
> (c-proactor-tests+0x000000409ed4)
> 21: #7 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1068
> (c-proactor-tests+0x000000404475)
> 21:
> 21: Mutex M310 acquired here while holding mutex M313 in main thread:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
>
>
>
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x00000004681f)
> 21: #2 pconnection_cleanup
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:790
> (libqpid-proton.so.11+0x00000004681f)
> 21: #3 pconnection_forced_shutdown
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:829
> (libqpid-proton.so.11+0x0000000494d9)
> 21: #4 pn_proactor_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1684
> (libqpid-proton.so.11+0x0000000494d9)
> 21: #5 test_proactor_destroy
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:130
> (c-proactor-tests+0x00000040a099)
> 21: #6 test_release_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:706
> (c-proactor-tests+0x00000040a099)
> 21: #7 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1068
> (c-proactor-tests+0x000000404475)
> 21:
> 21: Mutex M313 previously acquired by the same thread here:
> 21: #0 pthread_mutex_lock <null> (libtsan.so.0+0x0000000385df)
> 21: #1 lock
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:112
> (libqpid-proton.so.11+0x000000044dda)
> 21: #2 stop_polling
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:298
> (libqpid-proton.so.11+0x000000044dda)
> 21: #3 pconnection_cleanup
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:788
> (libqpid-proton.so.11+0x00000004680b)
> 21: #4 pconnection_forced_shutdown
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:829
> (libqpid-proton.so.11+0x0000000494d9)
> 21: #5 pn_proactor_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/proactor/epoll.c:1684
> (libqpid-proton.so.11+0x0000000494d9)
> 21: #6 test_proactor_destroy
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:130
> (c-proactor-tests+0x00000040a099)
> 21: #7 test_release_free
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:706
> (c-proactor-tests+0x00000040a099)
> 21: #8 main
> /home/jdanek/Work/repos/qpid-proton/proton-c/src/tests/proactor.c:1068
> (c-proactor-tests+0x000000404475)
> 21:
> 21: SUMMA
> [...]
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]