Skip to content

bad_client:window_overflow_bad_client_test@poller=epollex TSAN flake #17338

@markdroth

Description

@markdroth

https://source.cloud.google.com/results/invocations/346b6036-083e-4376-901f-ba7e6b877901/targets/%2F%2Ftest%2Fcore%2Fbad_client:window_overflow_bad_client_test@poller%3Depollex/log

exec ${PAGER:-/usr/bin/less} "$0" || exit 1
Executing tests from //test/core/bad_client:window_overflow_bad_client_test@poller=epollex
-----------------------------------------------------------------------------
+ export GRPC_POLL_STRATEGY=epollex
+ shift
+ test/core/bad_client/window_overflow_bad_client_test
D1129 15:47:12.563900404      20 test_config.cc:391]         test slowdown factor: sanitizer=5, fixture=1, poller=1, total=5
D1129 15:47:12.575188447      20 ev_posix.cc:170]            Using polling engine: epollex
D1129 15:47:12.576974698      20 dns_resolver.cc:338]        Using native dns resolver
I1129 15:47:12.849928095      20 bad_client.cc:99]           TEST: 50 52 49 20 2a 20 48 54 54 50 2f 32 2e 30 0d 0a 0d 0a 53 4d 0d 0a 0d 0a 00 00 00 04 00 00 00 00 00 'PRI * HTTP/2.0....SM.............'
I1129 15:47:13.352210480      20 bad_client.cc:102]          TEST: (4212192 byte long string)
==================
WARNING: ThreadSanitizer: data race (pid=20)
  Write of size 8 at 0x7b6000000390 by main thread:
    #0 tcp_destroy(grpc_endpoint*) /proc/self/cwd/src/core/lib/iomgr/tcp_posix.cc:399 (liblibgrpc_Ubase_Uc.so+0xa86ca)
    #1 grpc_endpoint_destroy(grpc_endpoint*) /proc/self/cwd/src/core/lib/iomgr/endpoint.cc:53 (liblibgrpc_Ubase_Uc.so+0x632d4)
    #2 shutdown_client(grpc_endpoint**) /proc/self/cwd/test/core/bad_client/bad_client.cc:83 (libtest_Score_Sbad_Uclient_Slibbad_Uclient_Utest.so+0x3c27)
    #3 grpc_run_client_side_validator(grpc_bad_client_arg*, unsigned int, grpc_endpoint_pair*, grpc_completion_queue*) /proc/self/cwd/test/core/bad_client/bad_client.cc:170 (libtest_Score_Sbad_Uclient_Slibbad_Uclient_Utest.so+0x3910)
    #4 grpc_run_bad_client_test(void (*)(grpc_server*, grpc_completion_queue*, void*), grpc_bad_client_arg*, int, unsigned int) /proc/self/cwd/test/core/bad_client/bad_client.cc:230 (libtest_Score_Sbad_Uclient_Slibbad_Uclient_Utest.so+0x40d2)
    #5 main /proc/self/cwd/test/core/bad_client/tests/window_overflow.cc:98 (window_overflow_bad_client_test+0x4b0219)

  Previous read of size 8 at 0x7b6000000390 by thread T5:
    #0 tcp_flush((anonymous namespace)::grpc_tcp*, grpc_error**) /proc/self/cwd/src/core/lib/iomgr/tcp_posix.cc:855 (liblibgrpc_Ubase_Uc.so+0xaafec)
    #1 tcp_handle_write(void*, grpc_error*) /proc/self/cwd/src/core/lib/iomgr/tcp_posix.cc:930 (liblibgrpc_Ubase_Uc.so+0xac13d)
    #2 tcp_drop_uncovered_then_handle_write(void*, grpc_error*) /proc/self/cwd/src/core/lib/iomgr/tcp_posix.cc:282 (liblibgrpc_Ubase_Uc.so+0xac764)
    #3 exec_ctx_run(grpc_closure*, grpc_error*) /proc/self/cwd/src/core/lib/iomgr/exec_ctx.cc:40 (liblibgrpc_Ubase_Uc.so+0x8ba2b)
    #4 grpc_core::ExecCtx::Flush() /proc/self/cwd/src/core/lib/iomgr/exec_ctx.cc:134 (liblibgrpc_Ubase_Uc.so+0x8b776)
    #5 pollset_work(grpc_pollset*, grpc_pollset_worker**, long) /proc/self/cwd/src/core/lib/iomgr/ev_epollex_linux.cc:1199 (liblibgrpc_Ubase_Uc.so+0x73172)
    #6 pollset_work(grpc_pollset*, grpc_pollset_worker**, long) /proc/self/cwd/src/core/lib/iomgr/ev_posix.cc:321 (liblibgrpc_Ubase_Uc.so+0x89fa8)
    #7 grpc_pollset_work(grpc_pollset*, grpc_pollset_worker**, long) /proc/self/cwd/src/core/lib/iomgr/pollset.cc:48 (liblibgrpc_Ubase_Uc.so+0x92962)
    #8 run_poller(void*, grpc_error*) /proc/self/cwd/src/core/lib/iomgr/tcp_posix.cc:168 (liblibgrpc_Ubase_Uc.so+0xac8d4)
    #9 GrpcExecutor::RunClosures(char const*, grpc_closure_list) /proc/self/cwd/src/core/lib/iomgr/executor.cc:75 (liblibgrpc_Ubase_Uc.so+0x8cbc9)
    #10 GrpcExecutor::ThreadMain(void*) /proc/self/cwd/src/core/lib/iomgr/executor.cc:191 (liblibgrpc_Ubase_Uc.so+0x8d452)
    #11 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*)::{lambda(void*)#1}::operator()(void*) const /proc/self/cwd/src/core/lib/gprpp/thd_posix.cc:100 (liblibgpr_Ubase.so+0x10e2b)
    #12 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*)::{lambda(void*)#1}::__invoke(void*) /proc/self/cwd/src/core/lib/gprpp/thd_posix.cc:74 (liblibgpr_Ubase.so+0x10c58)

  Location is heap block of size 936 at 0x7b6000000000 allocated by main thread:
    #0 malloc /tmp/clang-build/src/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:665 (window_overflow_bad_client_test+0x4465b7)
    #1 gpr_malloc /proc/self/cwd/src/core/lib/gpr/alloc.cc:57 (liblibgpr_Ubase.so+0x6390)
    #2 grpc_tcp_create(grpc_fd*, grpc_channel_args const*, char const*) /proc/self/cwd/src/core/lib/iomgr/tcp_posix.cc:1100 (liblibgrpc_Ubase_Uc.so+0xa671d)
    #3 grpc_iomgr_create_endpoint_pair(char const*, grpc_channel_args*) /proc/self/cwd/src/core/lib/iomgr/endpoint_pair_posix.cc:62 (liblibgrpc_Ubase_Uc.so+0x63624)
    #4 grpc_run_bad_client_test(void (*)(grpc_server*, grpc_completion_queue*, void*), grpc_bad_client_arg*, int, unsigned int) /proc/self/cwd/test/core/bad_client/bad_client.cc:199 (libtest_Score_Sbad_Uclient_Slibbad_Uclient_Utest.so+0x3d93)
    #5 main /proc/self/cwd/test/core/bad_client/tests/window_overflow.cc:98 (window_overflow_bad_client_test+0x4b0219)

  Thread T5 'default-executo' (tid=26, running) created by thread T1 at:
    #0 pthread_create /tmp/clang-build/src/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:966 (window_overflow_bad_client_test+0x447aa5)
    #1 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*) /proc/self/cwd/src/core/lib/gprpp/thd_posix.cc:73 (liblibgpr_Ubase.so+0x108c9)
    #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*&&) /proc/self/cwd/./src/core/lib/gprpp/memory.h:52 (liblibgpr_Ubase.so+0x104c6)
    #3 grpc_core::Thread::Thread(char const*, void (*)(void*), void*, bool*) /proc/self/cwd/src/core/lib/gprpp/thd_posix.cc:142 (liblibgpr_Ubase.so+0x10297)
    #4 GrpcExecutor::Enqueue(grpc_closure*, grpc_error*, bool) /proc/self/cwd/src/core/lib/iomgr/executor.cc:306 (liblibgrpc_Ubase_Uc.so+0x8df5f)
    #5 default_enqueue_long(grpc_closure*, grpc_error*) /proc/self/cwd/src/core/lib/iomgr/executor.cc:327 (liblibgrpc_Ubase_Uc.so+0x8e1fd)
    #6 grpc_closure_sched(char const*, int, grpc_closure*, grpc_error*) /proc/self/cwd/./src/core/lib/iomgr/closure.h:299 (libtest_Score_Sutil_Slibgrpc_Utest_Uutil_Ubase.so+0xa55a)
    #7 run_poller(void*, grpc_error*) /proc/self/cwd/src/core/lib/iomgr/tcp_posix.cc:192 (liblibgrpc_Ubase_Uc.so+0xacba0)
    #8 GrpcExecutor::RunClosures(char const*, grpc_closure_list) /proc/self/cwd/src/core/lib/iomgr/executor.cc:75 (liblibgrpc_Ubase_Uc.so+0x8cbc9)
    #9 GrpcExecutor::ThreadMain(void*) /proc/self/cwd/src/core/lib/iomgr/executor.cc:191 (liblibgrpc_Ubase_Uc.so+0x8d452)
    #10 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*)::{lambda(void*)#1}::operator()(void*) const /proc/self/cwd/src/core/lib/gprpp/thd_posix.cc:100 (liblibgpr_Ubase.so+0x10e2b)
    #11 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*)::{lambda(void*)#1}::__invoke(void*) /proc/self/cwd/src/core/lib/gprpp/thd_posix.cc:74 (liblibgpr_Ubase.so+0x10c58)

SUMMARY: ThreadSanitizer: data race /proc/self/cwd/src/core/lib/iomgr/tcp_posix.cc:399 in tcp_destroy(grpc_endpoint*)
==================

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions