[
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: [email protected]
For additional commands, e-mail: [email protected]