New issue
Advanced search Search tips

Issue 787842 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: ----



Sign in to add a comment

Data race in TabManagerTest.ShouldPurgeAtDefaultTime

Project Member Reported by olka@chromium.org, Nov 22 2017

Issue description

unit_tests failing on chromium.memory/Linux TSan Tests

Builders failed on: 
- Linux TSan Tests: 
  https://build.chromium.org/p/chromium.memory/builders/Linux%20TSan%20Tests


TabManagerTest.ShouldPurgeAtDefaultTime: https://uberchromegw.corp.google.com/i/chromium.memory/builders/Linux%20TSan%20Tests/builds/14467
https://uberchromegw.corp.google.com/i/chromium.memory/builders/Linux%20TSan%20Tests/builds/14529
https://uberchromegw.corp.google.com/i/chromium.memory/builders/Linux%20TSan%20Tests/builds/14500
https://uberchromegw.corp.google.com/i/chromium.memory/builders/Linux%20TSan%20Tests/builds/14467

the earliest I can see:
https://uberchromegw.corp.google.com/i/chromium.memory/builders/Linux%20TSan%20Tests/builds/14363
 

[ RUN      ] TabManagerTest.ShouldPurgeAtDefaultTime
Xlib:  extension "RANDR" missing on display ":99".
==================
WARNING: ThreadSanitizer: data race (pid=26039)
  Read of size 8 at 0x7b48000021b0 by thread T9 (mutexes: write M403489190794240480):
    #0 base::TestMockTimeTaskRunner::PostDelayedTask(base::Location const&, base::OnceCallback<void ()>, base::TimeDelta) base/test/test_mock_time_task_runner.cc:296:66 (unit_tests+0x68bf6fd)
    #1 base::TaskRunner::PostTask(base::Location const&, base::OnceCallback<void ()>) base/task_runner.cc:44:10 (unit_tests+0x78834aa)
    #2 content::AppCacheStorageImpl::DatabaseTask::CallRun(base::TimeTicks) content/browser/appcache/appcache_storage_impl.cc:229:15 (unit_tests+0x4db07e9)
    #3 Invoke<scoped_refptr<content::AppCacheStorageImpl::DatabaseTask>, base::TimeTicks> base/bind_internal.h:194:12 (unit_tests+0x4dc0296)
    #4 MakeItSo<void (content::AppCacheStorageImpl::DatabaseTask::*)(base::TimeTicks), scoped_refptr<content::AppCacheStorageImpl::DatabaseTask>, base::TimeTicks> base/bind_internal.h:277 (unit_tests+0x4dc0296)
    #5 RunImpl<void (content::AppCacheStorageImpl::DatabaseTask::*)(base::TimeTicks), std::__1::tuple<scoped_refptr<content::AppCacheStorageImpl::DatabaseTask>, base::TimeTicks>, 0, 1> base/bind_internal.h:351 (unit_tests+0x4dc0296)
    #6 base::internal::Invoker<base::internal::BindState<void (content::AppCacheStorageImpl::DatabaseTask::*)(base::TimeTicks), scoped_refptr<content::AppCacheStorageImpl::DatabaseTask>, base::TimeTicks>, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:319 (unit_tests+0x4dc0296)
    #7 Run base/callback.h:65:12 (unit_tests+0x77f5906)
    #8 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/debug/task_annotator.cc:57 (unit_tests+0x77f5906)
    #9 base::internal::TaskTracker::RunOrSkipTask(std::__1::unique_ptr<base::internal::Task, std::__1::default_delete<base::internal::Task> >, base::internal::Sequence*, bool) base/task_scheduler/task_tracker.cc:411:30 (unit_tests+0x7891bf7)
    #10 base::internal::TaskTrackerPosix::RunOrSkipTask(std::__1::unique_ptr<base::internal::Task, std::__1::default_delete<base::internal::Task> >, base::internal::Sequence*, bool) base/task_scheduler/task_tracker_posix.cc:23:16 (unit_tests+0x7892ec3)
    #11 base::test::ScopedTaskEnvironment::TestTaskTracker::RunOrSkipTask(std::__1::unique_ptr<base::internal::Task, std::__1::default_delete<base::internal::Task> >, base::internal::Sequence*, bool) base/test/scoped_task_environment.cc:239:49 (unit_tests+0x68bd734)
    #12 base::internal::TaskTracker::RunNextTask(scoped_refptr<base::internal::Sequence>, base::internal::CanScheduleSequenceObserver*) base/task_scheduler/task_tracker.cc:311:3 (unit_tests+0x78910ca)
    #13 base::internal::SchedulerWorker::Thread::ThreadMain() base/task_scheduler/scheduler_worker.cc:72:41 (unit_tests+0x788ddc5)
    #14 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:75:13 (unit_tests+0x78a0c4d)
  Previous write of size 8 at 0x7b48000021b0 by main thread:
    #0 ForwardClocksUntilTickTime base/test/test_mock_time_task_runner.cc:355:14 (unit_tests+0x68bf015)
    #1 base::TestMockTimeTaskRunner::ProcessAllTasksNoLaterThan(base::TimeDelta) base/test/test_mock_time_task_runner.cc:343 (unit_tests+0x68bf015)
    #2 base::TestMockTimeTaskRunner::FastForwardBy(base::TimeDelta) base/test/test_mock_time_task_runner.cc:214:3 (unit_tests+0x68bed9d)
    #3 resource_coordinator::TabManagerTest_ShouldPurgeAtDefaultTime_Test::TestBody() chrome/browser/resource_coordinator/tab_manager_unittest.cc:565:17 (unit_tests+0x2dbccf3)
    #4 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc (unit_tests+0x43c807d)
    #5 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2654:11 (unit_tests+0x43c8f7d)
    #6 testing::TestCase::Run() third_party/googletest/src/googletest/src/gtest.cc:2772:28 (unit_tests+0x43c97c6)
    #7 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:4677:43 (unit_tests+0x43d2be6)
    #8 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc (unit_tests+0x43d25e5)
    #9 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2237:46 (unit_tests+0x68c1986)
    #10 base::TestSuite::Run() base/test/test_suite.cc:272 (unit_tests+0x68c1986)
    #11 content::UnitTestTestSuite::Run() content/public/test/unittest_test_suite.cc:45:23 (unit_tests+0x6a24481)
    #12 Invoke<content::UnitTestTestSuite *> base/bind_internal.h:194:12 (unit_tests+0x68b7da8)
    #13 MakeItSo<int (content::UnitTestTestSuite::*const &)(), content::UnitTestTestSuite *> base/bind_internal.h:277 (unit_tests+0x68b7da8)
    #14 RunImpl<int (content::UnitTestTestSuite::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<content::UnitTestTestSuite> > &, 0> base/bind_internal.h:351 (unit_tests+0x68b7da8)
    #15 base::internal::Invoker<base::internal::BindState<int (content::UnitTestTestSuite::*)(), base::internal::UnretainedWrapper<content::UnitTestTestSuite> >, int ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:333 (unit_tests+0x68b7da8)
    #16 Run base/callback.h:94:12 (unit_tests+0x68c4e06)
    #17 base::(anonymous namespace)::LaunchUnitTestsInternal(base::RepeatingCallback<int ()> const&, unsigned long, int, bool, base::RepeatingCallback<void ()> const&) base/test/launcher/unit_test_launcher.cc:217 (unit_tests+0x68c4e06)
    #18 base::LaunchUnitTests(int, char**, base::RepeatingCallback<int ()> const&) base/test/launcher/unit_test_launcher.cc:555:10 (unit_tests+0x68c4c83)
    #19 main chrome/test/base/run_all_unittests.cc:30:10 (unit_tests+0x68b7cdd)
  Location is heap block of size 344 at 0x7b4800002100 allocated by main thread:
    #0 operator new(unsigned long) /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:44:3 (unit_tests+0x223fee9)
    #1 MakeRefCounted<base::TestMockTimeTaskRunner> base/memory/scoped_refptr.h:90:12 (unit_tests+0x2dd1fc0)
    #2 resource_coordinator::TabManagerTest::TabManagerTest() chrome/browser/resource_coordinator/tab_manager_unittest.cc:248 (unit_tests+0x2dd1fc0)
    #3 TabManagerTest_ShouldPurgeAtDefaultTime_Test chrome/browser/resource_coordinator/tab_manager_unittest.cc:537:1 (unit_tests+0x2dd2454)
    #4 testing::internal::TestFactoryImpl<resource_coordinator::TabManagerTest_ShouldPurgeAtDefaultTime_Test>::CreateTest() third_party/googletest/src/googletest/include/gtest/internal/gtest-internal.h:484 (unit_tests+0x2dd2454)
    #5 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc (unit_tests+0x43c8eda)
    #6 testing::TestCase::Run() third_party/googletest/src/googletest/src/gtest.cc:2772:28 (unit_tests+0x43c97c6)
    #7 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:4677:43 (unit_tests+0x43d2be6)
    #8 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc (unit_tests+0x43d25e5)
    #9 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2237:46 (unit_tests+0x68c1986)
    #10 base::TestSuite::Run() base/test/test_suite.cc:272 (unit_tests+0x68c1986)
    #11 content::UnitTestTestSuite::Run() content/public/test/unittest_test_suite.cc:45:23 (unit_tests+0x6a24481)
    #12 Invoke<content::UnitTestTestSuite *> base/bind_internal.h:194:12 (unit_tests+0x68b7da8)
    #13 MakeItSo<int (content::UnitTestTestSuite::*const &)(), content::UnitTestTestSuite *> base/bind_internal.h:277 (unit_tests+0x68b7da8)
    #14 RunImpl<int (content::UnitTestTestSuite::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<content::UnitTestTestSuite> > &, 0> base/bind_internal.h:351 (unit_tests+0x68b7da8)
    #15 base::internal::Invoker<base::internal::BindState<int (content::UnitTestTestSuite::*)(), base::internal::UnretainedWrapper<content::UnitTestTestSuite> >, int ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:333 (unit_tests+0x68b7da8)
    #16 Run base/callback.h:94:12 (unit_tests+0x68c4e06)
    #17 base::(anonymous namespace)::LaunchUnitTestsInternal(base::RepeatingCallback<int ()> const&, unsigned long, int, bool, base::RepeatingCallback<void ()> const&) base/test/launcher/unit_test_launcher.cc:217 (unit_tests+0x68c4e06)
    #18 base::LaunchUnitTests(int, char**, base::RepeatingCallback<int ()> const&) base/test/launcher/unit_test_launcher.cc:555:10 (unit_tests+0x68c4c83)
    #19 main chrome/test/base/run_all_unittests.cc:30:10 (unit_tests+0x68b7cdd)
  Mutex M403489190794240480 is already destroyed.
  Thread T9 'TaskSchedulerSc' (tid=26049, running) created by main thread at:
    #0 pthread_create /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:921:3 (unit_tests+0x21d9433)
    #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:114:13 (unit_tests+0x78a07d7)
    #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:199:10 (unit_tests+0x78a06d5)
    #3 Initialize base/task_scheduler/scheduler_worker.cc:114:5 (unit_tests+0x788d950)
    #4 base::internal::SchedulerWorker::Thread::Create(scoped_refptr<base::internal::SchedulerWorker>) base/task_scheduler/scheduler_worker.cc:31 (unit_tests+0x788d950)
    #5 base::internal::SchedulerWorker::Start() base/task_scheduler/scheduler_worker.cc:202:13 (unit_tests+0x788d6e1)
    #6 base::internal::SchedulerWorkerPoolImpl::CreateRegisterAndStartSchedulerWorkerLockRequired() base/task_scheduler/scheduler_worker_pool_impl.cc:773:16 (unit_tests+0x7889b48)
    #7 MaintainAtLeastOneIdleWorkerLockRequired base/task_scheduler/scheduler_worker_pool_impl.cc:726:9 (unit_tests+0x788b663)
    #8 base::internal::SchedulerWorkerPoolImpl::WakeUpOneWorkerLockRequired() base/task_scheduler/scheduler_worker_pool_impl.cc:704 (unit_tests+0x788b663)
    #9 WakeUpOneWorker base/task_scheduler/scheduler_worker_pool_impl.cc:714:3 (unit_tests+0x7889fc9)
    #10 base::internal::SchedulerWorkerPoolImpl::OnCanScheduleSequence(scoped_refptr<base::internal::Sequence>) base/task_scheduler/scheduler_worker_pool_impl.cc:253 (unit_tests+0x7889fc9)
    #11 base::internal::SchedulerWorkerPool::PostTaskWithSequenceNow(std::__1::unique_ptr<base::internal::Task, std::__1::default_delete<base::internal::Task> >, scoped_refptr<base::internal::Sequence>) base/task_scheduler/scheduler_worker_pool.cc:215:7 (unit_tests+0x7887542)
    #12 base::internal::SchedulerWorkerPool::PostTaskWithSequence(std::__1::unique_ptr<base::internal::Task, std::__1::default_delete<base::internal::Task> >, scoped_refptr<base::internal::Sequence>) base/task_scheduler/scheduler_worker_pool.cc:153:5 (unit_tests+0x78872f9)
    #13 base::internal::TaskSchedulerImpl::PostDelayedTaskWithTraits(base::Location const&, base::TaskTraits const&, base::OnceCallback<void ()>, base::TimeDelta) base/task_scheduler/task_scheduler_impl.cc:120:9 (unit_tests+0x7885cc7)
    #14 PostDelayedTaskWithTraits base/task_scheduler/post_task.cc:76:33 (unit_tests+0x7884323)
    #15 base::PostTaskWithTraits(base::Location const&, base::TaskTraits const&, base::OnceCallback<void ()>) base/task_scheduler/post_task.cc:65 (unit_tests+0x7884323)
    #16 ui::X11HotplugEventHandler::OnHotplugEvent() ui/events/platform/x11/x11_hotplug_event_handler.cc:478:3 (unit_tests+0x85325d3)
    #17 ui::X11EventSource::OnDispatcherListChanged() ui/events/platform/x11/x11_event_source.cc:297:29 (unit_tests+0x8530fcf)
    #18 OnDispatcherListChanged ui/events/platform/x11/x11_event_source_glib.cc:73:17 (unit_tests+0x8534efd)
    #19 non-virtual thunk to ui::X11EventSourceGlib::OnDispatcherListChanged() ui/events/platform/x11/x11_event_source_glib.cc (unit_tests+0x8534efd)
    #20 ui::PlatformEventSource::AddPlatformEventDispatcher(ui::PlatformEventDispatcher*) ui/events/platform/platform_event_source.cc:50:3 (unit_tests+0x8375d1f)
    #21 aura::WindowTreeHostX11::WindowTreeHostX11(gfx::Rect const&) ui/aura/window_tree_host_x11.cc:130:45 (unit_tests+0x9208e4e)
    #22 aura::WindowTreeHost::Create(gfx::Rect const&) ui/aura/window_tree_host_x11.cc:557:14 (unit_tests+0x920aa3a)
    #23 aura::TestScreen::CreateHostForPrimaryDisplay() ui/aura/test/test_screen.cc:52:9 (unit_tests+0x763b56d)
    #24 aura::test::AuraTestHelper::SetUp(ui::ContextFactory*, ui::ContextFactoryPrivate*) ui/aura/test/aura_test_helper.cc:139:31 (unit_tests+0x7636bc5)
    #25 content::RenderViewHostTestHarness::SetUp() content/public/test/test_renderer_host.cc:269:22 (unit_tests+0x6a2079b)
    #26 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc (unit_tests+0x43c7f86)
    #27 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2654:11 (unit_tests+0x43c8f7d)
    #28 testing::TestCase::Run() third_party/googletest/src/googletest/src/gtest.cc:2772:28 (unit_tests+0x43c97c6)
    #29 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:4677:43 (unit_tests+0x43d2be6)
    #30 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc (unit_tests+0x43d25e5)
    #31 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2237:46 (unit_tests+0x68c1986)
    #32 base::TestSuite::Run() base/test/test_suite.cc:272 (unit_tests+0x68c1986)
    #33 content::UnitTestTestSuite::Run() content/public/test/unittest_test_suite.cc:45:23 (unit_tests+0x6a24481)
    #34 Invoke<content::UnitTestTestSuite *> base/bind_internal.h:194:12 (unit_tests+0x68b7da8)
    #35 MakeItSo<int (content::UnitTestTestSuite::*const &)(), content::UnitTestTestSuite *> base/bind_internal.h:277 (unit_tests+0x68b7da8)
    #36 RunImpl<int (content::UnitTestTestSuite::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<content::UnitTestTestSuite> > &, 0> base/bind_internal.h:351 (unit_tests+0x68b7da8)
    #37 base::internal::Invoker<base::internal::BindState<int (content::UnitTestTestSuite::*)(), base::internal::UnretainedWrapper<content::UnitTestTestSuite> >, int ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:333 (unit_tests+0x68b7da8)
    #38 Run base/callback.h:94:12 (unit_tests+0x68c4e06)
    #39 base::(anonymous namespace)::LaunchUnitTestsInternal(base::RepeatingCallback<int ()> const&, unsigned long, int, bool, base::RepeatingCallback<void ()> const&) base/test/launcher/unit_test_launcher.cc:217 (unit_tests+0x68c4e06)
    #40 base::LaunchUnitTests(int, char**, base::RepeatingCallback<int ()> const&) base/test/launcher/unit_test_launcher.cc:555:10 (unit_tests+0x68c4c83)
    #41 main chrome/test/base/run_all_unittests.cc:30:10 (unit_tests+0x68b7cdd)
