New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 768603 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 757162
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug



Sign in to add a comment

audio_unittests became flaky on GPU TSAN bot

Project Member Reported by zmo@chromium.org, Sep 25 2017

Issue description

One failing run:

https://build.chromium.org/p/chromium.gpu.fyi/builders/Linux%20GPU%20TSAN%20Release/builds/9445

WARNING: ThreadSanitizer: data race (pid=2120)
  Atomic read of size 1 at 0x7b0c00009870 by thread T1:
    #0 pthread_mutex_lock ??:? (audio_unittests+0x47367e)
    #1 pa_mutex_lock ??:? (libpulsecommon-4.0.so+0x4508d)

  Previous write of size 8 at 0x7b0c00009870 by main thread (mutexes: write M354):
    #0 malloc ??:? (audio_unittests+0x456d88)
    #1 pa_xmalloc ??:? (libpulsecommon-4.0.so+0x10a46)
    #2 InitPulse media/audio/pulse/pulse_util.cc:162 (audio_unittests+0x65386c)
    #3 CreateAudioManager media/audio/linux/audio_manager_linux.cc:46 (audio_unittests+0x644251)
    #4 Create media/audio/audio_manager.cc:287 (audio_unittests+0x61fe49)
    #5 CreateForTesting media/audio/audio_manager.cc:300 (audio_unittests+0x61fe49)
    #6 Create media/audio/audio_manager_unittest.cc:93 (audio_unittests+0x51806a)
    #7 CreateAudioManagerForTesting<nullptr_t> media/audio/audio_manager_unittest.cc:351 (audio_unittests+0x51806a)
    #8 AudioManagerTest media/audio/audio_manager_unittest.cc:247 (audio_unittests+0x518e99)
    #9 AudioManagerTest_GroupId_Test media/audio/audio_manager_unittest.cc:637 (audio_unittests+0x518e99)
    #10 CreateTest third_party/googletest/src/googletest/include/gtest/internal/gtest-internal.h:484 (audio_unittests+0x518e99)
    #11 HandleExceptionsInMethodIfSupported<testing::internal::TestFactoryBase, testing::Test *> third_party/googletest/src/googletest/src/gtest.cc:2456 (audio_unittests+0x6b705a)
    #12 Run third_party/googletest/src/googletest/src/gtest.cc:2645 (audio_unittests+0x6b705a)
    #13 Run third_party/googletest/src/googletest/src/gtest.cc:2772 (audio_unittests+0x6b7946)
    #14 RunAllTests third_party/googletest/src/googletest/src/gtest.cc:4677 (audio_unittests+0x6c0ce6)
    #15 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc:2456 (audio_unittests+0x6c06e5)
    #16 Run third_party/googletest/src/googletest/src/gtest.cc:4285 (audio_unittests+0x6c06e5)
    #17 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2237 (audio_unittests+0x6e05e6)
    #18 Run base/test/test_suite.cc:270 (audio_unittests+0x6e05e6)
    #19 Invoke<TestSuiteNoAtExit *> base/bind_internal.h:194 (audio_unittests+0x610fa8)
    #20 MakeItSo<int (base::TestSuite::*const &)(), TestSuiteNoAtExit *> base/bind_internal.h:277 (audio_unittests+0x610fa8)
    #21 RunImpl<int (base::TestSuite::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<TestSuiteNoAtExit> > &, 0> base/bind_internal.h:349 (audio_unittests+0x610fa8)
    #22 Run base/bind_internal.h:331 (audio_unittests+0x610fa8)
    #23 Run base/callback.h:92 (audio_unittests+0x6e2306)
    #24 LaunchUnitTestsInternal base/test/launcher/unit_test_launcher.cc:216 (audio_unittests+0x6e2306)
    #25 LaunchUnitTests base/test/launcher/unit_test_launcher.cc:475 (audio_unittests+0x6e2183)
    #26 main media/test/run_all_unittests.cc:56 (audio_unittests+0x610e42)

  Location is heap block of size 40 at 0x7b0c00009870 allocated by main thread:
    #0 malloc ??:? (audio_unittests+0x456d88)
    #1 pa_xmalloc ??:? (libpulsecommon-4.0.so+0x10a46)
    #2 InitPulse media/audio/pulse/pulse_util.cc:162 (audio_unittests+0x65386c)
    #3 CreateAudioManager media/audio/linux/audio_manager_linux.cc:46 (audio_unittests+0x644251)
    #4 Create media/audio/audio_manager.cc:287 (audio_unittests+0x61fe49)
    #5 CreateForTesting media/audio/audio_manager.cc:300 (audio_unittests+0x61fe49)
    #6 Create media/audio/audio_manager_unittest.cc:93 (audio_unittests+0x51806a)
    #7 CreateAudioManagerForTesting<nullptr_t> media/audio/audio_manager_unittest.cc:351 (audio_unittests+0x51806a)
    #8 AudioManagerTest media/audio/audio_manager_unittest.cc:247 (audio_unittests+0x518e99)
    #9 AudioManagerTest_GroupId_Test media/audio/audio_manager_unittest.cc:637 (audio_unittests+0x518e99)
    #10 CreateTest third_party/googletest/src/googletest/include/gtest/internal/gtest-internal.h:484 (audio_unittests+0x518e99)
    #11 HandleExceptionsInMethodIfSupported<testing::internal::TestFactoryBase, testing::Test *> third_party/googletest/src/googletest/src/gtest.cc:2456 (audio_unittests+0x6b705a)
    #12 Run third_party/googletest/src/googletest/src/gtest.cc:2645 (audio_unittests+0x6b705a)
    #13 Run third_party/googletest/src/googletest/src/gtest.cc:2772 (audio_unittests+0x6b7946)
    #14 RunAllTests third_party/googletest/src/googletest/src/gtest.cc:4677 (audio_unittests+0x6c0ce6)
    #15 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc:2456 (audio_unittests+0x6c06e5)
    #16 Run third_party/googletest/src/googletest/src/gtest.cc:4285 (audio_unittests+0x6c06e5)
    #17 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2237 (audio_unittests+0x6e05e6)
    #18 Run base/test/test_suite.cc:270 (audio_unittests+0x6e05e6)
    #19 Invoke<TestSuiteNoAtExit *> base/bind_internal.h:194 (audio_unittests+0x610fa8)
    #20 MakeItSo<int (base::TestSuite::*const &)(), TestSuiteNoAtExit *> base/bind_internal.h:277 (audio_unittests+0x610fa8)
    #21 RunImpl<int (base::TestSuite::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<TestSuiteNoAtExit> > &, 0> base/bind_internal.h:349 (audio_unittests+0x610fa8)
    #22 Run base/bind_internal.h:331 (audio_unittests+0x610fa8)
    #23 Run base/callback.h:92 (audio_unittests+0x6e2306)
    #24 LaunchUnitTestsInternal base/test/launcher/unit_test_launcher.cc:216 (audio_unittests+0x6e2306)
    #25 LaunchUnitTests base/test/launcher/unit_test_launcher.cc:475 (audio_unittests+0x6e2183)
    #26 main media/test/run_all_unittests.cc:56 (audio_unittests+0x610e42)

  Mutex M354 (0x7b0c000045f0) created at:
    #0 pthread_mutex_init ??:? (audio_unittests+0x459843)
    #1 pa_mutex_new ??:? (libpulsecommon-4.0.so+0x44da9)
    #2 InitPulse media/audio/pulse/pulse_util.cc:116 (audio_unittests+0x65365a)
    #3 CreateAudioManager media/audio/linux/audio_manager_linux.cc:46 (audio_unittests+0x644251)
    #4 Create media/audio/audio_manager.cc:287 (audio_unittests+0x61fe49)
    #5 CreateForTesting media/audio/audio_manager.cc:300 (audio_unittests+0x61fe49)
    #6 Create media/audio/audio_manager_unittest.cc:93 (audio_unittests+0x51806a)
    #7 CreateAudioManagerForTesting<nullptr_t> media/audio/audio_manager_unittest.cc:351 (audio_unittests+0x51806a)
    #8 AudioManagerTest media/audio/audio_manager_unittest.cc:247 (audio_unittests+0x518e99)
    #9 AudioManagerTest_GroupId_Test media/audio/audio_manager_unittest.cc:637 (audio_unittests+0x518e99)
    #10 CreateTest third_party/googletest/src/googletest/include/gtest/internal/gtest-internal.h:484 (audio_unittests+0x518e99)
    #11 HandleExceptionsInMethodIfSupported<testing::internal::TestFactoryBase, testing::Test *> third_party/googletest/src/googletest/src/gtest.cc:2456 (audio_unittests+0x6b705a)
    #12 Run third_party/googletest/src/googletest/src/gtest.cc:2645 (audio_unittests+0x6b705a)
    #13 Run third_party/googletest/src/googletest/src/gtest.cc:2772 (audio_unittests+0x6b7946)
    #14 RunAllTests third_party/googletest/src/googletest/src/gtest.cc:4677 (audio_unittests+0x6c0ce6)
    #15 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc:2456 (audio_unittests+0x6c06e5)
    #16 Run third_party/googletest/src/googletest/src/gtest.cc:4285 (audio_unittests+0x6c06e5)
    #17 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2237 (audio_unittests+0x6e05e6)
    #18 Run base/test/test_suite.cc:270 (audio_unittests+0x6e05e6)
    #19 Invoke<TestSuiteNoAtExit *> base/bind_internal.h:194 (audio_unittests+0x610fa8)
    #20 MakeItSo<int (base::TestSuite::*const &)(), TestSuiteNoAtExit *> base/bind_internal.h:277 (audio_unittests+0x610fa8)
    #21 RunImpl<int (base::TestSuite::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<TestSuiteNoAtExit> > &, 0> base/bind_internal.h:349 (audio_unittests+0x610fa8)
    #22 Run base/bind_internal.h:331 (audio_unittests+0x610fa8)
    #23 Run base/callback.h:92 (audio_unittests+0x6e2306)
    #24 LaunchUnitTestsInternal base/test/launcher/unit_test_launcher.cc:216 (audio_unittests+0x6e2306)
    #25 LaunchUnitTests base/test/launcher/unit_test_launcher.cc:475 (audio_unittests+0x6e2183)
    #26 main media/test/run_all_unittests.cc:56 (audio_unittests+0x610e42)

  Thread T1 'threaded-ml' (tid=2154, running) created by main thread at:
    #0 pthread_create ??:? (audio_unittests+0x458733)
    #1 pa_thread_new ??:? (libpulsecommon-4.0.so+0x4574c)
    #2 InitPulse media/audio/pulse/pulse_util.cc:143 (audio_unittests+0x6537da)
    #3 CreateAudioManager media/audio/linux/audio_manager_linux.cc:46 (audio_unittests+0x644251)
    #4 Create media/audio/audio_manager.cc:287 (audio_unittests+0x61fe49)
    #5 CreateForTesting media/audio/audio_manager.cc:300 (audio_unittests+0x61fe49)
    #6 Create media/audio/audio_manager_unittest.cc:93 (audio_unittests+0x51806a)
    #7 CreateAudioManagerForTesting<nullptr_t> media/audio/audio_manager_unittest.cc:351 (audio_unittests+0x51806a)
    #8 AudioManagerTest media/audio/audio_manager_unittest.cc:247 (audio_unittests+0x518e99)
    #9 AudioManagerTest_GroupId_Test media/audio/audio_manager_unittest.cc:637 (audio_unittests+0x518e99)
    #10 CreateTest third_party/googletest/src/googletest/include/gtest/internal/gtest-internal.h:484 (audio_unittests+0x518e99)
    #11 HandleExceptionsInMethodIfSupported<testing::internal::TestFactoryBase, testing::Test *> third_party/googletest/src/googletest/src/gtest.cc:2456 (audio_unittests+0x6b705a)
    #12 Run third_party/googletest/src/googletest/src/gtest.cc:2645 (audio_unittests+0x6b705a)
    #13 Run third_party/googletest/src/googletest/src/gtest.cc:2772 (audio_unittests+0x6b7946)
    #14 RunAllTests third_party/googletest/src/googletest/src/gtest.cc:4677 (audio_unittests+0x6c0ce6)
    #15 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc:2456 (audio_unittests+0x6c06e5)
    #16 Run third_party/googletest/src/googletest/src/gtest.cc:4285 (audio_unittests+0x6c06e5)
    #17 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2237 (audio_unittests+0x6e05e6)
    #18 Run base/test/test_suite.cc:270 (audio_unittests+0x6e05e6)
    #19 Invoke<TestSuiteNoAtExit *> base/bind_internal.h:194 (audio_unittests+0x610fa8)
    #20 MakeItSo<int (base::TestSuite::*const &)(), TestSuiteNoAtExit *> base/bind_internal.h:277 (audio_unittests+0x610fa8)
    #21 RunImpl<int (base::TestSuite::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<TestSuiteNoAtExit> > &, 0> base/bind_internal.h:349 (audio_unittests+0x610fa8)
    #22 Run base/bind_internal.h:331 (audio_unittests+0x610fa8)
    #23 Run base/callback.h:92 (audio_unittests+0x6e2306)
    #24 LaunchUnitTestsInternal base/test/launcher/unit_test_launcher.cc:216 (audio_unittests+0x6e2306)
    #25 LaunchUnitTests base/test/launcher/unit_test_launcher.cc:475 (audio_unittests+0x6e2183)
    #26 main media/test/run_all_unittests.cc:56 (audio_unittests+0x610e42)

SUMMARY: ThreadSanitizer: data race ??:? in __interceptor_pthread_mutex_lock
 

Comment 1 by zmo@chromium.org, Sep 25 2017

Ken, who should take a look at these failures?

Comment 2 by kbr@chromium.org, Sep 25 2017

Cc: hongchan@chromium.org rtoy@chromium.org
Owner: dalecur...@chromium.org
This was reported already and dalecurtis@ triaged it but I can't easily find the bug. Dale, can you duplicate this? What do we need to do to get them stable again?

Mergedinto: 757162
Status: Duplicate (was: Untriaged)
No idea... I'm experimenting with various fixes, but nothing has changed in this code forever, so either tsan got smarter, a suppression was deleted, or pulseaudio got upgraded to a version with a bug. I'm not sure which yet.

Sign in to add a comment