Skip to content

Flake: SIGSEGV in ProxyEnd2end/ProxyEnd2endTest.RpcDeadlineExpires under TSAN #18504

@apolcyn

Description

@apolcyn
Note: Google Test filter = ProxyEnd2end/ProxyEnd2endTest.RpcDeadlineExpires/14
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from ProxyEnd2end/ProxyEnd2endTest
[ RUN      ] ProxyEnd2end/ProxyEnd2endTest.RpcDeadlineExpires/14
D0325 22:05:12.773685838   24789 ev_posix.cc:169]            Using polling engine: poll
D0325 22:05:12.773846509   24789 dns_resolver_ares.cc:443]   Using ares dns resolver
D0325 22:05:12.774686601   24789 end2end_test.cc:239]        TestScenario{use_interceptors=false, use_proxy=false, inproc=true, server_type=callback, credentials='INSECURE_CREDENTIALS'}
D0325 22:05:12.777458549   24789 tcp_posix.cc:1258]          cannot set inq fd=3 errno=92
I0325 22:05:12.778838106   24789 server_builder.cc:294]      Synchronous server. Num CQs: 4, Min pollers: 1, Max Pollers: 2, CQ timeout (msec): 10
I0325 22:05:12.778872017   24789 server_builder.cc:303]      Callback server.



