[ 
https://issues.apache.org/jira/browse/PROTON-2133?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17315619#comment-17315619
 ] 

Jiri Daněk commented on PROTON-2133:
------------------------------------

More up-to-date stacktrace, 
https://travis-ci.com/github/apache/qpid-proton/jobs/496395249

{noformat}
6: Test command: /opt/pyenv/shims/python3 
"/home/travis/build/apache/qpid-proton/scripts/env.py" "--" 
"TSAN_OPTIONS=second_deadlock_stack=1 
suppressions=/home/travis/build/apache/qpid-proton/tests/tsan.supp" 
"/home/travis/build/apache/qpid-proton/build/c/tests/c-threaderciser"
6: Test timeout computed to be: 360
6: threaderciser start: threads=8, time=1, actions=[listen, close-listen, 
connect, close-connect, wake, timeout, cancel-timeout]
6: ==================
6: WARNING: ThreadSanitizer: data race (pid=13917)
6:   Read of size 4 at 0x7b2800000058 by thread T6:
6:     #0 check_earmark_override 
/home/travis/build/apache/qpid-proton/c/src/proactor/epoll.c:2665 
(libqpid-proton-proactor.so.1+0xcd67)
6:     #1 pn_proactor_done 
/home/travis/build/apache/qpid-proton/c/src/proactor/epoll.c:2690 
(libqpid-proton-proactor.so.1+0xcd67)
6:     #2 proactor_thread 
/home/travis/build/apache/qpid-proton/c/tests/threaderciser.c:479 
(c-threaderciser+0x4be2)
6:     #3 <null> <null> (libtsan.so.0+0x2d1af)
6: 
6:   Previous write of size 4 at 0x7b2800000058 by thread T2 (mutexes: write 
M2):
6:     #0 next_event_batch 
/home/travis/build/apache/qpid-proton/c/src/proactor/epoll.c:2415 
(libqpid-proton-proactor.so.1+0x11489)
6:     #1 pn_proactor_wait 
/home/travis/build/apache/qpid-proton/c/src/proactor/epoll.c:2654 
(libqpid-proton-proactor.so.1+0x155c6)
6:     #2 proactor_thread 
/home/travis/build/apache/qpid-proton/c/tests/threaderciser.c:474 
(c-threaderciser+0x4aaf)
6:     #3 <null> <null> (libtsan.so.0+0x2d1af)
6: 
6:   Location is heap block of size 160 at 0x7b2800000000 allocated by thread 
T2:
6:     #0 calloc <null> (libtsan.so.0+0x305ca)
6:     #1 find_tslot 
/home/travis/build/apache/qpid-proton/c/src/proactor/epoll.c:2162 
(libqpid-proton-proactor.so.1+0x122a2)
6:     #2 next_event_batch 
/home/travis/build/apache/qpid-proton/c/src/proactor/epoll.c:2408 
(libqpid-proton-proactor.so.1+0x122a2)
6:     #3 pn_proactor_wait 
/home/travis/build/apache/qpid-proton/c/src/proactor/epoll.c:2654 
(libqpid-proton-proactor.so.1+0x155c6)
6:     #4 proactor_thread 
/home/travis/build/apache/qpid-proton/c/tests/threaderciser.c:474 
(c-threaderciser+0x4aaf)
6:     #5 <null> <null> (libtsan.so.0+0x2d1af)
6: 
6:   Mutex M2 (0x7b6400000320) created at:
6:     #0 pthread_mutex_init <null> (libtsan.so.0+0x4a636)
6:     #1 pmutex_init 
/home/travis/build/apache/qpid-proton/c/src/proactor/epoll-internal.h:323 
(libqpid-proton-proactor.so.1+0xe578)
6:     #2 pn_proactor 
/home/travis/build/apache/qpid-proton/c/src/proactor/epoll.c:1945 
(libqpid-proton-proactor.so.1+0xe578)
6:     #3 global_init 
/home/travis/build/apache/qpid-proton/c/tests/threaderciser.c:336 
(c-threaderciser+0x4351)
6:     #4 main 
/home/travis/build/apache/qpid-proton/c/tests/threaderciser.c:565 
(c-threaderciser+0x2a53)
6: 
6:   Thread T6 (tid=13924, running) created by main thread at:
6:     #0 pthread_create <null> (libtsan.so.0+0x5ea99)
6:     #1 main 
/home/travis/build/apache/qpid-proton/c/tests/threaderciser.c:573 
(c-threaderciser+0x2b23)
6: 
6:   Thread T2 (tid=13920, finished) created by main thread at:
6:     #0 pthread_create <null> (libtsan.so.0+0x5ea99)
6:     #1 main 
/home/travis/build/apache/qpid-proton/c/tests/threaderciser.c:573 
(c-threaderciser+0x2b23)
6: 
6: SUMMARY: ThreadSanitizer: data race 
/home/travis/build/apache/qpid-proton/c/src/proactor/epoll.c:2665 in 
check_earmark_override
6: ==================
6: ThreadSanitizer: reported 1 warnings
 6/45 Test  #6: c-threaderciser ..................***Failed    1.21 sec
{noformat}

