Skip to content

Flake: bins/tsan/client_channel_stress_test #13546

@ncteisen

Description

@ncteisen

Link: https://sponge.corp.google.com/target?id=e7ad09f8-7b8b-42ca-a779-e0f860676ca0&target=github/grpc/c%2B%2B_linux_tsan_native&searchFor=&show=ALL&sortBy=STATUS

WARNING: ThreadSanitizer: data race (pid=30568)
  Write of size 1 at 0x7d54000f3cf8 by thread T12 (mutexes: write M700029):
    #0 grpc_resource_user_alloc /var/local/git/grpc/src/core/lib/iomgr/resource_quota.cc:824:33 (client_channel_stress_test+0x000000566ad3)
    #1 grpc_resource_user_alloc_slices /var/local/git/grpc/src/core/lib/iomgr/resource_quota.cc:895:3 (client_channel_stress_test+0x0000005674e5)
    #2 tcp_continue_read(grpc_exec_ctx*, grpc_tcp*) /var/local/git/grpc/src/core/lib/iomgr/tcp_posix.cc:474:5 (client_channel_stress_test+0x000000570989)
    #3 tcp_handle_read(grpc_exec_ctx*, void*, grpc_error*) /var/local/git/grpc/src/core/lib/iomgr/tcp_posix.cc:499:5 (client_channel_stress_test+0x000000570491)
    #4 exec_ctx_run(grpc_exec_ctx*, grpc_closure*, grpc_error*) /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:70:3 (client_channel_stress_test+0x000000560273)
    #5 grpc_exec_ctx_flush /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:90:9 (client_channel_stress_test+0x00000055ffc7)
    #6 end_worker(grpc_exec_ctx*, grpc_pollset*, grpc_pollset_worker*, grpc_pollset_worker**) /var/local/git/grpc/src/core/lib/iomgr/ev_epoll1_linux.cc:882:9 (client_channel_stress_test+0x0000005939a7)
    #7 pollset_work(grpc_exec_ctx*, grpc_pollset*, grpc_pollset_worker**, long) /var/local/git/grpc/src/core/lib/iomgr/ev_epoll1_linux.cc:986:3 (client_channel_stress_test+0x00000058fc9c)
    #8 grpc_pollset_work /var/local/git/grpc/src/core/lib/iomgr/ev_posix.cc:232:10 (client_channel_stress_test+0x00000055f282)
    #9 cq_next(grpc_completion_queue*, gpr_timespec, void*) /var/local/git/grpc/src/core/lib/surface/completion_queue.cc:952:23 (client_channel_stress_test+0x00000061f207)
    #10 grpc_completion_queue_next /var/local/git/grpc/src/core/lib/surface/completion_queue.cc:1033:10 (client_channel_stress_test+0x00000061dab6)
    #11 grpc::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec) /var/local/git/grpc/src/cpp/common/completion_queue_cc.cc:56:15 (client_channel_stress_test+0x0000005fcb99)
    #12 grpc::CompletionQueue::NextStatus grpc::CompletionQueue::AsyncNext<gpr_timespec>(void**, bool*, gpr_timespec const&) /var/local/git/grpc/include/grpc++/impl/codegen/completion_queue.h:157:12 (client_channel_stress_test+0x0000005da8a5)
    #13 grpc::Server::SyncRequestThreadManager::PollForWork(void**, bool*) /var/local/git/grpc/src/cpp/server/server_cc.cc:276:13 (client_channel_stress_test+0x0000005dc68d)
    #14 grpc::ThreadManager::MainWorkLoop() /var/local/git/grpc/src/cpp/thread_manager/thread_manager.cc:122:30 (client_channel_stress_test+0x0000005eaee8)
    #15 grpc::ThreadManager::WorkerThread::Run() /var/local/git/grpc/src/cpp/thread_manager/thread_manager.cc:38:3 (client_channel_stress_test+0x0000005eae6e)
    #16 void std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()>::operator()<, void>(grpc::ThreadManager::WorkerThread*) const /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:569:11 (client_channel_stress_test+0x0000005ee01b)
    #17 void std::_Bind_simple<std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()> (grpc::ThreadManager::WorkerThread*)>::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1699:18 (client_channel_stress_test+0x0000005edf05)
    #18 std::_Bind_simple<std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()> (grpc::ThreadManager::WorkerThread*)>::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1688:16 (client_channel_stress_test+0x0000005ede88)
    #19 std::thread::_Impl<std::_Bind_simple<std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()> (grpc::ThreadManager::WorkerThread*)> >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/thread:115:13 (client_channel_stress_test+0x0000005ed9dc)
    #20 <null> <null> (libstdc++.so.6+0x0000000b696f)

  Previous read of size 1 at 0x7d54000f3cf8 by thread T143:
    #0 ru_shutdown(grpc_exec_ctx*, void*, grpc_error*) /var/local/git/grpc/src/core/lib/iomgr/resource_quota.cc:529:22 (client_channel_stress_test+0x00000056680e)
    #1 closure_impl::closure_wrapper(grpc_exec_ctx*, void*, grpc_error*) /var/local/git/grpc/./src/core/lib/iomgr/closure.h:155:3 (client_channel_stress_test+0x00000054d5ae)
    #2 grpc_combiner_continue_exec_ctx /var/local/git/grpc/src/core/lib/iomgr/combiner.cc:260:5 (client_channel_stress_test+0x0000005583df)
    #3 grpc_exec_ctx_flush /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:93:17 (client_channel_stress_test+0x00000055ffe2)
    #4 end_worker(grpc_exec_ctx*, grpc_pollset*, grpc_pollset_worker*, grpc_pollset_worker**) /var/local/git/grpc/src/core/lib/iomgr/ev_epoll1_linux.cc:915:7 (client_channel_stress_test+0x000000593cd0)
    #5 pollset_work(grpc_exec_ctx*, grpc_pollset*, grpc_pollset_worker**, long) /var/local/git/grpc/src/core/lib/iomgr/ev_epoll1_linux.cc:986:3 (client_channel_stress_test+0x00000058fc9c)
    #6 grpc_pollset_work /var/local/git/grpc/src/core/lib/iomgr/ev_posix.cc:232:10 (client_channel_stress_test+0x00000055f282)
    #7 cq_next(grpc_completion_queue*, gpr_timespec, void*) /var/local/git/grpc/src/core/lib/surface/completion_queue.cc:952:23 (client_channel_stress_test+0x00000061f207)
    #8 grpc_completion_queue_next /var/local/git/grpc/src/core/lib/surface/completion_queue.cc:1033:10 (client_channel_stress_test+0x00000061dab6)
    #9 grpc::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec) /var/local/git/grpc/src/cpp/common/completion_queue_cc.cc:56:15 (client_channel_stress_test+0x0000005fcb99)
    #10 grpc::CompletionQueue::NextStatus grpc::CompletionQueue::AsyncNext<gpr_timespec>(void**, bool*, gpr_timespec const&) /var/local/git/grpc/include/grpc++/impl/codegen/completion_queue.h:157:12 (client_channel_stress_test+0x0000005da8a5)
    #11 grpc::Server::SyncRequestThreadManager::PollForWork(void**, bool*) /var/local/git/grpc/src/cpp/server/server_cc.cc:276:13 (client_channel_stress_test+0x0000005dc68d)
    #12 grpc::ThreadManager::MainWorkLoop() /var/local/git/grpc/src/cpp/thread_manager/thread_manager.cc:122:30 (client_channel_stress_test+0x0000005eaee8)
    #13 grpc::ThreadManager::WorkerThread::Run() /var/local/git/grpc/src/cpp/thread_manager/thread_manager.cc:38:3 (client_channel_stress_test+0x0000005eae6e)
    #14 void std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()>::operator()<, void>(grpc::ThreadManager::WorkerThread*) const /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:569:11 (client_channel_stress_test+0x0000005ee01b)
    #15 void std::_Bind_simple<std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()> (grpc::ThreadManager::WorkerThread*)>::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1699:18 (client_channel_stress_test+0x0000005edf05)
    #16 std::_Bind_simple<std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()> (grpc::ThreadManager::WorkerThread*)>::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1688:16 (client_channel_stress_test+0x0000005ede88)
    #17 std::thread::_Impl<std::_Bind_simple<std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()> (grpc::ThreadManager::WorkerThread*)> >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/thread:115:13 (client_channel_stress_test+0x0000005ed9dc)
    #18 <null> <null> (libstdc++.so.6+0x0000000b696f)

  Location is heap block of size 616 at 0x7d54000f3c00 allocated by thread T22:
    #0 malloc /llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:595 (client_channel_stress_test+0x00000044fc88)
    #1 gpr_malloc /var/local/git/grpc/src/core/lib/support/alloc.cc:56:7 (client_channel_stress_test+0x0000005f1a7d)
    #2 grpc_resource_user_create /var/local/git/grpc/src/core/lib/iomgr/resource_quota.cc:725:28 (client_channel_stress_test+0x00000056549a)
    #3 grpc_tcp_create /var/local/git/grpc/src/core/lib/iomgr/tcp_posix.cc:815:24 (client_channel_stress_test+0x00000056f00a)
    #4 grpc_tcp_client_create_from_fd /var/local/git/grpc/src/core/lib/iomgr/tcp_client_posix.cc:126:10 (client_channel_stress_test+0x00000056cc28)
    #5 on_writable(grpc_exec_ctx*, void*, grpc_error*) /var/local/git/grpc/src/core/lib/iomgr/tcp_client_posix.cc:176:13 (client_channel_stress_test+0x00000056de3a)
    #6 exec_ctx_run(grpc_exec_ctx*, grpc_closure*, grpc_error*) /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:70:3 (client_channel_stress_test+0x000000560273)
    #7 grpc_exec_ctx_flush /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:90:9 (client_channel_stress_test+0x00000055ffc7)
    #8 end_worker(grpc_exec_ctx*, grpc_pollset*, grpc_pollset_worker*, grpc_pollset_worker**) /var/local/git/grpc/src/core/lib/iomgr/ev_epoll1_linux.cc:915:7 (client_channel_stress_test+0x000000593cd0)
    #9 pollset_work(grpc_exec_ctx*, grpc_pollset*, grpc_pollset_worker**, long) /var/local/git/grpc/src/core/lib/iomgr/ev_epoll1_linux.cc:986:3 (client_channel_stress_test+0x00000058fc9c)
    #10 grpc_pollset_work /var/local/git/grpc/src/core/lib/iomgr/ev_posix.cc:232:10 (client_channel_stress_test+0x00000055f282)
    #11 cq_next(grpc_completion_queue*, gpr_timespec, void*) /var/local/git/grpc/src/core/lib/surface/completion_queue.cc:952:23 (client_channel_stress_test+0x00000061f207)
    #12 grpc_completion_queue_next /var/local/git/grpc/src/core/lib/surface/completion_queue.cc:1033:10 (client_channel_stress_test+0x00000061dab6)
    #13 grpc::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec) /var/local/git/grpc/src/cpp/common/completion_queue_cc.cc:56:15 (client_channel_stress_test+0x0000005fcb99)
    #14 grpc::CompletionQueue::NextStatus grpc::CompletionQueue::AsyncNext<gpr_timespec>(void**, bool*, gpr_timespec const&) /var/local/git/grpc/include/grpc++/impl/codegen/completion_queue.h:157:12 (client_channel_stress_test+0x0000005da8a5)
    #15 grpc::Server::SyncRequestThreadManager::PollForWork(void**, bool*) /var/local/git/grpc/src/cpp/server/server_cc.cc:276:13 (client_channel_stress_test+0x0000005dc68d)
    #16 grpc::ThreadManager::MainWorkLoop() /var/local/git/grpc/src/cpp/thread_manager/thread_manager.cc:122:30 (client_channel_stress_test+0x0000005eaee8)
    #17 grpc::ThreadManager::WorkerThread::Run() /var/local/git/grpc/src/cpp/thread_manager/thread_manager.cc:38:3 (client_channel_stress_test+0x0000005eae6e)
    #18 void std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()>::operator()<, void>(grpc::ThreadManager::WorkerThread*) const /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:569:11 (client_channel_stress_test+0x0000005ee01b)
    #19 void std::_Bind_simple<std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()> (grpc::ThreadManager::WorkerThread*)>::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1699:18 (client_channel_stress_test+0x0000005edf05)
    #20 std::_Bind_simple<std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()> (grpc::ThreadManager::WorkerThread*)>::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1688:16 (client_channel_stress_test+0x0000005ede88)
    #21 std::thread::_Impl<std::_Bind_simple<std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()> (grpc::ThreadManager::WorkerThread*)> >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/thread:115:13 (client_channel_stress_test+0x0000005ed9dc)
    #22 <null> <null> (libstdc++.so.6+0x0000000b696f)

  Mutex M700029 (0x7d54000f3cb8) created at:
    #0 pthread_mutex_init /llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:1169 (client_channel_stress_test+0x0000004431b5)
    #1 gpr_mu_init /var/local/git/grpc/src/core/lib/support/sync_posix.cc:37:14 (client_channel_stress_test+0x0000005f601c)
    #2 grpc_resource_user_create /var/local/git/grpc/src/core/lib/iomgr/resource_quota.cc:742:3 (client_channel_stress_test+0x0000005657b2)
    #3 grpc_tcp_create /var/local/git/grpc/src/core/lib/iomgr/tcp_posix.cc:815:24 (client_channel_stress_test+0x00000056f00a)
    #4 grpc_tcp_client_create_from_fd /var/local/git/grpc/src/core/lib/iomgr/tcp_client_posix.cc:126:10 (client_channel_stress_test+0x00000056cc28)
    #5 on_writable(grpc_exec_ctx*, void*, grpc_error*) /var/local/git/grpc/src/core/lib/iomgr/tcp_client_posix.cc:176:13 (client_channel_stress_test+0x00000056de3a)
    #6 exec_ctx_run(grpc_exec_ctx*, grpc_closure*, grpc_error*) /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:70:3 (client_channel_stress_test+0x000000560273)
    #7 grpc_exec_ctx_flush /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:90:9 (client_channel_stress_test+0x00000055ffc7)
    #8 end_worker(grpc_exec_ctx*, grpc_pollset*, grpc_pollset_worker*, grpc_pollset_worker**) /var/local/git/grpc/src/core/lib/iomgr/ev_epoll1_linux.cc:915:7 (client_channel_stress_test+0x000000593cd0)
    #9 pollset_work(grpc_exec_ctx*, grpc_pollset*, grpc_pollset_worker**, long) /var/local/git/grpc/src/core/lib/iomgr/ev_epoll1_linux.cc:986:3 (client_channel_stress_test+0x00000058fc9c)
    #10 grpc_pollset_work /var/local/git/grpc/src/core/lib/iomgr/ev_posix.cc:232:10 (client_channel_stress_test+0x00000055f282)
    #11 cq_next(grpc_completion_queue*, gpr_timespec, void*) /var/local/git/grpc/src/core/lib/surface/completion_queue.cc:952:23 (client_channel_stress_test+0x00000061f207)
    #12 grpc_completion_queue_next /var/local/git/grpc/src/core/lib/surface/completion_queue.cc:1033:10 (client_channel_stress_test+0x00000061dab6)
    #13 grpc::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec) /var/local/git/grpc/src/cpp/common/completion_queue_cc.cc:56:15 (client_channel_stress_test+0x0000005fcb99)
    #14 grpc::CompletionQueue::NextStatus grpc::CompletionQueue::AsyncNext<gpr_timespec>(void**, bool*, gpr_timespec const&) /var/local/git/grpc/include/grpc++/impl/codegen/completion_queue.h:157:12 (client_channel_stress_test+0x0000005da8a5)
    #15 grpc::Server::SyncRequestThreadManager::PollForWork(void**, bool*) /var/local/git/grpc/src/cpp/server/server_cc.cc:276:13 (client_channel_stress_test+0x0000005dc68d)
    #16 grpc::ThreadManager::MainWorkLoop() /var/local/git/grpc/src/cpp/thread_manager/thread_manager.cc:122:30 (client_channel_stress_test+0x0000005eaee8)
    #17 grpc::ThreadManager::WorkerThread::Run() /var/local/git/grpc/src/cpp/thread_manager/thread_manager.cc:38:3 (client_channel_stress_test+0x0000005eae6e)
    #18 void std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()>::operator()<, void>(grpc::ThreadManager::WorkerThread*) const /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:569:11 (client_channel_stress_test+0x0000005ee01b)
    #19 void std::_Bind_simple<std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()> (grpc::ThreadManager::WorkerThread*)>::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1699:18 (client_channel_stress_test+0x0000005edf05)
    #20 std::_Bind_simple<std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()> (grpc::ThreadManager::WorkerThread*)>::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1688:16 (client_channel_stress_test+0x0000005ede88)
    #21 std::thread::_Impl<std::_Bind_simple<std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()> (grpc::ThreadManager::WorkerThread*)> >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/thread:115:13 (client_channel_stress_test+0x0000005ed9dc)
    #22 <null> <null> (libstdc++.so.6+0x0000000b696f)

  Thread T12 (tid=30630, running) created by thread T11 at:
    #0 pthread_create /llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:954 (client_channel_stress_test+0x000000459363)
    #1 std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) <null> (libstdc++.so.6+0x0000000b6a90)
    #2 grpc::ThreadManager::WorkerThread::WorkerThread(grpc::ThreadManager*) /var/local/git/grpc/src/cpp/thread_manager/thread_manager.cc:34:10 (client_channel_stress_test+0x0000005eadba)
    #3 grpc::ThreadManager::Initialize() /var/local/git/grpc/src/cpp/thread_manager/thread_manager.cc:114:9 (client_channel_stress_test+0x0000005ebb53)
    #4 grpc::Server::SyncRequestThreadManager::Start() /var/local/git/grpc/src/cpp/server/server_cc.cc:351:7 (client_channel_stress_test+0x0000005da739)
    #5 grpc::Server::Start(grpc::ServerCompletionQueue**, unsigned long) /var/local/git/grpc/src/cpp/server/server_cc.cc:553:5 (client_channel_stress_test+0x0000005d7212)
    #6 grpc::ServerBuilder::BuildAndStart() /var/local/git/grpc/src/cpp/server/server_builder.cc:344:3 (client_channel_stress_test+0x0000005c3dc5)
    #7 grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>::Start(std::string const&, std::mutex*, std::condition_variable*) /var/local/git/grpc/test/cpp/client/client_channel_stress_test.cc:192:17 (client_channel_stress_test+0x0000004f659b)
    #8 void std::_Mem_fn<void (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>::*)(std::string const&, std::mutex*, std::condition_variable*)>::operator()<std::string&, std::mutex*&, std::condition_variable*&, void>(grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>*, std::string&, std::mutex*&, std::condition_variable*&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:569:11 (client_channel_stress_test+0x0000004f8b00)
    #9 void std::_Bind<std::_Mem_fn<void (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>::*)(std::string const&, std::mutex*, std::condition_variable*)> (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>*, std::string, std::mutex*, std::condition_variable*)>::__call<void, , 0ul, 1ul, 2ul, 3ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1263:11 (client_channel_stress_test+0x0000004f898c)
    #10 void std::_Bind<std::_Mem_fn<void (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>::*)(std::string const&, std::mutex*, std::condition_variable*)> (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>*, std::string, std::mutex*, std::condition_variable*)>::operator()<, void>() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1321:11 (client_channel_stress_test+0x0000004f8849)
    #11 void std::_Bind_simple<std::_Bind<std::_Mem_fn<void (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>::*)(std::string const&, std::mutex*, std::condition_variable*)> (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>*, std::string, std::mutex*, std::condition_variable*)> ()>::_M_invoke<>(std::_Index_tuple<>) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1699:18 (client_channel_stress_test+0x0000004f87b8)
    #12 std::_Bind_simple<std::_Bind<std::_Mem_fn<void (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>::*)(std::string const&, std::mutex*, std::condition_variable*)> (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>*, std::string, std::mutex*, std::condition_variable*)> ()>::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1688:16 (client_channel_stress_test+0x0000004f8768)
    #13 std::thread::_Impl<std::_Bind_simple<std::_Bind<std::_Mem_fn<void (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>::*)(std::string const&, std::mutex*, std::condition_variable*)> (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>*, std::string, std::mutex*, std::condition_variable*)> ()> >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/thread:115:13 (client_channel_stress_test+0x0000004f82ac)
    #14 <null> <null> (libstdc++.so.6+0x0000000b696f)

  Thread T143 (tid=30952, running) created by thread T12 at:
    #0 pthread_create /llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:954 (client_channel_stress_test+0x000000459363)
    #1 std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) <null> (libstdc++.so.6+0x0000000b6a90)
    #2 grpc::ThreadManager::WorkerThread::WorkerThread(grpc::ThreadManager*) /var/local/git/grpc/src/cpp/thread_manager/thread_manager.cc:34:10 (client_channel_stress_test+0x0000005eadba)
    #3 grpc::ThreadManager::MainWorkLoop() /var/local/git/grpc/src/cpp/thread_manager/thread_manager.cc:146:15 (client_channel_stress_test+0x0000005eb096)
    #4 grpc::ThreadManager::WorkerThread::Run() /var/local/git/grpc/src/cpp/thread_manager/thread_manager.cc:38:3 (client_channel_stress_test+0x0000005eae6e)
    #5 void std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()>::operator()<, void>(grpc::ThreadManager::WorkerThread*) const /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:569:11 (client_channel_stress_test+0x0000005ee01b)
    #6 void std::_Bind_simple<std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()> (grpc::ThreadManager::WorkerThread*)>::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1699:18 (client_channel_stress_test+0x0000005edf05)
    #7 std::_Bind_simple<std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()> (grpc::ThreadManager::WorkerThread*)>::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1688:16 (client_channel_stress_test+0x0000005ede88)
    #8 std::thread::_Impl<std::_Bind_simple<std::_Mem_fn<void (grpc::ThreadManager::WorkerThread::*)()> (grpc::ThreadManager::WorkerThread*)> >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/thread:115:13 (client_channel_stress_test+0x0000005ed9dc)
    #9 <null> <null> (libstdc++.so.6+0x0000000b696f)

  Thread T22 (tid=30655, running) created by thread T21 at:
    #0 pthread_create /llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:954 (client_channel_stress_test+0x000000459363)
    #1 std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) <null> (libstdc++.so.6+0x0000000b6a90)
    #2 grpc::ThreadManager::WorkerThread::WorkerThread(grpc::ThreadManager*) /var/local/git/grpc/src/cpp/thread_manager/thread_manager.cc:34:10 (client_channel_stress_test+0x0000005eadba)
    #3 grpc::ThreadManager::Initialize() /var/local/git/grpc/src/cpp/thread_manager/thread_manager.cc:114:9 (client_channel_stress_test+0x0000005ebb53)
    #4 grpc::Server::SyncRequestThreadManager::Start() /var/local/git/grpc/src/cpp/server/server_cc.cc:351:7 (client_channel_stress_test+0x0000005da739)
    #5 grpc::Server::Start(grpc::ServerCompletionQueue**, unsigned long) /var/local/git/grpc/src/cpp/server/server_cc.cc:553:5 (client_channel_stress_test+0x0000005d7212)
    #6 grpc::ServerBuilder::BuildAndStart() /var/local/git/grpc/src/cpp/server/server_builder.cc:344:3 (client_channel_stress_test+0x0000005c3dc5)
    #7 grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>::Start(std::string const&, std::mutex*, std::condition_variable*) /var/local/git/grpc/test/cpp/client/client_channel_stress_test.cc:192:17 (client_channel_stress_test+0x0000004f659b)
    #8 void std::_Mem_fn<void (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>::*)(std::string const&, std::mutex*, std::condition_variable*)>::operator()<std::string&, std::mutex*&, std::condition_variable*&, void>(grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>*, std::string&, std::mutex*&, std::condition_variable*&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:569:11 (client_channel_stress_test+0x0000004f8b00)
    #9 void std::_Bind<std::_Mem_fn<void (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>::*)(std::string const&, std::mutex*, std::condition_variable*)> (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>*, std::string, std::mutex*, std::condition_variable*)>::__call<void, , 0ul, 1ul, 2ul, 3ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1263:11 (client_channel_stress_test+0x0000004f898c)
    #10 void std::_Bind<std::_Mem_fn<void (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>::*)(std::string const&, std::mutex*, std::condition_variable*)> (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>*, std::string, std::mutex*, std::condition_variable*)>::operator()<, void>() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1321:11 (client_channel_stress_test+0x0000004f8849)
    #11 void std::_Bind_simple<std::_Bind<std::_Mem_fn<void (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>::*)(std::string const&, std::mutex*, std::condition_variable*)> (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>*, std::string, std::mutex*, std::condition_variable*)> ()>::_M_invoke<>(std::_Index_tuple<>) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1699:18 (client_channel_stress_test+0x0000004f87b8)
    #12 std::_Bind_simple<std::_Bind<std::_Mem_fn<void (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>::*)(std::string const&, std::mutex*, std::condition_variable*)> (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>*, std::string, std::mutex*, std::condition_variable*)> ()>::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/functional:1688:16 (client_channel_stress_test+0x0000004f8768)
    #13 std::thread::_Impl<std::_Bind_simple<std::_Bind<std::_Mem_fn<void (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>::*)(std::string const&, std::mutex*, std::condition_variable*)> (grpc::testing::(anonymous namespace)::ClientChannelStressTest::ServerThread<grpc::testing::TestServiceImpl>*, std::string, std::mutex*, std::condition_variable*)> ()> >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/thread:115:13 (client_channel_stress_test+0x0000004f82ac)
    #14 <null> <null> (libstdc++.so.6+0x0000000b696f)

SUMMARY: ThreadSanitizer: data race /var/local/git/grpc/src/core/lib/iomgr/resource_quota.cc:824:33 in grpc_resource_user_alloc
==================

2017-11-29 07:27:51,675 FAILED: bins/tsan/client_channel_stress_test GRPC_POLL_STRATEGY=epoll1 [ret=66, pid=30568, time=17.7sec]

Metadata

Metadata

Assignees

Labels

disposition/BUILDNURSEFor all buildnurse related build/test failures and flakes

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions