-
Notifications
You must be signed in to change notification settings - Fork 11.1k
tsan flake: bins/tsan/h2_http_proxy_test retry_too_many_attempts #16352
Copy link
Copy link
Closed
Labels
disposition/BUILDNURSEFor all buildnurse related build/test failures and flakesFor all buildnurse related build/test failures and flakesdisposition/stalekind/buglang/c++priority/P2
Description
WARNING: ThreadSanitizer: data race (pid=14950)
Write of size 2 at 0x7ba400003168 by thread T3:
#0 on_complete(void*, grpc_error*) /var/local/git/grpc/src/core/ext/filters/client_channel/client_channel.cc:2090:50 (h2_http_proxy_test+0x629452)
#1 exec_ctx_run(grpc_closure*, grpc_error*) /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:40:3 (h2_http_proxy_test+0x5c2679)
#2 grpc_core::ExecCtx::Flush() /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:128:9 (h2_http_proxy_test+0x5c2403)
#3 run_some_timers() /var/local/git/grpc/src/core/lib/iomgr/timer_manager.cc:121:30 (h2_http_proxy_test+0x5e2be7)
#4 timer_main_loop() /var/local/git/grpc/src/core/lib/iomgr/timer_manager.cc:222:9 (h2_http_proxy_test+0x5e28f3)
#5 timer_thread(void*) /var/local/git/grpc/src/core/lib/iomgr/timer_manager.cc:269:3 (h2_http_proxy_test+0x5e2844)
#6 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*)::{lambda(void*)#1}::operator()(void*) const /var/local/git/grpc/src/core/lib/gprpp/thd_posix.cc:100:27 (h2_http_proxy_test+0x6dedec)
#7 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*)::{lambda(void*)#1}::__invoke(void*) /var/local/git/grpc/src/core/lib/gprpp/thd_posix.cc:74:25 (h2_http_proxy_test+0x6dec88)
Previous write of size 2 at 0x7ba400003168 by main thread:
#0 do_retry(grpc_call_element*, subchannel_call_retry_state*, long) /var/local/git/grpc/src/core/ext/filters/client_channel/client_channel.cc:1422:61 (h2_http_proxy_test+0x62dd18)
#1 maybe_retry(grpc_call_element*, subchannel_batch_data*, grpc_status_code, grpc_mdelem*) /var/local/git/grpc/src/core/ext/filters/client_channel/client_channel.cc:1532:3 (h2_http_proxy_test+0x62d565)
#2 recv_trailing_metadata_ready(void*, grpc_error*) /var/local/git/grpc/src/core/ext/filters/client_channel/client_channel.cc:1977:7 (h2_http_proxy_test+0x62ca0d)
#3 exec_ctx_run(grpc_closure*, grpc_error*) /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:40:3 (h2_http_proxy_test+0x5c2679)
#4 grpc_closure_run(char const*, int, grpc_closure*, grpc_error*) /var/local/git/grpc/./src/core/lib/iomgr/closure.h:258:5 (h2_http_proxy_test+0x52d1bd)
#5 recv_trailing_metadata_ready(void*, grpc_error*) /var/local/git/grpc/src/core/ext/filters/http/client/http_client_filter.cc:165:3 (h2_http_proxy_test+0x77b873)
#6 exec_ctx_run(grpc_closure*, grpc_error*) /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:40:3 (h2_http_proxy_test+0x5c2679)
#7 grpc_core::ExecCtx::Flush() /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:128:9 (h2_http_proxy_test+0x5c2403)
#8 end_worker(grpc_pollset*, grpc_pollset_worker*, grpc_pollset_worker**) /var/local/git/grpc/src/core/lib/iomgr/ev_epoll1_linux.cc:922:34 (h2_http_proxy_test+0x6aa73f)
#9 pollset_work(grpc_pollset*, grpc_pollset_worker**, long) /var/local/git/grpc/src/core/lib/iomgr/ev_epoll1_linux.cc:991:3 (h2_http_proxy_test+0x6a6b4b)
#10 pollset_work(grpc_pollset*, grpc_pollset_worker**, long) /var/local/git/grpc/src/core/lib/iomgr/ev_posix.cc:270:21 (h2_http_proxy_test+0x6580f4)
#11 grpc_pollset_work(grpc_pollset*, grpc_pollset_worker**, long) /var/local/git/grpc/src/core/lib/iomgr/pollset.cc:48:10 (h2_http_proxy_test+0x5c6a14)
#12 cq_next(grpc_completion_queue*, gpr_timespec, void*) /var/local/git/grpc/src/core/lib/surface/completion_queue.cc:927:23 (h2_http_proxy_test+0x60687e)
#13 retry_too_many_attempts(grpc_end2end_test_config) /var/local/git/grpc/test/core/end2end/tests/retry_too_many_attempts.cc:292:3 (h2_http_proxy_test+0x57cf36)
#14 grpc_end2end_tests(int, char**, grpc_end2end_test_config) /var/local/git/grpc/test/core/end2end/end2end_tests.cc:612:7 (h2_http_proxy_test+0x50589b)
#15 main /var/local/git/grpc/test/core/end2end/fixtures/h2_http_proxy.cc:128:5 (h2_http_proxy_test+0x4ffbb5)
Location is heap block of size 20135 at 0x7ba400000000 allocated by thread T4:
#0 malloc /tmp/clang-build/src/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:666:5 (h2_http_proxy_test+0x496287)
#1 gpr_malloc /var/local/git/grpc/src/core/lib/gpr/alloc.cc:57:7 (h2_http_proxy_test+0x6d5c48)
#2 gpr_malloc_aligned /var/local/git/grpc/src/core/lib/gpr/alloc.cc:93:13 (h2_http_proxy_test+0x6d5eaf)
#3 zalloc_aligned(unsigned long) /var/local/git/grpc/src/core/lib/gpr/arena.cc:94:15 (h2_http_proxy_test+0x6d60af)
#4 gpr_arena_alloc(gpr_arena*, unsigned long) /var/local/git/grpc/src/core/lib/gpr/arena.cc:148:38 (h2_http_proxy_test+0x6d633b)
#5 grpc_core::ConnectedSubchannel::CreateCall(grpc_core::ConnectedSubchannel::CallArgs const&, grpc_subchannel_call**) /var/local/git/grpc/src/core/ext/filters/client_channel/subchannel.cc:836:7 (h2_http_proxy_test+0x647d41)
#6 create_subchannel_call(grpc_call_element*, grpc_error*) /var/local/git/grpc/src/core/ext/filters/client_channel/client_channel.cc:2594:61 (h2_http_proxy_test+0x62f91c)
#7 pick_done(void*, grpc_error*) /var/local/git/grpc/src/core/ext/filters/client_channel/client_channel.cc:2646:5 (h2_http_proxy_test+0x62f6cc)
#8 exec_ctx_run(grpc_closure*, grpc_error*) /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:40:3 (h2_http_proxy_test+0x5c2679)
#9 grpc_core::ExecCtx::Flush() /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:128:9 (h2_http_proxy_test+0x5c2403)
#10 end_worker(grpc_pollset*, grpc_pollset_worker*, grpc_pollset_worker**) /var/local/git/grpc/src/core/lib/iomgr/ev_epoll1_linux.cc:922:34 (h2_http_proxy_test+0x6aa73f)
#11 pollset_work(grpc_pollset*, grpc_pollset_worker**, long) /var/local/git/grpc/src/core/lib/iomgr/ev_epoll1_linux.cc:991:3 (h2_http_proxy_test+0x6a6b4b)
#12 pollset_work(grpc_pollset*, grpc_pollset_worker**, long) /var/local/git/grpc/src/core/lib/iomgr/ev_posix.cc:270:21 (h2_http_proxy_test+0x6580f4)
#13 grpc_pollset_work(grpc_pollset*, grpc_pollset_worker**, long) /var/local/git/grpc/src/core/lib/iomgr/pollset.cc:48:10 (h2_http_proxy_test+0x5c6a14)
#14 thread_main(void*) /var/local/git/grpc/test/core/end2end/fixtures/http_proxy_fixture.cc:510:5 (h2_http_proxy_test+0x5a114b)
#15 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*)::{lambda(void*)#1}::operator()(void*) const /var/local/git/grpc/src/core/lib/gprpp/thd_posix.cc:100:27 (h2_http_proxy_test+0x6dedec)
#16 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*)::{lambda(void*)#1}::__invoke(void*) /var/local/git/grpc/src/core/lib/gprpp/thd_posix.cc:74:25 (h2_http_proxy_test+0x6dec88)
Thread T3 'grpc_global_tim' (tid=14964, running) created by main thread at:
#0 pthread_create /tmp/clang-build/src/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:992:3 (h2_http_proxy_test+0x497d55)
#1 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*) /var/local/git/grpc/src/core/lib/gprpp/thd_posix.cc:73:10 (h2_http_proxy_test+0x6de996)
#2 grpc_core::(anonymous namespace)::ThreadInternalsPosix* grpc_core::New<grpc_core::(anonymous namespace)::ThreadInternalsPosix, char const*&, void (*&)(void*), void*&, bool*>(char const*&, void (*&)(void*), void*&, bool*&&) /var/local/git/grpc/./src/core/lib/gprpp/memory.h:52:18 (h2_http_proxy_test+0x6de653)
#3 grpc_core::Thread::Thread(char const*, void (*)(void*), void*, bool*) /var/local/git/grpc/src/core/lib/gprpp/thd_posix.cc:142:7 (h2_http_proxy_test+0x6de474)
#4 start_timer_thread_and_unlock() /var/local/git/grpc/src/core/lib/iomgr/timer_manager.cc:89:13 (h2_http_proxy_test+0x5e27e0)
#5 start_threads() /var/local/git/grpc/src/core/lib/iomgr/timer_manager.cc:278:5 (h2_http_proxy_test+0x5e2399)
#6 grpc_timer_manager_init() /var/local/git/grpc/src/core/lib/iomgr/timer_manager.cc:296:3 (h2_http_proxy_test+0x5e233b)
#7 grpc_iomgr_start() /var/local/git/grpc/src/core/lib/iomgr/iomgr.cc:62:27 (h2_http_proxy_test+0x5c5491)
#8 grpc_init /var/local/git/grpc/src/core/lib/surface/init.cc:145:5 (h2_http_proxy_test+0x6ce4b6)
#9 main /var/local/git/grpc/test/core/end2end/fixtures/h2_http_proxy.cc:125:3 (h2_http_proxy_test+0x4ffb38)
Thread T4 'grpc_http_proxy' (tid=14974, running) created by main thread at:
#0 pthread_create /tmp/clang-build/src/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:992:3 (h2_http_proxy_test+0x497d55)
#1 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*) /var/local/git/grpc/src/core/lib/gprpp/thd_posix.cc:73:10 (h2_http_proxy_test+0x6de996)
#2 grpc_core::(anonymous namespace)::ThreadInternalsPosix* grpc_core::New<grpc_core::(anonymous namespace)::ThreadInternalsPosix, char const*&, void (*&)(void*), void*&, bool*>(char const*&, void (*&)(void*), void*&, bool*&&) /var/local/git/grpc/./src/core/lib/gprpp/memory.h:52:18 (h2_http_proxy_test+0x6de653)
#3 grpc_core::Thread::Thread(char const*, void (*)(void*), void*, bool*) /var/local/git/grpc/src/core/lib/gprpp/thd_posix.cc:142:7 (h2_http_proxy_test+0x6de474)
#4 grpc_end2end_http_proxy_create(grpc_channel_args*) /var/local/git/grpc/test/core/end2end/fixtures/http_proxy_fixture.cc:553:16 (h2_http_proxy_test+0x5a0729)
#5 chttp2_create_fixture_fullstack(grpc_channel_args*, grpc_channel_args*) /var/local/git/grpc/test/core/end2end/fixtures/h2_http_proxy.cc:56:16 (h2_http_proxy_test+0x4ffc68)
#6 begin_test(grpc_end2end_test_config, char const*, grpc_channel_args*, grpc_channel_args*) /var/local/git/grpc/test/core/end2end/tests/retry_too_many_attempts.cc:48:7 (h2_http_proxy_test+0x57e7a2)
#7 test_retry_too_many_attempts(grpc_end2end_test_config) /var/local/git/grpc/test/core/end2end/tests/retry_too_many_attempts.cc:143:7 (h2_http_proxy_test+0x57d106)
#8 retry_too_many_attempts(grpc_end2end_test_config) /var/local/git/grpc/test/core/end2end/tests/retry_too_many_attempts.cc:292:3 (h2_http_proxy_test+0x57cf36)
#9 grpc_end2end_tests(int, char**, grpc_end2end_test_config) /var/local/git/grpc/test/core/end2end/end2end_tests.cc:612:7 (h2_http_proxy_test+0x50589b)
#10 main /var/local/git/grpc/test/core/end2end/fixtures/h2_http_proxy.cc:128:5 (h2_http_proxy_test+0x4ffbb5)
SUMMARY: ThreadSanitizer: data race /var/local/git/grpc/src/core/ext/filters/client_channel/client_channel.cc:2090:50 in on_complete(void*, grpc_error*)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
disposition/BUILDNURSEFor all buildnurse related build/test failures and flakesFor all buildnurse related build/test failures and flakesdisposition/stalekind/buglang/c++priority/P2