Jiri Danek created PROTON-1574:
----------------------------------

             Summary: 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 Danek


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]

Reply via email to