SUMMARY: ThreadSanitizer: data race base/test/test_mock_time_task_runner.cc:296:66 in base::TestMockTimeTaskRunner::PostDelayedTask(base::Location const&, base::OnceCallback<void ()>, base::TimeDelta)
==================
[       OK ] TabManagerTest.ShouldPurgeAtDefaultTime (1390 ms)
[----------] 1 test from TabManagerTest (1392 ms total)
[----------] Global test environment tear-down
 

Comment 1 by olka@chromium.org, Nov 22 2017

Owner: engedy@chromium.org
Status: Assigned (was: Available)
Looks like base::TestMockTimeTaskRunner issue?

Comment 2 by olka@chromium.org, Nov 22 2017

Labels: -Sheriff-Chromium
Looks like there's another data race in TabManagerTest, this time TabManagerTest.DiscardTabWithNonVisibleTabs.

See https://uberchromegw.corp.google.com/i/chromium.memory/builders/Linux%20TSan%20Tests/builds/14800 on the buildbot https://uberchromegw.corp.google.com/i/chromium.memory/builders/Linux%20TSan%20Tests.

Log output from failure:

[ RUN      ] TabManagerTest.DiscardTabWithNonVisibleTabs
Xlib:  extension "RANDR" missing on display ":99".
==================
WARNING: ThreadSanitizer: data race (pid=10677)
  Read of size 8 at 0x7b48000021b0 by thread T9 (mutexes: write M366897443821855200):
    #0 base::TestMockTimeTaskRunner::PostDelayedTask(base::Location const&, base::OnceCallback<void ()>, base::TimeDelta) base/test/test_mock_time_task_runner.cc:296:66 (unit_tests+0x68de3ad)
    #1 base::TaskRunner::PostTask(base::Location const&, base::OnceCallback<void ()>) base/task_runner.cc:44:10 (unit_tests+0x78a539a)
    #2 content::AppCacheStorageImpl::DatabaseTask::CallRun(base::TimeTicks) content/browser/appcache/appcache_storage_impl.cc:229:15 (unit_tests+0x4dbb0a9)
    #3 Invoke<scoped_refptr<content::AppCacheStorageImpl::DatabaseTask>, base::TimeTicks> base/bind_internal.h:194:12 (unit_tests+0x4dcab56)
    #4 MakeItSo<void (content::AppCacheStorageImpl::DatabaseTask::*)(base::TimeTicks), scoped_refptr<content::AppCacheStorageImpl::DatabaseTask>, base::TimeTicks> base/bind_internal.h:277 (unit_tests+0x4dcab56)
    #5 RunImpl<void (content::AppCacheStorageImpl::DatabaseTask::*)(base::TimeTicks), std::__1::tuple<scoped_refptr<content::AppCacheStorageImpl::DatabaseTask>, base::TimeTicks>, 0, 1> base/bind_internal.h:351 (unit_tests+0x4dcab56)
    #6 base::internal::Invoker<base::internal::BindState<void (content::AppCacheStorageImpl::DatabaseTask::*)(base::TimeTicks), scoped_refptr<content::AppCacheStorageImpl::DatabaseTask>, base::TimeTicks>, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:319 (unit_tests+0x4dcab56)
    #7 Run base/callback.h:65:12 (unit_tests+0x7817826)
    #8 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/debug/task_annotator.cc:57 (unit_tests+0x7817826)
    #9 base::internal::TaskTracker::RunOrSkipTask(std::__1::unique_ptr<base::internal::Task, std::__1::default_delete<base::internal::Task> >, base::internal::Sequence*, bool) base/task_scheduler/task_tracker.cc:409:30 (unit_tests+0x78b3ae7)
    #10 base::internal::TaskTrackerPosix::RunOrSkipTask(std::__1::unique_ptr<base::internal::Task, std::__1::default_delete<base::internal::Task> >, base::internal::Sequence*, bool) base/task_scheduler/task_tracker_posix.cc:23:16 (unit_tests+0x78b4da3)
    #11 base::test::ScopedTaskEnvironment::TestTaskTracker::RunOrSkipTask(std::__1::unique_ptr<base::internal::Task, std::__1::default_delete<base::internal::Task> >, base::internal::Sequence*, bool) base/test/scoped_task_environment.cc:273:49 (unit_tests+0x68dc504)
    #12 base::internal::TaskTracker::RunNextTask(scoped_refptr<base::internal::Sequence>, base::internal::CanScheduleSequenceObserver*) base/task_scheduler/task_tracker.cc:311:3 (unit_tests+0x78b2fcd)
    #13 base::internal::SchedulerWorker::Thread::ThreadMain() base/task_scheduler/scheduler_worker.cc:72:41 (unit_tests+0x78afcb5)
    #14 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:75:13 (unit_tests+0x78c2b2d)
  Previous write of size 8 at 0x7b48000021b0 by main thread:
    #0 ForwardClocksUntilTickTime base/test/test_mock_time_task_runner.cc:355:14 (unit_tests+0x68ddcc5)
    #1 base::TestMockTimeTaskRunner::ProcessAllTasksNoLaterThan(base::TimeDelta) base/test/test_mock_time_task_runner.cc:343 (unit_tests+0x68ddcc5)
    #2 base::TestMockTimeTaskRunner::FastForwardBy(base::TimeDelta) base/test/test_mock_time_task_runner.cc:214:3 (unit_tests+0x68dda4d)
    #3 resource_coordinator::TabManagerTest_DiscardTabWithNonVisibleTabs_Test::TestBody() chrome/browser/resource_coordinator/tab_manager_unittest.cc:703:17 (unit_tests+0x2db10c7)
    #4 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc (unit_tests+0x43be58d)
    #5 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2654:11 (unit_tests+0x43bf48d)
    #6 testing::TestCase::Run() third_party/googletest/src/googletest/src/gtest.cc:2772:28 (unit_tests+0x43bfcd6)
    #7 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:4677:43 (unit_tests+0x43c90f6)
    #8 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc (unit_tests+0x43c8af5)
    #9 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2237:46 (unit_tests+0x68e0636)
    #10 base::TestSuite::Run() base/test/test_suite.cc:272 (unit_tests+0x68e0636)
    #11 content::UnitTestTestSuite::Run() content/public/test/unittest_test_suite.cc:45:23 (unit_tests+0x6a43211)
    #12 Invoke<content::UnitTestTestSuite *> base/bind_internal.h:194:12 (unit_tests+0x68d6e18)
    #13 MakeItSo<int (content::UnitTestTestSuite::*const &)(), content::UnitTestTestSuite *> base/bind_internal.h:277 (unit_tests+0x68d6e18)
    #14 RunImpl<int (content::UnitTestTestSuite::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<content::UnitTestTestSuite> > &, 0> base/bind_internal.h:351 (unit_tests+0x68d6e18)
    #15 base::internal::Invoker<base::internal::BindState<int (content::UnitTestTestSuite::*)(), base::internal::UnretainedWrapper<content::UnitTestTestSuite> >, int ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:333 (unit_tests+0x68d6e18)
    #16 Run base/callback.h:94:12 (unit_tests+0x68e3ab6)
    #17 base::(anonymous namespace)::LaunchUnitTestsInternal(base::RepeatingCallback<int ()> const&, unsigned long, int, bool, base::RepeatingCallback<void ()> const&) base/test/launcher/unit_test_launcher.cc:217 (unit_tests+0x68e3ab6)
    #18 base::LaunchUnitTests(int, char**, base::RepeatingCallback<int ()> const&) base/test/launcher/unit_test_launcher.cc:555:10 (unit_tests+0x68e3933)
    #19 main chrome/test/base/run_all_unittests.cc:30:10 (unit_tests+0x68d6d4d)
  Location is heap block of size 344 at 0x7b4800002100 allocated by main thread:
    #0 operator new(unsigned long) /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:44:3 (unit_tests+0x2253ee9)
    #1 MakeRefCounted<base::TestMockTimeTaskRunner> base/memory/scoped_refptr.h:90:12 (unit_tests+0x2dc3e20)
    #2 resource_coordinator::TabManagerTest::TabManagerTest() chrome/browser/resource_coordinator/tab_manager_unittest.cc:248 (unit_tests+0x2dc3e20)
    #3 TabManagerTest_DiscardTabWithNonVisibleTabs_Test chrome/browser/resource_coordinator/tab_manager_unittest.cc:673:1 (unit_tests+0x2dc4434)
    #4 testing::internal::TestFactoryImpl<resource_coordinator::TabManagerTest_DiscardTabWithNonVisibleTabs_Test>::CreateTest() third_party/googletest/src/googletest/include/gtest/internal/gtest-internal.h:484 (unit_tests+0x2dc4434)
    #5 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc (unit_tests+0x43bf3ea)
    #6 testing::TestCase::Run() third_party/googletest/src/googletest/src/gtest.cc:2772:28 (unit_tests+0x43bfcd6)
    #7 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:4677:43 (unit_tests+0x43c90f6)
    #8 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc (unit_tests+0x43c8af5)
    #9 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2237:46 (unit_tests+0x68e0636)
    #10 base::TestSuite::Run() base/test/test_suite.cc:272 (unit_tests+0x68e0636)
    #11 content::UnitTestTestSuite::Run() content/public/test/unittest_test_suite.cc:45:23 (unit_tests+0x6a43211)
    #12 Invoke<content::UnitTestTestSuite *> base/bind_internal.h:194:12 (unit_tests+0x68d6e18)
    #13 MakeItSo<int (content::UnitTestTestSuite::*const &)(), content::UnitTestTestSuite *> base/bind_internal.h:277 (unit_tests+0x68d6e18)
    #14 RunImpl<int (content::UnitTestTestSuite::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<content::UnitTestTestSuite> > &, 0> base/bind_internal.h:351 (unit_tests+0x68d6e18)
    #15 base::internal::Invoker<base::internal::BindState<int (content::UnitTestTestSuite::*)(), base::internal::UnretainedWrapper<content::UnitTestTestSuite> >, int ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:333 (unit_tests+0x68d6e18)
    #16 Run base/callback.h:94:12 (unit_tests+0x68e3ab6)
    #17 base::(anonymous namespace)::LaunchUnitTestsInternal(base::RepeatingCallback<int ()> const&, unsigned long, int, bool, base::RepeatingCallback<void ()> const&) base/test/launcher/unit_test_launcher.cc:217 (unit_tests+0x68e3ab6)
    #18 base::LaunchUnitTests(int, char**, base::RepeatingCallback<int ()> const&) base/test/launcher/unit_test_launcher.cc:555:10 (unit_tests+0x68e3933)
    #19 main chrome/test/base/run_all_unittests.cc:30:10 (unit_tests+0x68d6d4d)
  Mutex M366897443821855200 is already destroyed.
  Thread T9 'TaskSchedulerSc' (tid=10687, running) created by main thread at:
    #0 pthread_create /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:921:3 (unit_tests+0x21ed433)
    #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:114:13 (unit_tests+0x78c26b7)
    #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:199:10 (unit_tests+0x78c25b5)
    #3 Initialize base/task_scheduler/scheduler_worker.cc:114:5 (unit_tests+0x78af840)
    #4 base::internal::SchedulerWorker::Thread::Create(scoped_refptr<base::internal::SchedulerWorker>) base/task_scheduler/scheduler_worker.cc:31 (unit_tests+0x78af840)
    #5 base::internal::SchedulerWorker::Start() base/task_scheduler/scheduler_worker.cc:202:13 (unit_tests+0x78af5d1)
    #6 base::internal::SchedulerWorkerPoolImpl::CreateRegisterAndStartSchedulerWorkerLockRequired() base/task_scheduler/scheduler_worker_pool_impl.cc:773:16 (unit_tests+0x78aba38)
    #7 MaintainAtLeastOneIdleWorkerLockRequired base/task_scheduler/scheduler_worker_pool_impl.cc:726:9 (unit_tests+0x78ad553)
    #8 base::internal::SchedulerWorkerPoolImpl::WakeUpOneWorkerLockRequired() base/task_scheduler/scheduler_worker_pool_impl.cc:704 (unit_tests+0x78ad553)
    #9 WakeUpOneWorker base/task_scheduler/scheduler_worker_pool_impl.cc:714:3 (unit_tests+0x78abeb9)
    #10 base::internal::SchedulerWorkerPoolImpl::OnCanScheduleSequence(scoped_refptr<base::internal::Sequence>) base/task_scheduler/scheduler_worker_pool_impl.cc:253 (unit_tests+0x78abeb9)
    #11 base::internal::SchedulerWorkerPool::PostTaskWithSequenceNow(std::__1::unique_ptr<base::internal::Task, std::__1::default_delete<base::internal::Task> >, scoped_refptr<base::internal::Sequence>) base/task_scheduler/scheduler_worker_pool.cc:215:7 (unit_tests+0x78a9432)
    #12 base::internal::SchedulerWorkerPool::PostTaskWithSequence(std::__1::unique_ptr<base::internal::Task, std::__1::default_delete<base::internal::Task> >, scoped_refptr<base::internal::Sequence>) base/task_scheduler/scheduler_worker_pool.cc:153:5 (unit_tests+0x78a91e9)
    #13 base::internal::TaskSchedulerImpl::PostDelayedTaskWithTraits(base::Location const&, base::TaskTraits const&, base::OnceCallback<void ()>, base::TimeDelta) base/task_scheduler/task_scheduler_impl.cc:120:9 (unit_tests+0x78a7bb7)
    #14 PostDelayedTaskWithTraits base/task_scheduler/post_task.cc:76:33 (unit_tests+0x78a6213)
    #15 base::PostTaskWithTraits(base::Location const&, base::TaskTraits const&, base::OnceCallback<void ()>) base/task_scheduler/post_task.cc:65 (unit_tests+0x78a6213)
    #16 ui::X11HotplugEventHandler::OnHotplugEvent() ui/events/platform/x11/x11_hotplug_event_handler.cc:478:3 (unit_tests+0x855d323)
    #17 ui::X11EventSource::OnDispatcherListChanged() ui/events/platform/x11/x11_event_source.cc:297:29 (unit_tests+0x855bd1f)
    #18 OnDispatcherListChanged ui/events/platform/x11/x11_event_source_glib.cc:73:17 (unit_tests+0x855fc4d)
    #19 non-virtual thunk to ui::X11EventSourceGlib::OnDispatcherListChanged() ui/events/platform/x11/x11_event_source_glib.cc (unit_tests+0x855fc4d)
    #20 ui::PlatformEventSource::AddPlatformEventDispatcher(ui::PlatformEventDispatcher*) ui/events/platform/platform_event_source.cc:50:3 (unit_tests+0x839febf)
    #21 aura::WindowTreeHostX11::WindowTreeHostX11(gfx::Rect const&) ui/aura/window_tree_host_x11.cc:130:45 (unit_tests+0x923d4ce)
    #22 aura::WindowTreeHost::Create(gfx::Rect const&) ui/aura/window_tree_host_x11.cc:557:14 (unit_tests+0x923f0ba)
    #23 aura::TestScreen::CreateHostForPrimaryDisplay() ui/aura/test/test_screen.cc:52:9 (unit_tests+0x765d21d)
    #24 aura::test::AuraTestHelper::SetUp(ui::ContextFactory*, ui::ContextFactoryPrivate*) ui/aura/test/aura_test_helper.cc:145:33 (unit_tests+0x7658726)
    #25 content::RenderViewHostTestHarness::SetUp() content/public/test/test_renderer_host.cc:269:22 (unit_tests+0x6a3f51b)
    #26 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc (unit_tests+0x43be496)
    #27 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2654:11 (unit_tests+0x43bf48d)
    #28 testing::TestCase::Run() third_party/googletest/src/googletest/src/gtest.cc:2772:28 (unit_tests+0x43bfcd6)
    #29 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:4677:43 (unit_tests+0x43c90f6)
    #30 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc (unit_tests+0x43c8af5)
    #31 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2237:46 (unit_tests+0x68e0636)
    #32 base::TestSuite::Run() base/test/test_suite.cc:272 (unit_tests+0x68e0636)
    #33 content::UnitTestTestSuite::Run() content/public/test/unittest_test_suite.cc:45:23 (unit_tests+0x6a43211)
    #34 Invoke<content::UnitTestTestSuite *> base/bind_internal.h:194:12 (unit_tests+0x68d6e18)
    #35 MakeItSo<int (content::UnitTestTestSuite::*const &)(), content::UnitTestTestSuite *> base/bind_internal.h:277 (unit_tests+0x68d6e18)
    #36 RunImpl<int (content::UnitTestTestSuite::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<content::UnitTestTestSuite> > &, 0> base/bind_internal.h:351 (unit_tests+0x68d6e18)
    #37 base::internal::Invoker<base::internal::BindState<int (content::UnitTestTestSuite::*)(), base::internal::UnretainedWrapper<content::UnitTestTestSuite> >, int ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:333 (unit_tests+0x68d6e18)
    #38 Run base/callback.h:94:12 (unit_tests+0x68e3ab6)
    #39 base::(anonymous namespace)::LaunchUnitTestsInternal(base::RepeatingCallback<int ()> const&, unsigned long, int, bool, base::RepeatingCallback<void ()> const&) base/test/launcher/unit_test_launcher.cc:217 (unit_tests+0x68e3ab6)
    #40 base::LaunchUnitTests(int, char**, base::RepeatingCallback<int ()> const&) base/test/launcher/unit_test_launcher.cc:555:10 (unit_tests+0x68e3933)
    #41 main chrome/test/base/run_all_unittests.cc:30:10 (unit_tests+0x68d6d4d)