> c-fdlimit-tests with epoll is not tsan clean
> --------------------------------------------
>
>                 Key: PROTON-2133
>                 URL: https://issues.apache.org/jira/browse/PROTON-2133
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>    Affects Versions: proton-c-0.29.0
>            Reporter: Jiri Daněk
>            Priority: Major
>
> {noformat}
> 6: Test timeout computed to be: 1500
> 6: E
> 6: ======================================================================
> 6: ERROR: test_fd_limit_broker (__main__.FdLimitTest)
> 6: Check behaviour when running out of file descriptors on accept
> 6: ----------------------------------------------------------------------
> 6: Traceback (most recent call last):
> 6:   File "/home/jdanek/repos/qpid/qpid-proton/c/tests/fdlimit.py", line 87, 
> in test_fd_limit_broker
> 6:     self.assertIn("10 messages received", 
> test_subprocess.check_output(["receive", "", b.port], 
> universal_newlines=True))
> 6:   File "/home/jdanek/repos/qpid/qpid-proton/tests/py/test_subprocess.py", 
> line 110, in __exit__
> 6:     self.on_exit()
> 6:   File "/home/jdanek/repos/qpid/qpid-proton/tests/py/test_subprocess.py", 
> line 84, in check_kill
> 6:     raise TestProcessError(self, "check_kill found error output")
> 6: TestProcessError: ['prlimit', '-n256', 'broker', '', '0'] pid=7358 
> exit=-9: check_kill found error output
> 6: ________________________________ stderr(7358) 
> ________________________________
> 6: ==================
> 6: WARNING: ThreadSanitizer: data race (pid=7358)
> 6:   Write of size 4 at 0x7b7000029818 by thread T3:
> 6:     #0 stop_polling 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:313:10 
> (libqpid-proton-proactor.so.1+0xd22a)
> 6:     #1 pconnection_cleanup 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:896:3 
> (libqpid-proton-proactor.so.1+0xcacb)
> 6:     #2 pconnection_done 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1044:7 
> (libqpid-proton-proactor.so.1+0xa670)
> 6:     #3 pn_proactor_done 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2166:5 
> (libqpid-proton-proactor.so.1+0xa670)
> 6:     #4 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:439:5 
> (broker+0x4cb4e6)
> 6: 
> 6:   Previous read of size 4 at 0x7b7000029818 by thread T2 (mutexes: write 
> M2131):
> 6:     #0 rearm 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:720:48 
> (libqpid-proton-proactor.so.1+0x8703)
> 6:     #1 pconnection_rearm 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1014:5 
> (libqpid-proton-proactor.so.1+0xcf78)
> 6:     #2 pconnection_done 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1051:14 
> (libqpid-proton-proactor.so.1+0x9e24)
> 6:     #3 pn_proactor_done 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2166:5 
> (libqpid-proton-proactor.so.1+0x9e24)
> 6:     #4 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:439:5 
> (broker+0x4cb4e6)
> 6: 
> 6:   Location is heap block of size 1880 at 0x7b7000029800 allocated by 
> thread T2:
> 6:     #0 calloc <null> (broker+0x45b124)
> 6:     #1 pn_listener_accept2 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1795:40 
> (libqpid-proton-proactor.so.1+0x7d91)
> 6:     #2 handle 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:306:6 
> (broker+0x4cb794)
> 6:     #3 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:437:14 
> (broker+0x4cb794)
> 6: 
> 6:   Mutex M2131 (0x7b7000029ee8) created at:
> 6:     #0 pthread_mutex_init <null> (broker+0x42e922)
> 6:     #1 pmutex_init 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:105:7 
> (libqpid-proton-proactor.so.1+0x560a)
> 6:     #2 pconnection_setup 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:853:3 
> (libqpid-proton-proactor.so.1+0x560a)
> 6:     #3 pn_listener_accept2 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1797:21 
> (libqpid-proton-proactor.so.1+0x7dd8)
> 6:     #4 handle 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:306:6 
> (broker+0x4cb794)
> 6:     #5 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:437:14 
> (broker+0x4cb794)
> 6: 
> 6:   Thread T3 (tid=7362, running) created by main thread at:
> 6:     #0 pthread_create <null> (broker+0x42e5a2)
> 6:     #1 main /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:471:5 
> (broker+0x4cb3af)
> 6: 
> 6:   Thread T2 (tid=7361, running) created by main thread at:
> 6:     #0 pthread_create <null> (broker+0x42e5a2)
> 6:     #1 main /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:471:5 
> (broker+0x4cb3af)
> 6: 
> 6: SUMMARY: ThreadSanitizer: data race 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:313:10 in 
> stop_polling
> 6: ==================
> 6: ==================
> 6: WARNING: ThreadSanitizer: data race (pid=7358)
> 6:   Write of size 8 at 0x7ba0000000e0 by thread T3:
> 6:     #0 close <null> (broker+0x447563)
> 6:     #1 pclosefd 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:805:13 
> (libqpid-proton-proactor.so.1+0xcaf4)
> 6:     #2 pconnection_cleanup 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:898:5 
> (libqpid-proton-proactor.so.1+0xcaf4)
> 6:     #3 pconnection_done 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1044:7 
> (libqpid-proton-proactor.so.1+0xa670)
> 6:     #4 pn_proactor_done 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2166:5 
> (libqpid-proton-proactor.so.1+0xa670)
> 6:     #5 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:439:5 
> (broker+0x4cb4e6)
> 6: 
> 6:   Previous read of size 8 at 0x7ba0000000e0 by thread T2:
> 6:     [failed to restore the stack]
> 6: 
> 6:   Location is file descriptor 14 created by thread T2 at:
> 6:     #0 accept <null> (broker+0x435375)
> 6:     #1 listener_accept_lh 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1682:27 
> (libqpid-proton-proactor.so.1+0xdd1c)
> 6:     #2 listener_process 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1718:9 
> (libqpid-proton-proactor.so.1+0xdd1c)
> 6:     #3 proactor_do_epoll 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2146:17 
> (libqpid-proton-proactor.so.1+0x99ad)
> 6:     #4 pn_proactor_wait 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2156:10 
> (libqpid-proton-proactor.so.1+0x95fe)
> 6:     #5 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:434:32 
> (broker+0x4cb503)
> 6: 
> 6:   Thread T3 (tid=7362, running) created by main thread at:
> 6:     #0 pthread_create <null> (broker+0x42e5a2)
> 6:     #1 main /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:471:5 
> (broker+0x4cb3af)
> 6: 
> 6:   Thread T2 (tid=7361, running) created by main thread at:
> 6:     #0 pthread_create <null> (broker+0x42e5a2)
> 6:     #1 main /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:471:5 
> (broker+0x4cb3af)
> 6: 
> 6: SUMMARY: ThreadSanitizer: data race 
> (/home/jdanek/repos/qpid/qpid-proton/cmake-build-debug-gcc/c/examples/broker+0x447563)
>  in close
> 6: ==================
> 6: ==================
> 6: WARNING: ThreadSanitizer: data race (pid=7358)
> 6:   Write of size 4 at 0x7b7000017818 by main thread:
> 6:     #0 stop_polling 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:313:10 
> (libqpid-proton-proactor.so.1+0xd22a)
> 6:     #1 pconnection_cleanup 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:896:3 
> (libqpid-proton-proactor.so.1+0xcacb)
> 6:     #2 pconnection_process 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c 
> (libqpid-proton-proactor.so.1+0xca31)
> 6:     #3 proactor_do_epoll 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c 
> (libqpid-proton-proactor.so.1+0x9a17)
> 6:     #4 pn_proactor_wait 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2156:10 
> (libqpid-proton-proactor.so.1+0x95fe)
> 6:     #5 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:434:32 
> (broker+0x4cb503)
> 6:     #6 main /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:473:3 
> (broker+0x4cb3d3)
> 6: 
> 6:   Previous read of size 4 at 0x7b7000017818 by thread T2 (mutexes: write 
> M2241):
> 6:     #0 rearm 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:720:48 
> (libqpid-proton-proactor.so.1+0x8703)
> 6:     #1 pconnection_rearm 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1014:5 
> (libqpid-proton-proactor.so.1+0xcf78)
> 6:     #2 pconnection_done 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1051:14 
> (libqpid-proton-proactor.so.1+0x9e24)
> 6:     #3 pn_proactor_done 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2166:5 
> (libqpid-proton-proactor.so.1+0x9e24)
> 6:     #4 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:439:5 
> (broker+0x4cb4e6)
> 6: 
> 6:   Location is heap block of size 1880 at 0x7b7000017800 allocated by 
> thread T2:
> 6:     #0 calloc <null> (broker+0x45b124)
> 6:     #1 pn_listener_accept2 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1795:40 
> (libqpid-proton-proactor.so.1+0x7d91)
> 6:     #2 handle 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:306:6 
> (broker+0x4cb794)
> 6:     #3 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:437:14 
> (broker+0x4cb794)
> 6: 
> 6:   Mutex M2241 (0x7b7000017ee8) created at:
> 6:     #0 pthread_mutex_init <null> (broker+0x42e922)
> 6:     #1 pmutex_init 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:105:7 
> (libqpid-proton-proactor.so.1+0x560a)
> 6:     #2 pconnection_setup 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:853:3 
> (libqpid-proton-proactor.so.1+0x560a)
> 6:     #3 pn_listener_accept2 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1797:21 
> (libqpid-proton-proactor.so.1+0x7dd8)
> 6:     #4 handle 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:306:6 
> (broker+0x4cb794)
> 6:     #5 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:437:14 
> (broker+0x4cb794)
> 6: 
> 6:   Thread T2 (tid=7361, running) created by main thread at:
> 6:     #0 pthread_create <null> (broker+0x42e5a2)
> 6:     #1 main /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:471:5 
> (broker+0x4cb3af)
> 6: 
> 6: SUMMARY: ThreadSanitizer: data race 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:313:10 in 
> stop_polling
> 6: ==================
> 6: ==================
> 6: WARNING: ThreadSanitizer: data race (pid=7358)
> 6:   Write of size 4 at 0x7b7000013018 by thread T1:
> 6:     #0 stop_polling 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:313:10 
> (libqpid-proton-proactor.so.1+0xd22a)
> 6:     #1 pconnection_cleanup 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:896:3 
> (libqpid-proton-proactor.so.1+0xcacb)
> 6:     #2 pconnection_process 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c 
> (libqpid-proton-proactor.so.1+0xca31)
> 6:     #3 proactor_do_epoll 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c 
> (libqpid-proton-proactor.so.1+0x9a17)
> 6:     #4 pn_proactor_wait 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2156:10 
> (libqpid-proton-proactor.so.1+0x95fe)
> 6:     #5 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:434:32 
> (broker+0x4cb503)
> 6: 
> 6:   Previous read of size 4 at 0x7b7000013018 by thread T2 (mutexes: write 
> M2164):
> 6:     #0 rearm 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:720:48 
> (libqpid-proton-proactor.so.1+0x8703)
> 6:     #1 pconnection_rearm 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1014:5 
> (libqpid-proton-proactor.so.1+0xcf78)
> 6:     #2 pconnection_done 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1051:14 
> (libqpid-proton-proactor.so.1+0x9e24)
> 6:     #3 pn_proactor_done 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2166:5 
> (libqpid-proton-proactor.so.1+0x9e24)
> 6:     #4 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:439:5 
> (broker+0x4cb4e6)
> 6: 
> 6:   Location is heap block of size 1880 at 0x7b7000013000 allocated by 
> thread T1:
> 6:     #0 calloc <null> (broker+0x45b124)
> 6:     #1 pn_listener_accept2 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1795:40 
> (libqpid-proton-proactor.so.1+0x7d91)
> 6:     #2 handle 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:306:6 
> (broker+0x4cb794)
> 6:     #3 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:437:14 
> (broker+0x4cb794)
> 6: 
> 6:   Mutex M2164 (0x7b70000136e8) created at:
> 6:     #0 pthread_mutex_init <null> (broker+0x42e922)
> 6:     #1 pmutex_init 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:105:7 
> (libqpid-proton-proactor.so.1+0x560a)
> 6:     #2 pconnection_setup 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:853:3 
> (libqpid-proton-proactor.so.1+0x560a)
> 6:     #3 pn_listener_accept2 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1797:21 
> (libqpid-proton-proactor.so.1+0x7dd8)
> 6:     #4 handle 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:306:6 
> (broker+0x4cb794)
> 6:     #5 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:437:14 
> (broker+0x4cb794)
> 6: 
> 6:   Thread T1 (tid=7360, running) created by main thread at:
> 6:     #0 pthread_create <null> (broker+0x42e5a2)
> 6:     #1 main /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:471:5 
> (broker+0x4cb3af)
> 6: 
> 6:   Thread T2 (tid=7361, running) created by main thread at:
> 6:     #0 pthread_create <null> (broker+0x42e5a2)
> 6:     #1 main /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:471:5 
> (broker+0x4cb3af)
> 6: 
> 6: SUMMARY: ThreadSanitizer: data race 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:313:10 in 
> stop_polling
> 6: ==================
> 6: ==================
> 6: WARNING: ThreadSanitizer: data race (pid=7358)
> 6:   Write of size 8 at 0x7ba0000000d0 by thread T1:
> 6:     #0 close <null> (broker+0x447563)
> 6:     #1 pclosefd 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:805:13 
> (libqpid-proton-proactor.so.1+0xcaf4)
> 6:     #2 pconnection_cleanup 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:898:5 
> (libqpid-proton-proactor.so.1+0xcaf4)
> 6:     #3 pconnection_process 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c 
> (libqpid-proton-proactor.so.1+0xca31)
> 6:     #4 proactor_do_epoll 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c 
> (libqpid-proton-proactor.so.1+0x9a17)
> 6:     #5 pn_proactor_wait 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2156:10 
> (libqpid-proton-proactor.so.1+0x95fe)
> 6:     #6 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:434:32 
> (broker+0x4cb503)
> 6: 
> 6:   Previous read of size 8 at 0x7ba0000000d0 by thread T2:
> 6:     [failed to restore the stack]
> 6: 
> 6:   Location is file descriptor 13 created by thread T1 at:
> 6:     #0 accept <null> (broker+0x435375)
> 6:     #1 listener_accept_lh 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1682:27 
> (libqpid-proton-proactor.so.1+0xdd1c)
> 6:     #2 listener_process 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1718:9 
> (libqpid-proton-proactor.so.1+0xdd1c)
> 6:     #3 proactor_do_epoll 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2146:17 
> (libqpid-proton-proactor.so.1+0x99ad)
> 6:     #4 pn_proactor_wait 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2156:10 
> (libqpid-proton-proactor.so.1+0x95fe)
> 6:     #5 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:434:32 
> (broker+0x4cb503)
> 6: 
> 6:   Thread T1 (tid=7360, running) created by main thread at:
> 6:     #0 pthread_create <null> (broker+0x42e5a2)
> 6:     #1 main /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:471:5 
> (broker+0x4cb3af)
> 6: 
> 6:   Thread T2 (tid=7361, running) created by main thread at:
> 6:     #0 pthread_create <null> (broker+0x42e5a2)
> 6:     #1 main /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:471:5 
> (broker+0x4cb3af)
> 6: 
> 6: SUMMARY: ThreadSanitizer: data race 
> (/home/jdanek/repos/qpid/qpid-proton/cmake-build-debug-gcc/c/examples/broker+0x447563)
>  in close
> 6: ==================
> 6: ==================
> 6: WARNING: ThreadSanitizer: data race (pid=7358)
> 6:   Write of size 8 at 0x7ba000000150 by main thread:
> 6:     #0 close <null> (broker+0x447563)
> 6:     #1 pclosefd 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:805:13 
> (libqpid-proton-proactor.so.1+0xcaf4)
> 6:     #2 pconnection_cleanup 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:898:5 
> (libqpid-proton-proactor.so.1+0xcaf4)
> 6:     #3 pconnection_process 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c 
> (libqpid-proton-proactor.so.1+0xca31)
> 6:     #4 proactor_do_epoll 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c 
> (libqpid-proton-proactor.so.1+0x9a17)
> 6:     #5 pn_proactor_wait 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2156:10 
> (libqpid-proton-proactor.so.1+0x95fe)
> 6:     #6 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:434:32 
> (broker+0x4cb503)
> 6:     #7 main /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:473:3 
> (broker+0x4cb3d3)
> 6: 
> 6:   Previous read of size 8 at 0x7ba000000150 by thread T2 (mutexes: write 
> M2241):
> 6:     #0 epoll_ctl <null> (broker+0x42f1a8)
> 6:     #1 rearm 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:720:7 
> (libqpid-proton-proactor.so.1+0x871a)
> 6:     #2 pconnection_rearm 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1014:5 
> (libqpid-proton-proactor.so.1+0xcf78)
> 6:     #3 pconnection_done 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1051:14 
> (libqpid-proton-proactor.so.1+0x9e24)
> 6:     #4 pn_proactor_done 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2166:5 
> (libqpid-proton-proactor.so.1+0x9e24)
> 6:     #5 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:439:5 
> (broker+0x4cb4e6)
> 6: 
> 6:   Location is file descriptor 21 created by thread T2 at:
> 6:     #0 accept <null> (broker+0x435375)
> 6:     #1 listener_accept_lh 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1682:27 
> (libqpid-proton-proactor.so.1+0xdd1c)
> 6:     #2 listener_process 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1718:9 
> (libqpid-proton-proactor.so.1+0xdd1c)
> 6:     #3 proactor_do_epoll 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2146:17 
> (libqpid-proton-proactor.so.1+0x99ad)
> 6:     #4 pn_proactor_wait 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2156:10 
> (libqpid-proton-proactor.so.1+0x95fe)
> 6:     #5 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:434:32 
> (broker+0x4cb503)
> 6: 
> 6:   Mutex M2241 (0x7b7000017ee8) created at:
> 6:     #0 pthread_mutex_init <null> (broker+0x42e922)
> 6:     #1 pmutex_init 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:105:7 
> (libqpid-proton-proactor.so.1+0x560a)
> 6:     #2 pconnection_setup 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:853:3 
> (libqpid-proton-proactor.so.1+0x560a)
> 6:     #3 pn_listener_accept2 
> /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1797:21 
> (libqpid-proton-proactor.so.1+0x7dd8)
> 6:     #4 handle 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:306:6 
> (broker+0x4cb794)
> 6:     #5 broker_thread 
> /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:437:14 
> (broker+0x4cb794)
> 6: 
> 6:   Thread T2 (tid=7361, running) created by main thread at:
> 6:     #0 pthread_create <null> (broker+0x42e5a2)
> 6:     #1 main /home/jdanek/repos/qpid/qpid-proton/c/examples/broker.c:471:5 
> (broker+0x4cb3af)
> 6: 
> 6: SUMMARY: ThreadSanitizer: data race 
> (/home/jdanek/repos/qpid/qpid-proton/cmake-build-debug-gcc/c/examples/broker+0x447563)
>  in close
> 6: ==================
> 6: ________________________________ stderr(7358) 
> ________________________________
> 6: 
> 6: 
> 6: ----------------------------------------------------------------------
> 6: Ran 1 test in 4.261s
> 6: 
> 6: FAILED (errors=1)
>  6/24 Test  #6: c-fdlimit-tests ..................***Failed    4.35 sec
> {noformat}
> I used clang 9.0.0 with tsan to compile. I am logging this because I intend 
> to start writing suppression file, and I need a Jira number to reference.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to