*******************************
Caught signal SIGSEGV
==================
WARNING: ThreadSanitizer: signal-unsafe call inside of a signal (pid=24789)
    #0 malloc /tmp/clang-build/src/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:666:5 (end2end_test+0x6e0cb7)
    #1 <null> <null> (ld-linux-x86-64.so.2+0xcaad)
    #2 crash_handler(int, siginfo_t*, void*) /var/local/git/grpc/test/core/util/test_config.cc:247:13 (end2end_test+0x8b6ae8)
    #3 __tsan::CallUserSignalHandler(__tsan::ThreadState*, bool, bool, bool, int, __sanitizer::__sanitizer_siginfo*, void*) /tmp/clang-build/src/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:1904:7 (end2end_test+0x6e8df3)
    #4 cq_end_op_for_callback(grpc_completion_queue*, void*, grpc_error*, void (*)(void*, grpc_cq_completion*), void*, grpc_cq_completion*) /var/local/git/grpc/src/core/lib/surface/completion_queue.cc:853:3 (end2end_test+0x9d9f90)
    #5 grpc_cq_end_op(grpc_completion_queue*, void*, grpc_error*, void (*)(void*, grpc_cq_completion*), void*, grpc_cq_completion*) /var/local/git/grpc/src/core/lib/surface/completion_queue.cc:859:3 (end2end_test+0x9d6ee4)
    #6 publish_call(grpc_server*, (anonymous namespace)::call_data*, unsigned long, (anonymous namespace)::requested_call*) /var/local/git/grpc/src/core/lib/surface/server.cc:514:3 (end2end_test+0x9e825b)
    #7 publish_new_rpc(void*, grpc_error*) /var/local/git/grpc/src/core/lib/surface/server.cc:544:7 (end2end_test+0x9e7738)
    #8 finish_start_new_rpc(grpc_server*, grpc_call_element*, (anonymous namespace)::request_matcher*, grpc_server_register_method_payload_handling) /var/local/git/grpc/src/core/lib/surface/server.cc:600:7 (end2end_test+0x9e72e1)
    #9 start_new_rpc(grpc_call_element*) /var/local/git/grpc/src/core/lib/surface/server.cc:662:3 (end2end_test+0x9e6fc9)
    #10 got_initial_metadata(void*, grpc_error*) /var/local/git/grpc/src/core/lib/surface/server.cc:839:5 (end2end_test+0x9e660a)
    #11 exec_ctx_run(grpc_closure*, grpc_error*) /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:40:3 (end2end_test+0x8c1a49)
    #12 grpc_core::ExecCtx::Flush() /var/local/git/grpc/src/core/lib/iomgr/exec_ctx.cc:148:9 (end2end_test+0x8c17d3)
    #13 grpc_core::ExecCtx::~ExecCtx() /var/local/git/grpc/./src/core/lib/iomgr/exec_ctx.h:121:5 (end2end_test+0x8b5d72)
    #14 grpc_channel_create_registered_call /var/local/git/grpc/src/core/lib/surface/channel.cc:422:1 (end2end_test+0x9d409a)
    #15 grpc::Channel::CreateCallInternal(grpc::internal::RpcMethod const&, grpc::ClientContext*, grpc::CompletionQueue*, unsigned long) /var/local/git/grpc/src/cpp/client/channel_cc.cc:120:14 (end2end_test+0x92b65e)
    #16 grpc::Channel::CreateCall(grpc::internal::RpcMethod const&, grpc::ClientContext*, grpc::CompletionQueue*) /var/local/git/grpc/src/cpp/client/channel_cc.cc:163:10 (end2end_test+0x92bc5d)
    #17 grpc::internal::BlockingUnaryCallImpl<grpc::testing::EchoRequest, grpc::testing::EchoResponse>::BlockingUnaryCallImpl(grpc::ChannelInterface*, grpc::internal::RpcMethod const&, grpc::ClientContext*, grpc::testing::EchoRequest const&, grpc::testing::EchoResponse*) /var/local/git/grpc/include/grpcpp/impl/codegen/client_unary_call.h:55:24 (end2end_test+0x85bb2e)
    #18 grpc::Status grpc::internal::BlockingUnaryCall<grpc::testing::EchoRequest, grpc::testing::EchoResponse>(grpc::ChannelInterface*, grpc::internal::RpcMethod const&, grpc::ClientContext*, grpc::testing::EchoRequest const&, grpc::testing::EchoResponse*) /var/local/git/grpc/include/grpcpp/impl/codegen/client_unary_call.h:41:10 (end2end_test+0x854b80)
    #19 grpc::testing::EchoTestService::Stub::Echo(grpc::ClientContext*, grpc::testing::EchoRequest const&, grpc::testing::EchoResponse*) /var/local/git/grpc/gens/src/proto/grpc/testing/echo.grpc.pb.cc:47:10 (end2end_test+0x850d20)
    #20 grpc::testing::(anonymous namespace)::ProxyEnd2endTest_RpcDeadlineExpires_Test::TestBody() /var/local/git/grpc/test/cpp/end2end/end2end_test.cc:1516:21 (end2end_test+0x78e3f4)
    #21 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /var/local/git/grpc/third_party/googletest/googletest/src/gtest.cc:2402:10 (end2end_test+0xfdb086)
    #22 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /var/local/git/grpc/third_party/googletest/googletest/src/gtest.cc:2438:14 (end2end_test+0xfb67b2)
    #23 testing::Test::Run() /var/local/git/grpc/third_party/googletest/googletest/src/gtest.cc:2474:5 (end2end_test+0xf919ee)
    #24 testing::TestInfo::Run() /var/local/git/grpc/third_party/googletest/googletest/src/gtest.cc:2656:11 (end2end_test+0xf92b96)
    #25 testing::TestCase::Run() /var/local/git/grpc/third_party/googletest/googletest/src/gtest.cc:2774:28 (end2end_test+0xf935c7)
    #26 testing::internal::UnitTestImpl::RunAllTests() /var/local/git/grpc/third_party/googletest/googletest/src/gtest.cc:4649:43 (end2end_test+0xf9e671)
    #27 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /var/local/git/grpc/third_party/googletest/googletest/src/gtest.cc:2402:10 (end2end_test+0xfe2026)
    #28 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /var/local/git/grpc/third_party/googletest/googletest/src/gtest.cc:2438:14 (end2end_test+0xfba5d8)
    #29 testing::UnitTest::Run() /var/local/git/grpc/third_party/googletest/googletest/src/gtest.cc:4257:10 (end2end_test+0xf9e0eb)
    #30 RUN_ALL_TESTS() /var/local/git/grpc/third_party/googletest/googletest/include/gtest/gtest.h:2233:46 (end2end_test+0x7c98a7)
    #31 main /var/local/git/grpc/test/cpp/end2end/end2end_test.cc:2110:10 (end2end_test+0x754a45)

SUMMARY: ThreadSanitizer: signal-unsafe call inside of a signal (/lib64/ld-linux-x86-64.so.2+0xcaad) 
==================

2019-03-25 22:05:13,433 FAILED: bins/tsan/end2end_test --gtest_filter=ProxyEnd2end/ProxyEnd2endTest.RpcDeadlineExpires/14  GRPC_POLL_STRATEGY=poll [ret=66, pid=24789, time=1.3sec]
2019-03-25 22:05:13,434 START: bins/tsan/client_callback_end2end_test --gtest_filter=ClientCallbackEnd2endTest/Clien

seen in PR: #18499

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions