You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2020/04/04 11:38:00 UTC

[jira] [Commented] (PROTON-2133) c-fdlimit-tests with epoll is not tsan clean

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

ASF GitHub Bot commented on PROTON-2133:
----------------------------------------

jiridanek commented on issue #204: PROTON-2133 PROTON-2134 asan and tsan suppressions and travis jobs
URL: https://github.com/apache/qpid-proton/pull/204#issuecomment-609015289
 
 
   Previously, before last rebase of PR, the list of used suppressions in python-tests was the following, taken from asan in clang at https://travis-ci.org/github/apache/qpid-proton/jobs/640777773?utm_medium=notification&utm_source=github_status and asan in gcc at https://travis-ci.org/github/apache/qpid-proton/jobs/640777772?utm_medium=notification&utm_source=github_status. There isn't a listing of used tsan suppressions in the tsan job.
   
   h3. asan in clang
   
   ```
   {noformat}
   26: Totals: 344 tests, 343 passed, 1 skipped, 0 ignored, 0 failed
   26: -----------------------------------------------------
   26: Suppressions used:
   26:   count      bytes template
   26:       2       2304 ^pn_data$
   26:       6       1728 ^pni_data_grow$
   26:      28       5344 ^pn_buffer$
   26:      12        928 ^pn_buffer_ensure$
   26:       1         16 ^pn_error$
   26:      81      10368 ^pn_list$
   26:      42      21504 ^pni_map_allocate$
   26:     826      55696 ^pn_object_new$
   26:     132       4248 ^pni_record_create$
   26:     101       1616 ^pn_stringn$
   26:      23       2340 ^pn_string_grow$
   26:       2      16384 ^pn_transport$
   26:      44       2464 ^pn_ssl_domain$
   26:      12        260 ^SWIG_Python_addvarlink$
   26:    1804     312708 libcrypto.so
   26:    1532    2262203 bin/python2
   26:      37        120 _ctypes
   26: -----------------------------------------------------
   {noformat}
   ```
   
   h3. asan in gcc
   ```
   {noformat}
   26: Totals: 344 tests, 343 passed, 1 skipped, 0 ignored, 0 failed
   26: -----------------------------------------------------
   26: Suppressions used:
   26:   count      bytes template
   26:       2       2304 ^pn_data$
   26:       6       1728 ^pni_data_grow$
   26:      28       5344 ^pn_buffer$
   26:      12        928 ^pn_buffer_ensure$
   26:       1         16 ^pn_error$
   26:      81      10368 ^pn_list$
   26:      42      21504 ^pni_map_allocate$
   26:     826      55696 ^pn_object_new$
   26:     132       4248 ^pni_record_create$
   26:     101       1616 ^pn_stringn$
   26:      23       2340 ^pn_string_grow$
   26:       2      16384 ^pn_transport$
   26:      44       2464 ^pn_ssl_domain$
   26:      12        260 ^SWIG_Python_addvarlink$
   26:    1804     312708 libcrypto.so
   26:    1536    2264363 bin/python2
   26:      37        120 _ctypes
   26: -----------------------------------------------------
   {noformat}
   ```
   
   [~cliffjansen] I'm rebasing the PR, so let's see what it shows now, after I fix rebase issues (if any) and rerun it on top of current master in Travis.
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> 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-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org