SUMMARY: ThreadSanitizer: data race base/test/test_mock_time_task_runner.cc:296:66 in base::TestMockTimeTaskRunner::PostDelayedTask(base::Location const&, base::OnceCallback<void ()>, base::TimeDelta)
==================
[       OK ] TabManagerTest.DiscardTabWithNonVisibleTabs (1209 ms)
Project Member

Comment 4 by bugdroid1@chromium.org, Nov 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6f950fa126cc0959cf2ef633055343dab3daa0f6

commit 6f950fa126cc0959cf2ef633055343dab3daa0f6
Author: Scott Little <sclittle@chromium.org>
Date: Tue Nov 28 23:20:19 2017

Disable TabManagerTest.DiscardTabWithNonVisibleTabs on Linux.

This test has a data race; see bug for more info.

TBR=chrisha@chromium.org

Bug: 787842
Change-Id: I299403b8c4f2c2744b4c7d7a0173759bd7a65925
Reviewed-on: https://chromium-review.googlesource.com/794841
Reviewed-by: Scott Little <sclittle@chromium.org>
Commit-Queue: Scott Little <sclittle@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519892}
[modify] https://crrev.com/6f950fa126cc0959cf2ef633055343dab3daa0f6/chrome/browser/resource_coordinator/tab_manager_unittest.cc

Sign in to add a comment