[ https://issues.apache.org/jira/browse/PROTON-2133?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16969126#comment-16969126 ]
Jiri Daněk commented on PROTON-2133: ------------------------------------ There is largely overlapping list of races from cpp-example-container test. I won't log a separate jira for that. It seems it's about proactor shutdown. {noformat} 23: test_simple_send_recv (__main__.ContainerExampleTest) ... ok 23: 23: ---------------------------------------------------------------------- 23: Ran 13 tests in 6.825s 23: 23: OK 23: Traceback (most recent call last): 23: File "testme", line 218, in <module> 23: unittest.main() 23: File "/home/jdanek/repos/qpid/qpid-proton/tests/py/test_subprocess.py", line 110, in __exit__ 23: self.on_exit() 23: File "/home/jdanek/repos/qpid/qpid-proton/tests/py/test_subprocess.py", line 84, in check_kill 23: raise TestProcessError(self, "check_kill found error output") 23: test_subprocess.TestProcessError: ['broker', '-a', '//:0'] pid=7888 exit=-9: check_kill found error output 23: ________________________________ stderr(7888) ________________________________ 23: ================== 23: WARNING: ThreadSanitizer: data race (pid=7888) 23: Write of size 4 at 0x7b7000000018 by thread T3: 23: #0 stop_polling /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:313:10 (libqpid-proton-proactor.so.1+0xd22a) 23: #1 pconnection_cleanup /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:896:3 (libqpid-proton-proactor.so.1+0xcacb) 23: #2 pconnection_process /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c (libqpid-proton-proactor.so.1+0xca31) 23: #3 proactor_do_epoll /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c (libqpid-proton-proactor.so.1+0x98bb) 23: #4 pn_proactor_wait /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2156:10 (libqpid-proton-proactor.so.1+0x95fe) 23: #5 proton::container::impl::thread() /home/jdanek/repos/qpid/qpid-proton/cpp/src/proactor_container_impl.cpp:753:36 (libqpid-proton-cpp.so.12+0x447e9) 23: #6 decltype(*(std::__1::forward<proton::container::impl*>(fp0)).*fp()) std::__1::__invoke<void (proton::container::impl::*)(), proton::container::impl*, void>(void (proton::container::impl::*&&)(), proton::container::impl*&&) /nix/store/5xfzimb492230y3msn1s5q26dx644dpp-libc++-9.0.0/include/c++/v1/type_traits:3471:1 (libqpid-proton-cpp.so.12+0x495eb) 23: #7 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (proton::container::impl::*)(), proton::container::impl*, 2ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (proton::container::impl::*)(), proton::container::impl*>&, std::__1::__tuple_indices<2ul>) /nix/store/5xfzimb492230y3msn1s5q26dx644dpp-libc++-9.0.0/include/c++/v1/thread:277:5 (libqpid-proton-cpp.so.12+0x495eb) 23: #8 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (proton::container::impl::*)(), proton::container::impl*> >(void*) /nix/store/5xfzimb492230y3msn1s5q26dx644dpp-libc++-9.0.0/include/c++/v1/thread:287:5 (libqpid-proton-cpp.so.12+0x495eb) 23: 23: Previous read of size 4 at 0x7b7000000018 by main thread (mutexes: write M55304816401843944): 23: #0 rearm /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:720:48 (libqpid-proton-proactor.so.1+0x8703) 23: #1 pconnection_rearm /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1014:5 (libqpid-proton-proactor.so.1+0xcf78) 23: #2 pconnection_done /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1051:14 (libqpid-proton-proactor.so.1+0x9e24) 23: #3 pn_proactor_done /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2166:5 (libqpid-proton-proactor.so.1+0x9e24) 23: #4 proton::container::impl::thread() /home/jdanek/repos/qpid/qpid-proton/cpp/src/proactor_container_impl.cpp:768:9 (libqpid-proton-cpp.so.12+0x44845) 23: #5 proton::container::impl::run(int) /home/jdanek/repos/qpid/qpid-proton/cpp/src/proactor_container_impl.cpp:805:5 (libqpid-proton-cpp.so.12+0x45204) 23: #6 proton::container::run(int) /home/jdanek/repos/qpid/qpid-proton/cpp/src/container.cpp:95:43 (libqpid-proton-cpp.so.12+0x3f9b8) 23: #7 broker::run() /home/jdanek/repos/qpid/qpid-proton/cpp/examples/broker.cpp:386:20 (broker+0x4dc1f5) 23: #8 main /home/jdanek/repos/qpid/qpid-proton/cpp/examples/broker.cpp:427:25 (broker+0x4dc1f5) 23: 23: Location is heap block of size 1880 at 0x7b7000000000 allocated by main thread: 23: #0 calloc <null> (broker+0x469204) 23: #1 pn_listener_accept2 /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1795:40 (libqpid-proton-proactor.so.1+0x7d91) 23: #2 proton::container::impl::dispatch(pn_event_t*) /home/jdanek/repos/qpid/qpid-proton/cpp/src/proactor_container_impl.cpp:630:9 (libqpid-proton-cpp.so.12+0x441cb) 23: #3 proton::container::impl::thread() /home/jdanek/repos/qpid/qpid-proton/cpp/src/proactor_container_impl.cpp:758:37 (libqpid-proton-cpp.so.12+0x44827) 23: #4 proton::container::impl::run(int) /home/jdanek/repos/qpid/qpid-proton/cpp/src/proactor_container_impl.cpp:805:5 (libqpid-proton-cpp.so.12+0x45204) 23: #5 proton::container::run(int) /home/jdanek/repos/qpid/qpid-proton/cpp/src/container.cpp:95:43 (libqpid-proton-cpp.so.12+0x3f9b8) 23: #6 broker::run() /home/jdanek/repos/qpid/qpid-proton/cpp/examples/broker.cpp:386:20 (broker+0x4dc1f5) 23: #7 main /home/jdanek/repos/qpid/qpid-proton/cpp/examples/broker.cpp:427:25 (broker+0x4dc1f5) 23: 23: Mutex M55304816401843944 is already destroyed. 23: 23: Thread T3 (tid=7892, running) created by main thread at: 23: #0 pthread_create <null> (broker+0x43c682) 23: #1 std::__1::__libcpp_thread_create(unsigned long*, void* (*)(void*), void*) /nix/store/5xfzimb492230y3msn1s5q26dx644dpp-libc++-9.0.0/include/c++/v1/__threading_support:336:10 (libqpid-proton-cpp.so.12+0x45e11) 23: #2 std::__1::thread::thread<void (proton::container::impl::*)(), proton::container::impl*, void>(void (proton::container::impl::*&&)(), proton::container::impl*&&) /nix/store/5xfzimb492230y3msn1s5q26dx644dpp-libc++-9.0.0/include/c++/v1/thread:303:16 (libqpid-proton-cpp.so.12+0x45e11) 23: #3 proton::container::impl::run(int) /home/jdanek/repos/qpid/qpid-proton/cpp/src/proactor_container_impl.cpp:802:18 (libqpid-proton-cpp.so.12+0x451d9) 23: #4 proton::container::run(int) /home/jdanek/repos/qpid/qpid-proton/cpp/src/container.cpp:95:43 (libqpid-proton-cpp.so.12+0x3f9b8) 23: #5 broker::run() /home/jdanek/repos/qpid/qpid-proton/cpp/examples/broker.cpp:386:20 (broker+0x4dc1f5) 23: #6 main /home/jdanek/repos/qpid/qpid-proton/cpp/examples/broker.cpp:427:25 (broker+0x4dc1f5) 23: 23: SUMMARY: ThreadSanitizer: data race /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:313:10 in stop_polling 23: ================== 23: ================== 23: WARNING: ThreadSanitizer: data race (pid=7888) 23: Write of size 8 at 0x7ba0000000b0 by thread T3: 23: #0 close <null> (broker+0x455643) 23: #1 pclosefd /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:805:13 (libqpid-proton-proactor.so.1+0xcaf4) 23: #2 pconnection_cleanup /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:898:5 (libqpid-proton-proactor.so.1+0xcaf4) 23: #3 pconnection_process /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c (libqpid-proton-proactor.so.1+0xca31) 23: #4 proactor_do_epoll /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c (libqpid-proton-proactor.so.1+0x98bb) 23: #5 pn_proactor_wait /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2156:10 (libqpid-proton-proactor.so.1+0x95fe) 23: #6 proton::container::impl::thread() /home/jdanek/repos/qpid/qpid-proton/cpp/src/proactor_container_impl.cpp:753:36 (libqpid-proton-cpp.so.12+0x447e9) 23: #7 decltype(*(std::__1::forward<proton::container::impl*>(fp0)).*fp()) std::__1::__invoke<void (proton::container::impl::*)(), proton::container::impl*, void>(void (proton::container::impl::*&&)(), proton::container::impl*&&) /nix/store/5xfzimb492230y3msn1s5q26dx644dpp-libc++-9.0.0/include/c++/v1/type_traits:3471:1 (libqpid-proton-cpp.so.12+0x495eb) 23: #8 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (proton::container::impl::*)(), proton::container::impl*, 2ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (proton::container::impl::*)(), proton::container::impl*>&, std::__1::__tuple_indices<2ul>) /nix/store/5xfzimb492230y3msn1s5q26dx644dpp-libc++-9.0.0/include/c++/v1/thread:277:5 (libqpid-proton-cpp.so.12+0x495eb) 23: #9 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (proton::container::impl::*)(), proton::container::impl*> >(void*) /nix/store/5xfzimb492230y3msn1s5q26dx644dpp-libc++-9.0.0/include/c++/v1/thread:287:5 (libqpid-proton-cpp.so.12+0x495eb) 23: 23: Previous read of size 8 at 0x7ba0000000b0 by main thread (mutexes: write M55304816401843944): 23: #0 epoll_ctl <null> (broker+0x43d288) 23: #1 rearm /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:720:7 (libqpid-proton-proactor.so.1+0x871a) 23: #2 pconnection_rearm /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1014:5 (libqpid-proton-proactor.so.1+0xcf78) 23: #3 pconnection_done /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1051:14 (libqpid-proton-proactor.so.1+0x9e24) 23: #4 pn_proactor_done /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2166:5 (libqpid-proton-proactor.so.1+0x9e24) 23: #5 proton::container::impl::thread() /home/jdanek/repos/qpid/qpid-proton/cpp/src/proactor_container_impl.cpp:768:9 (libqpid-proton-cpp.so.12+0x44845) 23: #6 proton::container::impl::run(int) /home/jdanek/repos/qpid/qpid-proton/cpp/src/proactor_container_impl.cpp:805:5 (libqpid-proton-cpp.so.12+0x45204) 23: #7 proton::container::run(int) /home/jdanek/repos/qpid/qpid-proton/cpp/src/container.cpp:95:43 (libqpid-proton-cpp.so.12+0x3f9b8) 23: #8 broker::run() /home/jdanek/repos/qpid/qpid-proton/cpp/examples/broker.cpp:386:20 (broker+0x4dc1f5) 23: #9 main /home/jdanek/repos/qpid/qpid-proton/cpp/examples/broker.cpp:427:25 (broker+0x4dc1f5) 23: 23: Location is file descriptor 11 created by main thread at: 23: #0 accept <null> (broker+0x443455) 23: #1 listener_accept_lh /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1682:27 (libqpid-proton-proactor.so.1+0xdd1c) 23: #2 listener_process /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:1718:9 (libqpid-proton-proactor.so.1+0xdd1c) 23: #3 proactor_do_epoll /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2146:17 (libqpid-proton-proactor.so.1+0x99ad) 23: #4 pn_proactor_wait /home/jdanek/repos/qpid/qpid-proton/c/src/proactor/epoll.c:2156:10 (libqpid-proton-proactor.so.1+0x95fe) 23: #5 proton::container::impl::thread() /home/jdanek/repos/qpid/qpid-proton/cpp/src/proactor_container_impl.cpp:753:36 (libqpid-proton-cpp.so.12+0x447e9) 23: #6 proton::container::impl::run(int) /home/jdanek/repos/qpid/qpid-proton/cpp/src/proactor_container_impl.cpp:805:5 (libqpid-proton-cpp.so.12+0x45204) 23: #7 proton::container::run(int) /home/jdanek/repos/qpid/qpid-proton/cpp/src/container.cpp:95:43 (libqpid-proton-cpp.so.12+0x3f9b8) 23: #8 broker::run() /home/jdanek/repos/qpid/qpid-proton/cpp/examples/broker.cpp:386:20 (broker+0x4dc1f5) 23: #9 main /home/jdanek/repos/qpid/qpid-proton/cpp/examples/broker.cpp:427:25 (broker+0x4dc1f5) 23: 23: Mutex M55304816401843944 is already destroyed. 23: 23: Thread T3 (tid=7892, running) created by main thread at: 23: #0 pthread_create <null> (broker+0x43c682) 23: #1 std::__1::__libcpp_thread_create(unsigned long*, void* (*)(void*), void*) /nix/store/5xfzimb492230y3msn1s5q26dx644dpp-libc++-9.0.0/include/c++/v1/__threading_support:336:10 (libqpid-proton-cpp.so.12+0x45e11) 23: #2 std::__1::thread::thread<void (proton::container::impl::*)(), proton::container::impl*, void>(void (proton::container::impl::*&&)(), proton::container::impl*&&) /nix/store/5xfzimb492230y3msn1s5q26dx644dpp-libc++-9.0.0/include/c++/v1/thread:303:16 (libqpid-proton-cpp.so.12+0x45e11) 23: #3 proton::container::impl::run(int) /home/jdanek/repos/qpid/qpid-proton/cpp/src/proactor_container_impl.cpp:802:18 (libqpid-proton-cpp.so.12+0x451d9) 23: #4 proton::container::run(int) /home/jdanek/repos/qpid/qpid-proton/cpp/src/container.cpp:95:43 (libqpid-proton-cpp.so.12+0x3f9b8) 23: #5 broker::run() /home/jdanek/repos/qpid/qpid-proton/cpp/examples/broker.cpp:386:20 (broker+0x4dc1f5) 23: #6 main /home/jdanek/repos/qpid/qpid-proton/cpp/examples/broker.cpp:427:25 (broker+0x4dc1f5) 23: 23: SUMMARY: ThreadSanitizer: data race (/home/jdanek/repos/qpid/qpid-proton/cmake-build-debug-gcc/cpp/examples/broker+0x455643) in close 23: ================== 23: ________________________________ stderr(7888) ________________________________ 23: 23/24 Test #23: cpp-example-container ............***Failed 7.03 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