Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id C315F200D08 for ; Thu, 7 Sep 2017 00:09:12 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id C18631609D9; Wed, 6 Sep 2017 22:09:12 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 6AD901609D7 for ; Thu, 7 Sep 2017 00:09:11 +0200 (CEST) Received: (qmail 92380 invoked by uid 500); 6 Sep 2017 22:09:09 -0000 Mailing-List: contact dev-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@qpid.apache.org Delivered-To: mailing list dev@qpid.apache.org Received: (qmail 92369 invoked by uid 99); 6 Sep 2017 22:09:09 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Sep 2017 22:09:09 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 02A90D731B for ; Wed, 6 Sep 2017 22:09:09 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -99.202 X-Spam-Level: X-Spam-Status: No, score=-99.202 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id uXEs4trJ1O8p for ; Wed, 6 Sep 2017 22:09:03 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 7FAB05FC12 for ; Wed, 6 Sep 2017 22:09:02 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 50CCEE06CF for ; Wed, 6 Sep 2017 22:09:01 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 737572415D for ; Wed, 6 Sep 2017 22:09:00 +0000 (UTC) Date: Wed, 6 Sep 2017 22:09:00 +0000 (UTC) From: "ASF subversion and git services (JIRA)" To: dev@qpid.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (PROTON-1574) WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) due to missing unlock in stop_polling() MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Wed, 06 Sep 2017 22:09:12 -0000 [ https://issues.apache.org/jira/browse/PROTON-1574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16156100#comment-16156100 ] ASF subversion and git services commented on PROTON-1574: --------------------------------------------------------- Commit feafb6c80b121f0a7ce87ea09c9b2f0f2d0fadf5 in qpid-proton's branch refs/heads/master from [~aconway] [ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=feafb6c ] PROTON-1574: Fix null pointers passed to memmove Found by ASan sanitizer build > 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 > Assignee: Alan Conway > > 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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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: dev-unsubscribe@qpid.apache.org For additional commands, e-mail: dev-help@qpid.apache.org