open-telemetry / opentelemetry-cpp

The OpenTelemetry C++ Client
https://opentelemetry.io/
Apache License 2.0
843 stars 404 forks source link

zpages tests failing on tsan - Removed from tsan CI. #2271

Closed lalitb closed 9 months ago

lalitb commented 1 year ago

These are failing after upgrde of tsan CI runner to ubuntu-latest. As of now, these tests are disabled in tsan CI (#2267) as zpages would be deprecated soon (#2217). This issue is to track the error, and potentially add the tests back to CI after fixing. Logs are attached:

test.log

WARNING: ThreadSanitizer: double lock of a mutex (pid=12)
    #0 pthread_mutex_lock ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4240 (libtsan.so.0+0x53908)
    #1 __gthread_mutex_lock(pthread_mutex_t*) <null> (tracez_data_aggregator_tests+0xb4cd8)
    #2 std::mutex::lock() <null> (tracez_data_aggregator_tests+0xb4e2c)
    #3 std::unique_lock<std::mutex>::lock() <null> (libext_Ssrc_Szpages_Slibzpages.so+0x146363)
    #4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) <null> (libext_Ssrc_Szpages_Slibzpages.so+0x13fec8)
    #5 opentelemetry::v1::ext::zpages::TracezDataAggregator::GetAggregatedTracezData[abi:cxx11]() <null> (libext_Ssrc_Szpages_Slibzpages.so+0x1380ad)
    #6 TracezDataAggregatorTest_SingleRunningSpan_Test::TestBody() <null> (tracez_data_aggregator_tests+0xa5f93)
    #7 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x14ffdf)
    #8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x1471f4)
    #9 testing::Test::Run() <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x121031)
    #10 testing::TestInfo::Run() <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x121e23)
    #11 testing::TestSuite::Run() <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x122aed)
    #12 testing::internal::UnitTestImpl::RunAllTests() <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x135183)
    #13 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x151c9d)
    #14 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x148c8e)
    #15 testing::UnitTest::Run() <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x133127)
    #16 RUN_ALL_TESTS() <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest_Umain.so+0xe55)
    #17 main <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest_Umain.so+0xd49)

  Location is heap block of size 168 at 0x7b2c00000000 allocated by main thread:
    #0 operator new(unsigned long) ../../../../src/libsanitizer/tsan/tsan_new_delete.cpp:64 (libtsan.so.0+0x8f162)
    #1 TracezDataAggregatorTest::SetUp() <null> (tracez_data_aggregator_tests+0xbab0b)
    #2 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x14ffdf)
    #3 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x1471f4)
    #4 testing::Test::Run() <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x120f99)
    #5 testing::TestInfo::Run() <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x121e23)
    #6 testing::TestSuite::Run() <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x122aed)
    #7 testing::internal::UnitTestImpl::RunAllTests() <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x135183)
    #8 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x151c9d)
    #9 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x148c8e)
    #10 testing::UnitTest::Run() <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest.so+0x133127)
    #11 RUN_ALL_TESTS() <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest_Umain.so+0xe55)
    #12 main <null> (libexternal_Scom_Ugoogle_Ugoogletest_Slibgtest_Umain.so+0xd49)

  Mutex M89 (0x7b2c00000040) created at:
    #0 pthread_mutex_lock ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4240 (libtsan.so.0+0x53908)
    #1 __gthread_mutex_lock(pthread_mutex_t*) <null> (tracez_data_aggregator_tests+0xb4cd8)
    #2 std::mutex::lock() <null> (tracez_data_aggregator_tests+0xb4e2c)
    #3 std::unique_lock<std::mutex>::lock() <null> (libext_Ssrc_Szpages_Slibzpages.so+0x146363)
    #4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) <null> (libext_Ssrc_Szpages_Slibzpages.so+0x13fec8)
    #5 opentelemetry::v1::ext::zpages::TracezDataAggregator::TracezDataAggregator(std::shared_ptr<opentelemetry::v1::ext::zpages::TracezSharedData>, std::chrono::duration<long, std::ratio<1l, 1000l> >)::{lambda()#1}::operator()() const <null> (libext_Ssrc_Szpages_Slibzpages.so+0x137d84)
    #6 void std::__invoke_impl<void, opentelemetry::v1::ext::zpages::TracezDataAggregator::TracezDataAggregator(std::shared_ptr<opentelemetry::v1::ext::zpages::TracezSharedData>, std::chrono::duration<long, std::ratio<1l, 1000l> >)::{lambda()#1}>(std::__invoke_other, opentelemetry::v1::ext::zpages::TracezDataAggregator::TracezDataAggregator(std::shared_ptr<opentelemetry::v1::ext::zpages::TracezSharedData>, std::chrono::duration<long, std::ratio<1l, 1000l> >)::{lambda()#1}&&) <null> (libext_Ssrc_Szpages_Slibzpages.so+0x139384)
    #7 std::__invoke_result<opentelemetry::v1::ext::zpages::TracezDataAggregator::TracezDataAggregator(std::shared_ptr<opentelemetry::v1::ext::zpages::TracezSharedData>, std::chrono::duration<long, std::ratio<1l, 1000l> >)::{lambda()#1}>::type std::__invoke<opentelemetry::v1::ext::zpages::TracezDataAggregator::TracezDataAggregator(std::shared_ptr<opentelemetry::v1::ext::zpages::TracezSharedData>, std::chrono::duration<long, std::ratio<1l, 1000l> >)::{lambda()#1}>(opentelemetry::v1::ext::zpages::TracezDataAggregator::TracezDataAggregator(std::shared_ptr<opentelemetry::v1::ext::zpages::TracezSharedData>, std::chrono::duration<long, std::ratio<1l, 1000l> >)::{lambda()#1}&&) <null> (libext_Ssrc_Szpages_Slibzpages.so+0x1392fb)
    #8 void std::thread::_Invoker<std::tuple<opentelemetry::v1::ext::zpages::TracezDataAggregator::TracezDataAggregator(std::shared_ptr<opentelemetry::v1::ext::zpages::TracezSharedData>, std::chrono::duration<long, std::ratio<1l, 1000l> >)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) <null> (libext_Ssrc_Szpages_Slibzpages.so+0x13925c)
    #9 std::thread::_Invoker<std::tuple<opentelemetry::v1::ext::zpages::TracezDataAggregator::TracezDataAggregator(std::shared_ptr<opentelemetry::v1::ext::zpages::TracezSharedData>, std::chrono::duration<long, std::ratio<1l, 1000l> >)::{lambda()#1}> >::operator()() <null> (libext_Ssrc_Szpages_Slibzpages.so+0x139202)
    #10 std::thread::_State_impl<std::thread::_Invoker<std::tuple<opentelemetry::v1::ext::zpages::TracezDataAggregator::TracezDataAggregator(std::shared_ptr<opentelemetry::v1::ext::zpages::TracezSharedData>, std::chrono::duration<long, std::ratio<1l, 1000l> >)::{lambda()#1}> > >::_M_run() <null> (libext_Ssrc_Szpages_Slibzpages.so+0x1391b8)
    #11 <null> <null> (libstdc++.so.6+0xdc252)

SUMMARY: ThreadSanitizer: double lock of a mutex (/home/labhas/.cache/bazel/0e07fed36f61d96b2b01756c95aef7a8/execroot/io_opentelemetry_cpp/bazel-out/k8-tsan-fastbuild/bin/ext/test/zpages/tracez_data_aggregator_tests+0xb4cd8) in __gthread_mutex_lock(pthread_mutex_t*)
github-actions[bot] commented 1 year ago

This issue is available for anyone to work on. Make sure to reference this issue in your pull request. :sparkles: Thank you for your contribution! :sparkles:

github-actions[bot] commented 11 months ago

This issue was marked as stale due to lack of activity.

marcalff commented 9 months ago

Closing, as zpages is removed, see #2292