Back to build
Raw log | Switch to full mode | Login

Test 'LayerTreeHostTestImageAnimationPaintFilter.RunMultiThread_DelegatingRenderer' completed with the following status(es): 'FAILURE_ON_EXIT','SUCCESS' Test 'LayerTreeHostTestImageAnimationPaintFilter.RunMultiThread_DelegatingRenderer' had the following logs when run: ================================================================================ [ RUN ] LayerTreeHostTestImageAnimationPaintFilter.RunMultiThread_DelegatingRenderer [ OK ] LayerTreeHostTestImageAnimationPaintFilter.RunMultiThread_DelegatingRenderer (2686 ms) [----------] 1 test from LayerTreeHostTestImageAnimationPaintFilter (2686 ms total) [----------] 1 test from LayerTreeHostTestImageAnimationSynchronousScheduling [ RUN ] LayerTreeHostTestImageAnimationSynchronousScheduling.RunMultiThread_DelegatingRenderer [ OK ] LayerTreeHostTestImageAnimationSynchronousScheduling.RunMultiThread_DelegatingRenderer (2616 ms) [----------] 1 test from LayerTreeHostTestImageAnimationSynchronousScheduling (2617 ms total) [----------] 1 test from LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw [ RUN ] LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw.RunMultiThread_DelegatingRenderer ================== WARNING: ThreadSanitizer: data race (pid=28321) Write of size 8 at 0x7b4400001e88 by thread T19: #0 swap<std::__1::pair<unsigned long, int> *> buildtools/third_party/libc++/trunk/include/type_traits:4594:9 (cc_unittests+0x1c341fb) #1 __swap_out_circular_buffer buildtools/third_party/libc++/trunk/include/vector:959 (cc_unittests+0x1c341fb) #2 std::__1::__wrap_iter<std::__1::pair<unsigned long, int>*> std::__1::vector<std::__1::pair<unsigned long, int>, std::__1::allocator<std::__1::pair<unsigned long, int> > >::emplace<unsigned long const&, int>(std::__1::__wrap_iter<std::__1::pair<unsigned long, int> const*>, unsigned long const&, int&&) buildtools/third_party/libc++/trunk/include/vector:1883 (cc_unittests+0x1c341fb) #3 unsafe_emplace<const unsigned long &, int> base/containers/flat_tree.h:953:22 (cc_unittests+0x1c9fbfa) #4 operator[] base/containers/flat_map.h:293 (cc_unittests+0x1c9fbfa) #5 cc::FakePaintImageGenerator::GetPixels(SkImageInfo const&, void*, unsigned long, unsigned long, int, unsigned int) cc/test/fake_paint_image_generator.cc (cc_unittests+0x1c9fbfa) #6 DecodeFromGenerator cc/paint/paint_image.cc:220:34 (cc_unittests+0x1d2ab6c) #7 cc::PaintImage::Decode(void*, SkImageInfo*, sk_sp<SkColorSpace>, unsigned long, int) const cc/paint/paint_image.cc:188 (cc_unittests+0x1d2ab6c) #8 cc::SoftwareImageDecodeCacheUtils::DoDecodeImage(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, SkColorType, int) cc/tiles/software_image_decode_cache_utils.cc:76:29 (cc_unittests+0x1bda589) #9 cc::SoftwareImageDecodeCache::DecodeImageIfNecessary(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCacheUtils::CacheEntry*) cc/tiles/software_image_decode_cache.cc:357:25 (cc_unittests+0x1bd4fa9) #10 cc::SoftwareImageDecodeCache::DecodeImageInTask(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCache::DecodeTaskType) cc/tiles/software_image_decode_cache.cc:319:3 (cc_unittests+0x1bd4ba9) #11 cc::(anonymous namespace)::SoftwareImageDecodeTaskImpl::RunOnWorkerThread() cc/tiles/software_image_decode_cache.cc:79:13 (cc_unittests+0x1bd7602) #12 cc::SingleThreadTaskGraphRunner::RunTaskWithLockAcquired() cc/raster/single_thread_task_graph_runner.cc:157:28 (cc_unittests+0x1b7d2fe) #13 Run cc/raster/single_thread_task_graph_runner.cc:120:10 (cc_unittests+0x1b7d54f) #14 non-virtual thunk to cc::SingleThreadTaskGraphRunner::Run() cc/raster/single_thread_task_graph_runner.cc (cc_unittests+0x1b7d54f) #15 base::DelegateSimpleThread::Run() base/threading/simple_thread.cc:98:13 (cc_unittests+0x201e828) #16 base::SimpleThread::ThreadMain() base/threading/simple_thread.cc:75:3 (cc_unittests+0x201e68b) #17 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Previous read of size 8 at 0x7b4400001e88 by thread T3: #0 size buildtools/third_party/libc++/trunk/include/vector:656:61 (cc_unittests+0x12fb346) #1 size base/containers/flat_tree.h:594 (cc_unittests+0x12fb346) #2 cc::(anonymous namespace)::LayerTreeHostTestImageAnimation::WillPrepareToDrawOnThread(cc::LayerTreeHostImpl*) cc/trees/layer_tree_host_unittest.cc:8591 (cc_unittests+0x12fb346) #3 non-virtual thunk to cc::(anonymous namespace)::LayerTreeHostTestImageAnimation::WillPrepareToDrawOnThread(cc::LayerTreeHostImpl*) cc/trees/layer_tree_host_unittest.cc (cc_unittests+0x12fbb64) #4 cc::LayerTreeHostImplForTesting::PrepareToDraw(cc::LayerTreeHostImpl::FrameData*) cc/test/layer_tree_test.cc:289:18 (cc_unittests+0x1cb5e0b) #5 cc::ProxyImpl::DrawInternal(bool) cc/trees/proxy_impl.cc:692:26 (cc_unittests+0x1c856f1) #6 cc::ProxyImpl::ScheduledActionDrawIfPossible() cc/trees/proxy_impl.cc:567:10 (cc_unittests+0x1c85553) #7 non-virtual thunk to cc::ProxyImpl::ScheduledActionDrawIfPossible() cc/trees/proxy_impl.cc (cc_unittests+0x1c8591d) #8 cc::Scheduler::DrawIfPossible() cc/scheduler/scheduler.cc:718:32 (cc_unittests+0x1b9c9c2) #9 cc::Scheduler::ProcessScheduledActions() cc/scheduler/scheduler.cc:818:9 (cc_unittests+0x1b98d96) #10 cc::Scheduler::OnDrawForLayerTreeFrameSink(bool, bool) cc/scheduler/scheduler.cc:390:3 (cc_unittests+0x1b9bdaa) #11 cc::ProxyImpl::OnDrawForLayerTreeFrameSink(bool, bool) cc/trees/proxy_impl.cc:476:15 (cc_unittests+0x1c84bb3) #12 cc::LayerTreeHostImpl::OnDraw(gfx::Transform const&, gfx::Rect const&, bool, bool) cc/trees/layer_tree_host_impl.cc:1884:14 (cc_unittests+0x1c1eb1c) #13 non-virtual thunk to cc::LayerTreeHostImpl::OnDraw(gfx::Transform const&, gfx::Rect const&, bool, bool) cc/trees/layer_tree_host_impl.cc (cc_unittests+0x1c1ec1d) #14 cc::(anonymous namespace)::SynchronousLayerTreeFrameSink::DispatchInvalidation() cc/test/layer_tree_test.cc:121:14 (cc_unittests+0x1cb8586) #15 Invoke<void (cc::(anonymous namespace)::SynchronousLayerTreeFrameSink::*)(), base::WeakPtr<cc::(anonymous namespace)::SynchronousLayerTreeFrameSink>> base/bind_internal.h:499:12 (cc_unittests+0x1cb863a) #16 MakeItSo<void (cc::(anonymous namespace)::SynchronousLayerTreeFrameSink::*)(), base::WeakPtr<cc::(anonymous namespace)::SynchronousLayerTreeFrameSink>> base/bind_internal.h:619 (cc_unittests+0x1cb863a) #17 RunImpl<void (cc::(anonymous namespace)::SynchronousLayerTreeFrameSink::*)(), std::__1::tuple<base::WeakPtr<cc::(anonymous namespace)::SynchronousLayerTreeFrameSink> >, 0> base/bind_internal.h:672 (cc_unittests+0x1cb863a) #18 base::internal::Invoker<base::internal::BindState<void (cc::(anonymous namespace)::SynchronousLayerTreeFrameSink::*)(), base::WeakPtr<cc::(anonymous namespace)::SynchronousLayerTreeFrameSink> >, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x1cb863a) #19 Run base/callback.h:97:12 (cc_unittests+0x1fde8c5) #20 base::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/task/common/task_annotator.cc:143 (cc_unittests+0x1fde8c5) #21 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:368:23 (cc_unittests+0x1ff36f8) #22 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:219:7 (cc_unittests+0x1ff32bd) #23 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff3c1e) #24 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:39:55 (cc_unittests+0x1fb9731) #25 Run base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:466:12 (cc_unittests+0x1ff4409) #26 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff4409) #27 base::RunLoop::RunWithTimeout(base::TimeDelta) base/run_loop.cc:161:14 (cc_unittests+0x1fd4280) #28 base::RunLoop::Run() base/run_loop.cc:129:3 (cc_unittests+0x1fd4073) #29 base::Thread::Run(base::RunLoop*) base/threading/thread.cc:242:13 (cc_unittests+0x201f299) #30 base::Thread::ThreadMain() base/threading/thread.cc:312:3 (cc_unittests+0x201f551) #31 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Location is heap block of size 296 at 0x7b4400001e00 allocated by main thread: #0 operator new(unsigned long) /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:64:3 (cc_unittests+0x9b58db) #1 sk_sp<cc::FakePaintImageGenerator> sk_make_sp<cc::FakePaintImageGenerator, SkImageInfo, std::__1::vector<cc::FrameMetadata, std::__1::allocator<cc::FrameMetadata> >&>(SkImageInfo&&, std::__1::vector<cc::FrameMetadata, std::__1::allocator<cc::FrameMetadata> >&) third_party/skia/include/core/SkRefCnt.h:397:21 (cc_unittests+0xcecfee) #2 cc::(anonymous namespace)::LayerTreeHostTestImageAnimation::SetupTree() cc/trees/layer_tree_host_unittest.cc:8557:18 (cc_unittests+0x12fa729) #3 cc::LayerTreeTest::DoBeginTest() cc/test/layer_tree_test.cc:886:3 (cc_unittests+0x1cb323b) #4 Invoke<void (cc::LayerTreeTest::*)(), cc::LayerTreeTest *> base/bind_internal.h:499:12 (cc_unittests+0x1cb7968) #5 MakeItSo<void (cc::LayerTreeTest::*)(), cc::LayerTreeTest *> base/bind_internal.h:599 (cc_unittests+0x1cb7968) #6 RunImpl<void (cc::LayerTreeTest::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::LayerTreeTest> >, 0> base/bind_internal.h:672 (cc_unittests+0x1cb7968) #7 base::internal::Invoker<base::internal::BindState<void (cc::LayerTreeTest::*)(), base::internal::UnretainedWrapper<cc::LayerTreeTest> >, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x1cb7968) #8 Run base/callback.h:97:12 (cc_unittests+0x1fde8c5) #9 base::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/task/common/task_annotator.cc:143 (cc_unittests+0x1fde8c5) #10 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:368:23 (cc_unittests+0x1ff36f8) #11 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:219:7 (cc_unittests+0x1ff32bd) #12 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff3c1e) #13 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:39:55 (cc_unittests+0x1fb9699) #14 Run base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:466:12 (cc_unittests+0x1ff4409) #15 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff4409) #16 base::RunLoop::RunWithTimeout(base::TimeDelta) base/run_loop.cc:161:14 (cc_unittests+0x1fd4280) #17 base::RunLoop::Run() base/run_loop.cc:129:3 (cc_unittests+0x1fd4073) #18 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1070:19 (cc_unittests+0x1cb3e2b) #19 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #20 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #21 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #22 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #23 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #24 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #25 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #26 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #27 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #28 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #29 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #30 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #31 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #32 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #33 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #34 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #35 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #36 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) Thread T19 'TestTaskGraphRu' (tid=29204, running) created by main thread at: #0 pthread_create /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:989:3 (cc_unittests+0x946bfb) #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:120:13 (cc_unittests+0x205c3b7) #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:246:10 (cc_unittests+0x205c2b5) #3 base::SimpleThread::StartAsync() base/threading/simple_thread.cc:51:13 (cc_unittests+0x201e553) #4 cc::SingleThreadTaskGraphRunner::Start(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, base::SimpleThread::Options const&) cc/raster/single_thread_task_graph_runner.cc:32:12 (cc_unittests+0x1b7c994) #5 cc::TestTaskGraphRunner::TestTaskGraphRunner() cc/test/test_task_graph_runner.cc:10:3 (cc_unittests+0x1cde7b6) #6 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1054:32 (cc_unittests+0x1cb3cd8) #7 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #8 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #9 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #10 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #11 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #12 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #13 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #14 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #15 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #16 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #17 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #18 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #19 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #20 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #21 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #22 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #23 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #24 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) Thread T3 'Compositor' (tid=29202, running) created by main thread at: #0 pthread_create /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:989:3 (cc_unittests+0x946bfb) #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:120:13 (cc_unittests+0x205c3b7) #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:246:10 (cc_unittests+0x205c2b5) #3 base::Thread::StartWithOptions(base::Thread::Options const&) base/threading/thread.cc:119:15 (cc_unittests+0x201efb0) #4 base::Thread::Start() base/threading/thread.cc:77:10 (cc_unittests+0x201ec23) #5 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1046:5 (cc_unittests+0x1cb3ba3) #6 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #7 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #8 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #9 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #10 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #11 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #12 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #13 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #14 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #15 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #16 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #17 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #18 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #19 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #20 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #21 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #22 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #23 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) SUMMARY: ThreadSanitizer: data race buildtools/third_party/libc++/trunk/include/type_traits:4594:9 in swap<std::__1::pair<unsigned long, int> *> ================== ================== WARNING: ThreadSanitizer: data race (pid=28321) Read of size 8 at 0x7b4400001e88 by thread T3: #0 begin buildtools/third_party/libc++/trunk/include/vector:1523:30 (cc_unittests+0x1c9fa3f) #1 begin base/containers/flat_tree.h:619 (cc_unittests+0x1c9fa3f) #2 lower_bound<unsigned long> base/containers/flat_tree.h:915 (cc_unittests+0x1c9fa3f) #3 equal_range<unsigned long> base/containers/flat_tree.h:888 (cc_unittests+0x1c9fa3f) #4 find<unsigned long> base/containers/flat_tree.h:864 (cc_unittests+0x1c9fa3f) #5 find<unsigned long> base/containers/flat_tree.h:857 (cc_unittests+0x1c9fa3f) #6 cc::FakePaintImageGenerator::GetPixels(SkImageInfo const&, void*, unsigned long, unsigned long, int, unsigned int) cc/test/fake_paint_image_generator.cc:61 (cc_unittests+0x1c9fa3f) #7 cc::SkiaPaintImageGenerator::onGetPixels(SkImageInfo const&, void*, unsigned long, SkImageGenerator::Options const&) cc/paint/skia_paint_image_generator.cc:30:34 (cc_unittests+0x1d5b420) #8 SkImageGenerator::getPixels(SkImageInfo const&, void*, unsigned long) third_party/skia/src/core/SkImageGenerator.cpp:30:18 (cc_unittests+0x15fad37) #9 generate_pixels(SkImageGenerator*, SkPixmap const&, int, int) third_party/skia/src/image/SkImage_Lazy.cpp:168:15 (cc_unittests+0x16d1d5d) #10 SkImage_Lazy::getROPixels(SkBitmap*, SkImage::CachingHint) const third_party/skia/src/image/SkImage_Lazy.cpp:197:14 (cc_unittests+0x16d193b) #11 SkBaseDevice::drawImageRect(SkImage const*, SkRect const*, SkRect const&, SkPaint const&, SkCanvas::SrcRectConstraint) third_party/skia/src/core/SkDevice.cpp:145:23 (cc_unittests+0x15c50cf) #12 SkCanvas::onDrawImage(SkImage const*, float, float, SkPaint const*) third_party/skia/src/core/SkCanvas.cpp:2371:27 (cc_unittests+0x15ac169) #13 SkCanvas::drawImage(SkImage const*, float, float, SkPaint const*) third_party/skia/src/core/SkCanvas.cpp:1808:11 (cc_unittests+0x15a6bd9) #14 cc::DrawImageOp::RasterWithFlags(cc::DrawImageOp const*, cc::PaintFlags const*, SkCanvas*, cc::PlaybackParams const&) cc/paint/paint_op_buffer.cc:1248:11 (cc_unittests+0x1d2f859) #15 RasterWithFlags cc/paint/paint_op_buffer.cc:125:5 (cc_unittests+0x1d36310) #16 operator() cc/paint/paint_op_buffer.cc:160 (cc_unittests+0x1d36310) #17 cc::$_36::__invoke(cc::PaintOp const*, cc::PaintFlags const*, SkCanvas*, cc::PlaybackParams const&) cc/paint/paint_op_buffer.cc:160 (cc_unittests+0x1d36310) #18 RasterWithFlags cc/paint/paint_op_buffer.cc:2082:3 (cc_unittests+0x1d34098) #19 cc::PaintOpBuffer::Playback(SkCanvas*, cc::PlaybackParams const&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const*) const cc/paint/paint_op_buffer.cc:2439 (cc_unittests+0x1d34098) #20 cc::DisplayItemList::Raster(SkCanvas*, cc::ImageProvider*) const cc/paint/display_item_list.cc:81:20 (cc_unittests+0x1d0f3ef) #21 viz::SoftwareRenderer::DrawPictureQuad(viz::PictureDrawQuad const*) components/viz/service/display/software_renderer.cc:386:28 (cc_unittests+0x1e5c1f5) #22 viz::SoftwareRenderer::DoDrawQuad(viz::DrawQuad const*, gfx::QuadF const*) components/viz/service/display/software_renderer.cc:290:7 (cc_unittests+0x1e5bcdb) #23 viz::DirectRenderer::DrawRenderPass(viz::RenderPass const*) components/viz/service/display/direct_renderer.cc:703:5 (cc_unittests+0x1d78be4) #24 viz::DirectRenderer::DrawRenderPassAndExecuteCopyRequests(viz::RenderPass*) components/viz/service/display/direct_renderer.cc:567:5 (cc_unittests+0x1d77b0a) #25 viz::DirectRenderer::DrawFrame(std::__1::vector<std::__1::unique_ptr<viz::RenderPass, std::__1::default_delete<viz::RenderPass> >, std::__1::allocator<std::__1::unique_ptr<viz::RenderPass, std::__1::default_delete<viz::RenderPass> > > >*, float, gfx::Size const&) components/viz/service/display/direct_renderer.cc:421:5 (cc_unittests+0x1d7778c) #26 viz::Display::DrawAndSwap() components/viz/service/display/display.cc:491:16 (cc_unittests+0x1e45e92) #27 viz::DisplayScheduler::DrawAndSwap() components/viz/service/display/display_scheduler.cc:216:27 (cc_unittests+0x1de3e3d) #28 viz::DisplayScheduler::AttemptDrawAndSwap() components/viz/service/display/display_scheduler.cc:488:14 (cc_unittests+0x1de3357) #29 viz::DisplayScheduler::OnBeginFrameDeadline() components/viz/service/display/display_scheduler.cc:504:19 (cc_unittests+0x1de2a24) #30 Invoke<void (viz::DisplayScheduler::*)(), const base::WeakPtr<viz::DisplayScheduler> &> base/bind_internal.h:499:12 (cc_unittests+0x1de595a) #31 MakeItSo<void (viz::DisplayScheduler::*const &)(), const base::WeakPtr<viz::DisplayScheduler> &> base/bind_internal.h:619 (cc_unittests+0x1de595a) #32 RunImpl<void (viz::DisplayScheduler::*const &)(), const std::__1::tuple<base::WeakPtr<viz::DisplayScheduler> > &, 0> base/bind_internal.h:672 (cc_unittests+0x1de595a) #33 base::internal::Invoker<base::internal::BindState<void (viz::DisplayScheduler::*)(), base::WeakPtr<viz::DisplayScheduler> >, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:654 (cc_unittests+0x1de595a) #34 Run base/callback.h:97:12 (cc_unittests+0x1b2d80d) #35 void base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::ForwardOnce<>() base/cancelable_callback.h:126 (cc_unittests+0x1b2d80d) #36 Invoke<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > >> base/bind_internal.h:499:12 (cc_unittests+0x1b2d8ca) #37 MakeItSo<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > >> base/bind_internal.h:619 (cc_unittests+0x1b2d8ca) #38 RunImpl<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), std::__1::tuple<base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > > >, 0> base/bind_internal.h:672 (cc_unittests+0x1b2d8ca) #39 base::internal::Invoker<base::internal::BindState<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > > >, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x1b2d8ca) #40 Run base/callback.h:97:12 (cc_unittests+0x1fde8c5) #41 base::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/task/common/task_annotator.cc:143 (cc_unittests+0x1fde8c5) #42 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:368:23 (cc_unittests+0x1ff36f8) #43 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:219:7 (cc_unittests+0x1ff32bd) #44 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff3c1e) #45 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:39:55 (cc_unittests+0x1fb9731) #46 Run base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:466:12 (cc_unittests+0x1ff4409) #47 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff4409) #48 base::RunLoop::RunWithTimeout(base::TimeDelta) base/run_loop.cc:161:14 (cc_unittests+0x1fd4280) #49 base::RunLoop::Run() base/run_loop.cc:129:3 (cc_unittests+0x1fd4073) #50 base::Thread::Run(base::RunLoop*) base/threading/thread.cc:242:13 (cc_unittests+0x201f299) #51 base::Thread::ThreadMain() base/threading/thread.cc:312:3 (cc_unittests+0x201f551) #52 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Previous write of size 8 at 0x7b4400001e88 by thread T19: #0 swap<std::__1::pair<unsigned long, int> *> buildtools/third_party/libc++/trunk/include/type_traits:4594:9 (cc_unittests+0x1c341fb) #1 __swap_out_circular_buffer buildtools/third_party/libc++/trunk/include/vector:959 (cc_unittests+0x1c341fb) #2 std::__1::__wrap_iter<std::__1::pair<unsigned long, int>*> std::__1::vector<std::__1::pair<unsigned long, int>, std::__1::allocator<std::__1::pair<unsigned long, int> > >::emplace<unsigned long const&, int>(std::__1::__wrap_iter<std::__1::pair<unsigned long, int> const*>, unsigned long const&, int&&) buildtools/third_party/libc++/trunk/include/vector:1883 (cc_unittests+0x1c341fb) #3 unsafe_emplace<const unsigned long &, int> base/containers/flat_tree.h:953:22 (cc_unittests+0x1c9fbfa) #4 operator[] base/containers/flat_map.h:293 (cc_unittests+0x1c9fbfa) #5 cc::FakePaintImageGenerator::GetPixels(SkImageInfo const&, void*, unsigned long, unsigned long, int, unsigned int) cc/test/fake_paint_image_generator.cc (cc_unittests+0x1c9fbfa) #6 DecodeFromGenerator cc/paint/paint_image.cc:220:34 (cc_unittests+0x1d2ab6c) #7 cc::PaintImage::Decode(void*, SkImageInfo*, sk_sp<SkColorSpace>, unsigned long, int) const cc/paint/paint_image.cc:188 (cc_unittests+0x1d2ab6c) #8 cc::SoftwareImageDecodeCacheUtils::DoDecodeImage(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, SkColorType, int) cc/tiles/software_image_decode_cache_utils.cc:76:29 (cc_unittests+0x1bda589) #9 cc::SoftwareImageDecodeCache::DecodeImageIfNecessary(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCacheUtils::CacheEntry*) cc/tiles/software_image_decode_cache.cc:357:25 (cc_unittests+0x1bd4fa9) #10 cc::SoftwareImageDecodeCache::DecodeImageInTask(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCache::DecodeTaskType) cc/tiles/software_image_decode_cache.cc:319:3 (cc_unittests+0x1bd4ba9) #11 cc::(anonymous namespace)::SoftwareImageDecodeTaskImpl::RunOnWorkerThread() cc/tiles/software_image_decode_cache.cc:79:13 (cc_unittests+0x1bd7602) #12 cc::SingleThreadTaskGraphRunner::RunTaskWithLockAcquired() cc/raster/single_thread_task_graph_runner.cc:157:28 (cc_unittests+0x1b7d2fe) #13 Run cc/raster/single_thread_task_graph_runner.cc:120:10 (cc_unittests+0x1b7d54f) #14 non-virtual thunk to cc::SingleThreadTaskGraphRunner::Run() cc/raster/single_thread_task_graph_runner.cc (cc_unittests+0x1b7d54f) #15 base::DelegateSimpleThread::Run() base/threading/simple_thread.cc:98:13 (cc_unittests+0x201e828) #16 base::SimpleThread::ThreadMain() base/threading/simple_thread.cc:75:3 (cc_unittests+0x201e68b) #17 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Location is heap block of size 296 at 0x7b4400001e00 allocated by main thread: #0 operator new(unsigned long) /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:64:3 (cc_unittests+0x9b58db) #1 sk_sp<cc::FakePaintImageGenerator> sk_make_sp<cc::FakePaintImageGenerator, SkImageInfo, std::__1::vector<cc::FrameMetadata, std::__1::allocator<cc::FrameMetadata> >&>(SkImageInfo&&, std::__1::vector<cc::FrameMetadata, std::__1::allocator<cc::FrameMetadata> >&) third_party/skia/include/core/SkRefCnt.h:397:21 (cc_unittests+0xcecfee) #2 cc::(anonymous namespace)::LayerTreeHostTestImageAnimation::SetupTree() cc/trees/layer_tree_host_unittest.cc:8557:18 (cc_unittests+0x12fa729) #3 cc::LayerTreeTest::DoBeginTest() cc/test/layer_tree_test.cc:886:3 (cc_unittests+0x1cb323b) #4 Invoke<void (cc::LayerTreeTest::*)(), cc::LayerTreeTest *> base/bind_internal.h:499:12 (cc_unittests+0x1cb7968) #5 MakeItSo<void (cc::LayerTreeTest::*)(), cc::LayerTreeTest *> base/bind_internal.h:599 (cc_unittests+0x1cb7968) #6 RunImpl<void (cc::LayerTreeTest::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::LayerTreeTest> >, 0> base/bind_internal.h:672 (cc_unittests+0x1cb7968) #7 base::internal::Invoker<base::internal::BindState<void (cc::LayerTreeTest::*)(), base::internal::UnretainedWrapper<cc::LayerTreeTest> >, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x1cb7968) #8 Run base/callback.h:97:12 (cc_unittests+0x1fde8c5) #9 base::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/task/common/task_annotator.cc:143 (cc_unittests+0x1fde8c5) #10 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:368:23 (cc_unittests+0x1ff36f8) #11 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:219:7 (cc_unittests+0x1ff32bd) #12 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff3c1e) #13 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:39:55 (cc_unittests+0x1fb9699) #14 Run base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:466:12 (cc_unittests+0x1ff4409) #15 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff4409) #16 base::RunLoop::RunWithTimeout(base::TimeDelta) base/run_loop.cc:161:14 (cc_unittests+0x1fd4280) #17 base::RunLoop::Run() base/run_loop.cc:129:3 (cc_unittests+0x1fd4073) #18 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1070:19 (cc_unittests+0x1cb3e2b) #19 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #20 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #21 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #22 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #23 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #24 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #25 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #26 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #27 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #28 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #29 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #30 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #31 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #32 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #33 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #34 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #35 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #36 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) Thread T3 'Compositor' (tid=29202, running) created by main thread at: #0 pthread_create /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:989:3 (cc_unittests+0x946bfb) #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:120:13 (cc_unittests+0x205c3b7) #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:246:10 (cc_unittests+0x205c2b5) #3 base::Thread::StartWithOptions(base::Thread::Options const&) base/threading/thread.cc:119:15 (cc_unittests+0x201efb0) #4 base::Thread::Start() base/threading/thread.cc:77:10 (cc_unittests+0x201ec23) #5 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1046:5 (cc_unittests+0x1cb3ba3) #6 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #7 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #8 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #9 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #10 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #11 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #12 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #13 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #14 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #15 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #16 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #17 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #18 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #19 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #20 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #21 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #22 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #23 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) Thread T19 'TestTaskGraphRu' (tid=29204, running) created by main thread at: #0 pthread_create /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:989:3 (cc_unittests+0x946bfb) #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:120:13 (cc_unittests+0x205c3b7) #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:246:10 (cc_unittests+0x205c2b5) #3 base::SimpleThread::StartAsync() base/threading/simple_thread.cc:51:13 (cc_unittests+0x201e553) #4 cc::SingleThreadTaskGraphRunner::Start(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, base::SimpleThread::Options const&) cc/raster/single_thread_task_graph_runner.cc:32:12 (cc_unittests+0x1b7c994) #5 cc::TestTaskGraphRunner::TestTaskGraphRunner() cc/test/test_task_graph_runner.cc:10:3 (cc_unittests+0x1cde7b6) #6 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1054:32 (cc_unittests+0x1cb3cd8) #7 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #8 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #9 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #10 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #11 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #12 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #13 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #14 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #15 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #16 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #17 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #18 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #19 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #20 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #21 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #22 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #23 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #24 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) SUMMARY: ThreadSanitizer: data race buildtools/third_party/libc++/trunk/include/vector:1523:30 in begin ================== ================== WARNING: ThreadSanitizer: data race (pid=28321) Write of size 8 at 0x7b4400001e90 by thread T19: #0 swap<std::__1::pair<unsigned long, int> *> buildtools/third_party/libc++/trunk/include/type_traits:4594:9 (cc_unittests+0x1c3420e) #1 __swap_out_circular_buffer buildtools/third_party/libc++/trunk/include/vector:960 (cc_unittests+0x1c3420e) #2 std::__1::__wrap_iter<std::__1::pair<unsigned long, int>*> std::__1::vector<std::__1::pair<unsigned long, int>, std::__1::allocator<std::__1::pair<unsigned long, int> > >::emplace<unsigned long const&, int>(std::__1::__wrap_iter<std::__1::pair<unsigned long, int> const*>, unsigned long const&, int&&) buildtools/third_party/libc++/trunk/include/vector:1883 (cc_unittests+0x1c3420e) #3 unsafe_emplace<const unsigned long &, int> base/containers/flat_tree.h:953:22 (cc_unittests+0x1c9fbfa) #4 operator[] base/containers/flat_map.h:293 (cc_unittests+0x1c9fbfa) #5 cc::FakePaintImageGenerator::GetPixels(SkImageInfo const&, void*, unsigned long, unsigned long, int, unsigned int) cc/test/fake_paint_image_generator.cc (cc_unittests+0x1c9fbfa) #6 DecodeFromGenerator cc/paint/paint_image.cc:220:34 (cc_unittests+0x1d2ab6c) #7 cc::PaintImage::Decode(void*, SkImageInfo*, sk_sp<SkColorSpace>, unsigned long, int) const cc/paint/paint_image.cc:188 (cc_unittests+0x1d2ab6c) #8 cc::SoftwareImageDecodeCacheUtils::DoDecodeImage(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, SkColorType, int) cc/tiles/software_image_decode_cache_utils.cc:76:29 (cc_unittests+0x1bda589) #9 cc::SoftwareImageDecodeCache::DecodeImageIfNecessary(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCacheUtils::CacheEntry*) cc/tiles/software_image_decode_cache.cc:357:25 (cc_unittests+0x1bd4fa9) #10 cc::SoftwareImageDecodeCache::DecodeImageInTask(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCache::DecodeTaskType) cc/tiles/software_image_decode_cache.cc:319:3 (cc_unittests+0x1bd4ba9) #11 cc::(anonymous namespace)::SoftwareImageDecodeTaskImpl::RunOnWorkerThread() cc/tiles/software_image_decode_cache.cc:79:13 (cc_unittests+0x1bd7602) #12 cc::SingleThreadTaskGraphRunner::RunTaskWithLockAcquired() cc/raster/single_thread_task_graph_runner.cc:157:28 (cc_unittests+0x1b7d2fe) #13 Run cc/raster/single_thread_task_graph_runner.cc:120:10 (cc_unittests+0x1b7d54f) #14 non-virtual thunk to cc::SingleThreadTaskGraphRunner::Run() cc/raster/single_thread_task_graph_runner.cc (cc_unittests+0x1b7d54f) #15 base::DelegateSimpleThread::Run() base/threading/simple_thread.cc:98:13 (cc_unittests+0x201e828) #16 base::SimpleThread::ThreadMain() base/threading/simple_thread.cc:75:3 (cc_unittests+0x201e68b) #17 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Previous read of size 8 at 0x7b4400001e90 by thread T3: #0 size buildtools/third_party/libc++/trunk/include/vector:656:46 (cc_unittests+0x12fb337) #1 size base/containers/flat_tree.h:594 (cc_unittests+0x12fb337) #2 cc::(anonymous namespace)::LayerTreeHostTestImageAnimation::WillPrepareToDrawOnThread(cc::LayerTreeHostImpl*) cc/trees/layer_tree_host_unittest.cc:8591 (cc_unittests+0x12fb337) #3 non-virtual thunk to cc::(anonymous namespace)::LayerTreeHostTestImageAnimation::WillPrepareToDrawOnThread(cc::LayerTreeHostImpl*) cc/trees/layer_tree_host_unittest.cc (cc_unittests+0x12fbb64) #4 cc::LayerTreeHostImplForTesting::PrepareToDraw(cc::LayerTreeHostImpl::FrameData*) cc/test/layer_tree_test.cc:289:18 (cc_unittests+0x1cb5e0b) #5 cc::ProxyImpl::DrawInternal(bool) cc/trees/proxy_impl.cc:692:26 (cc_unittests+0x1c856f1) #6 cc::ProxyImpl::ScheduledActionDrawIfPossible() cc/trees/proxy_impl.cc:567:10 (cc_unittests+0x1c85553) #7 non-virtual thunk to cc::ProxyImpl::ScheduledActionDrawIfPossible() cc/trees/proxy_impl.cc (cc_unittests+0x1c8591d) #8 cc::Scheduler::DrawIfPossible() cc/scheduler/scheduler.cc:718:32 (cc_unittests+0x1b9c9c2) #9 cc::Scheduler::ProcessScheduledActions() cc/scheduler/scheduler.cc:818:9 (cc_unittests+0x1b98d96) #10 cc::Scheduler::OnDrawForLayerTreeFrameSink(bool, bool) cc/scheduler/scheduler.cc:390:3 (cc_unittests+0x1b9bdaa) #11 cc::ProxyImpl::OnDrawForLayerTreeFrameSink(bool, bool) cc/trees/proxy_impl.cc:476:15 (cc_unittests+0x1c84bb3) #12 cc::LayerTreeHostImpl::OnDraw(gfx::Transform const&, gfx::Rect const&, bool, bool) cc/trees/layer_tree_host_impl.cc:1884:14 (cc_unittests+0x1c1eb1c) #13 non-virtual thunk to cc::LayerTreeHostImpl::OnDraw(gfx::Transform const&, gfx::Rect const&, bool, bool) cc/trees/layer_tree_host_impl.cc (cc_unittests+0x1c1ec1d) #14 cc::(anonymous namespace)::SynchronousLayerTreeFrameSink::DispatchInvalidation() cc/test/layer_tree_test.cc:121:14 (cc_unittests+0x1cb8586) #15 Invoke<void (cc::(anonymous namespace)::SynchronousLayerTreeFrameSink::*)(), base::WeakPtr<cc::(anonymous namespace)::SynchronousLayerTreeFrameSink>> base/bind_internal.h:499:12 (cc_unittests+0x1cb863a) #16 MakeItSo<void (cc::(anonymous namespace)::SynchronousLayerTreeFrameSink::*)(), base::WeakPtr<cc::(anonymous namespace)::SynchronousLayerTreeFrameSink>> base/bind_internal.h:619 (cc_unittests+0x1cb863a) #17 RunImpl<void (cc::(anonymous namespace)::SynchronousLayerTreeFrameSink::*)(), std::__1::tuple<base::WeakPtr<cc::(anonymous namespace)::SynchronousLayerTreeFrameSink> >, 0> base/bind_internal.h:672 (cc_unittests+0x1cb863a) #18 base::internal::Invoker<base::internal::BindState<void (cc::(anonymous namespace)::SynchronousLayerTreeFrameSink::*)(), base::WeakPtr<cc::(anonymous namespace)::SynchronousLayerTreeFrameSink> >, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x1cb863a) #19 Run base/callback.h:97:12 (cc_unittests+0x1fde8c5) #20 base::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/task/common/task_annotator.cc:143 (cc_unittests+0x1fde8c5) #21 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:368:23 (cc_unittests+0x1ff36f8) #22 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:219:7 (cc_unittests+0x1ff32bd) #23 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff3c1e) #24 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:39:55 (cc_unittests+0x1fb9731) #25 Run base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:466:12 (cc_unittests+0x1ff4409) #26 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff4409) #27 base::RunLoop::RunWithTimeout(base::TimeDelta) base/run_loop.cc:161:14 (cc_unittests+0x1fd4280) #28 base::RunLoop::Run() base/run_loop.cc:129:3 (cc_unittests+0x1fd4073) #29 base::Thread::Run(base::RunLoop*) base/threading/thread.cc:242:13 (cc_unittests+0x201f299) #30 base::Thread::ThreadMain() base/threading/thread.cc:312:3 (cc_unittests+0x201f551) #31 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Location is heap block of size 296 at 0x7b4400001e00 allocated by main thread: #0 operator new(unsigned long) /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:64:3 (cc_unittests+0x9b58db) #1 sk_sp<cc::FakePaintImageGenerator> sk_make_sp<cc::FakePaintImageGenerator, SkImageInfo, std::__1::vector<cc::FrameMetadata, std::__1::allocator<cc::FrameMetadata> >&>(SkImageInfo&&, std::__1::vector<cc::FrameMetadata, std::__1::allocator<cc::FrameMetadata> >&) third_party/skia/include/core/SkRefCnt.h:397:21 (cc_unittests+0xcecfee) #2 cc::(anonymous namespace)::LayerTreeHostTestImageAnimation::SetupTree() cc/trees/layer_tree_host_unittest.cc:8557:18 (cc_unittests+0x12fa729) #3 cc::LayerTreeTest::DoBeginTest() cc/test/layer_tree_test.cc:886:3 (cc_unittests+0x1cb323b) #4 Invoke<void (cc::LayerTreeTest::*)(), cc::LayerTreeTest *> base/bind_internal.h:499:12 (cc_unittests+0x1cb7968) #5 MakeItSo<void (cc::LayerTreeTest::*)(), cc::LayerTreeTest *> base/bind_internal.h:599 (cc_unittests+0x1cb7968) #6 RunImpl<void (cc::LayerTreeTest::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::LayerTreeTest> >, 0> base/bind_internal.h:672 (cc_unittests+0x1cb7968) #7 base::internal::Invoker<base::internal::BindState<void (cc::LayerTreeTest::*)(), base::internal::UnretainedWrapper<cc::LayerTreeTest> >, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x1cb7968) #8 Run base/callback.h:97:12 (cc_unittests+0x1fde8c5) #9 base::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/task/common/task_annotator.cc:143 (cc_unittests+0x1fde8c5) #10 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:368:23 (cc_unittests+0x1ff36f8) #11 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:219:7 (cc_unittests+0x1ff32bd) #12 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff3c1e) #13 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:39:55 (cc_unittests+0x1fb9699) #14 Run base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:466:12 (cc_unittests+0x1ff4409) #15 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff4409) #16 base::RunLoop::RunWithTimeout(base::TimeDelta) base/run_loop.cc:161:14 (cc_unittests+0x1fd4280) #17 base::RunLoop::Run() base/run_loop.cc:129:3 (cc_unittests+0x1fd4073) #18 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1070:19 (cc_unittests+0x1cb3e2b) #19 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #20 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #21 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #22 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #23 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #24 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #25 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #26 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #27 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #28 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #29 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #30 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #31 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #32 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #33 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #34 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #35 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #36 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) Thread T19 'TestTaskGraphRu' (tid=29204, running) created by main thread at: #0 pthread_create /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:989:3 (cc_unittests+0x946bfb) #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:120:13 (cc_unittests+0x205c3b7) #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:246:10 (cc_unittests+0x205c2b5) #3 base::SimpleThread::StartAsync() base/threading/simple_thread.cc:51:13 (cc_unittests+0x201e553) #4 cc::SingleThreadTaskGraphRunner::Start(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, base::SimpleThread::Options const&) cc/raster/single_thread_task_graph_runner.cc:32:12 (cc_unittests+0x1b7c994) #5 cc::TestTaskGraphRunner::TestTaskGraphRunner() cc/test/test_task_graph_runner.cc:10:3 (cc_unittests+0x1cde7b6) #6 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1054:32 (cc_unittests+0x1cb3cd8) #7 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #8 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #9 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #10 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #11 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #12 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #13 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #14 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #15 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #16 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #17 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #18 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #19 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #20 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #21 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #22 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #23 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #24 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) Thread T3 'Compositor' (tid=29202, running) created by main thread at: #0 pthread_create /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:989:3 (cc_unittests+0x946bfb) #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:120:13 (cc_unittests+0x205c3b7) #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:246:10 (cc_unittests+0x205c2b5) #3 base::Thread::StartWithOptions(base::Thread::Options const&) base/threading/thread.cc:119:15 (cc_unittests+0x201efb0) #4 base::Thread::Start() base/threading/thread.cc:77:10 (cc_unittests+0x201ec23) #5 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1046:5 (cc_unittests+0x1cb3ba3) #6 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #7 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #8 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #9 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #10 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #11 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #12 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #13 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #14 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #15 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #16 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #17 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #18 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #19 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #20 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #21 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #22 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #23 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) SUMMARY: ThreadSanitizer: data race buildtools/third_party/libc++/trunk/include/type_traits:4594:9 in swap<std::__1::pair<unsigned long, int> *> ================== ================== WARNING: ThreadSanitizer: data race (pid=28321) Write of size 8 at 0x7b0800028980 by thread T19: #0 operator delete(void*) /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:126:3 (cc_unittests+0x9b602e) #1 __do_call buildtools/third_party/libc++/trunk/include/new:319:12 (cc_unittests+0x1c34267) #2 __do_deallocate_handle_size buildtools/third_party/libc++/trunk/include/new:277 (cc_unittests+0x1c34267) #3 __do_deallocate_handle_size_align buildtools/third_party/libc++/trunk/include/new:247 (cc_unittests+0x1c34267) #4 __libcpp_deallocate buildtools/third_party/libc++/trunk/include/new:325 (cc_unittests+0x1c34267) #5 deallocate buildtools/third_party/libc++/trunk/include/memory:1816 (cc_unittests+0x1c34267) #6 deallocate buildtools/third_party/libc++/trunk/include/memory:1554 (cc_unittests+0x1c34267) #7 ~__split_buffer buildtools/third_party/libc++/trunk/include/__split_buffer:343 (cc_unittests+0x1c34267) #8 std::__1::__wrap_iter<std::__1::pair<unsigned long, int>*> std::__1::vector<std::__1::pair<unsigned long, int>, std::__1::allocator<std::__1::pair<unsigned long, int> > >::emplace<unsigned long const&, int>(std::__1::__wrap_iter<std::__1::pair<unsigned long, int> const*>, unsigned long const&, int&&) buildtools/third_party/libc++/trunk/include/vector:1884 (cc_unittests+0x1c34267) #9 unsafe_emplace<const unsigned long &, int> base/containers/flat_tree.h:953:22 (cc_unittests+0x1c9fbfa) #10 operator[] base/containers/flat_map.h:293 (cc_unittests+0x1c9fbfa) #11 cc::FakePaintImageGenerator::GetPixels(SkImageInfo const&, void*, unsigned long, unsigned long, int, unsigned int) cc/test/fake_paint_image_generator.cc (cc_unittests+0x1c9fbfa) #12 DecodeFromGenerator cc/paint/paint_image.cc:220:34 (cc_unittests+0x1d2ab6c) #13 cc::PaintImage::Decode(void*, SkImageInfo*, sk_sp<SkColorSpace>, unsigned long, int) const cc/paint/paint_image.cc:188 (cc_unittests+0x1d2ab6c) #14 cc::SoftwareImageDecodeCacheUtils::DoDecodeImage(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, SkColorType, int) cc/tiles/software_image_decode_cache_utils.cc:76:29 (cc_unittests+0x1bda589) #15 cc::SoftwareImageDecodeCache::DecodeImageIfNecessary(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCacheUtils::CacheEntry*) cc/tiles/software_image_decode_cache.cc:357:25 (cc_unittests+0x1bd4fa9) #16 cc::SoftwareImageDecodeCache::DecodeImageInTask(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCache::DecodeTaskType) cc/tiles/software_image_decode_cache.cc:319:3 (cc_unittests+0x1bd4ba9) #17 cc::(anonymous namespace)::SoftwareImageDecodeTaskImpl::RunOnWorkerThread() cc/tiles/software_image_decode_cache.cc:79:13 (cc_unittests+0x1bd7602) #18 cc::SingleThreadTaskGraphRunner::RunTaskWithLockAcquired() cc/raster/single_thread_task_graph_runner.cc:157:28 (cc_unittests+0x1b7d2fe) #19 Run cc/raster/single_thread_task_graph_runner.cc:120:10 (cc_unittests+0x1b7d54f) #20 non-virtual thunk to cc::SingleThreadTaskGraphRunner::Run() cc/raster/single_thread_task_graph_runner.cc (cc_unittests+0x1b7d54f) #21 base::DelegateSimpleThread::Run() base/threading/simple_thread.cc:98:13 (cc_unittests+0x201e828) #22 base::SimpleThread::ThreadMain() base/threading/simple_thread.cc:75:3 (cc_unittests+0x201e68b) #23 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Previous read of size 8 at 0x7b0800028980 by thread T3: #0 operator()<const unsigned long &, const unsigned int &> buildtools/third_party/libc++/trunk/include/__functional_base:66:25 (cc_unittests+0x12fb7f2) #1 operator()<std::__1::pair<unsigned long, int>, unsigned int> base/containers/flat_tree.h:365 (cc_unittests+0x12fb7f2) #2 __lower_bound<base::internal::flat_tree<unsigned long, std::__1::pair<unsigned long, int>, base::internal::GetKeyFromValuePairFirst<unsigned long, int>, std::__1::less<void> >::KeyValueCompare &, std::__1::__wrap_iter<const std::__1::pair<unsigned long, int> *>, unsigned int> buildtools/third_party/libc++/trunk/include/algorithm:4184 (cc_unittests+0x12fb7f2) #3 lower_bound<std::__1::__wrap_iter<const std::__1::pair<unsigned long, int> *>, unsigned int, base::internal::flat_tree<unsigned long, std::__1::pair<unsigned long, int>, base::internal::GetKeyFromValuePairFirst<unsigned long, int>, std::__1::less<void> >::KeyValueCompare> buildtools/third_party/libc++/trunk/include/algorithm:4202 (cc_unittests+0x12fb7f2) #4 lower_bound<unsigned int> base/containers/flat_tree.h:915 (cc_unittests+0x12fb7f2) #5 equal_range<unsigned int> base/containers/flat_tree.h:888 (cc_unittests+0x12fb7f2) #6 count<unsigned int> base/containers/flat_tree.h:849 (cc_unittests+0x12fb7f2) #7 cc::(anonymous namespace)::LayerTreeHostTestImageAnimation::WillPrepareToDrawOnThread(cc::LayerTreeHostImpl*) cc/trees/layer_tree_host_unittest.cc:8592 (cc_unittests+0x12fb7f2) #8 non-virtual thunk to cc::(anonymous namespace)::LayerTreeHostTestImageAnimation::WillPrepareToDrawOnThread(cc::LayerTreeHostImpl*) cc/trees/layer_tree_host_unittest.cc (cc_unittests+0x12fbb64) #9 cc::LayerTreeHostImplForTesting::PrepareToDraw(cc::LayerTreeHostImpl::FrameData*) cc/test/layer_tree_test.cc:289:18 (cc_unittests+0x1cb5e0b) #10 cc::ProxyImpl::DrawInternal(bool) cc/trees/proxy_impl.cc:692:26 (cc_unittests+0x1c856f1) #11 cc::ProxyImpl::ScheduledActionDrawIfPossible() cc/trees/proxy_impl.cc:567:10 (cc_unittests+0x1c85553) #12 non-virtual thunk to cc::ProxyImpl::ScheduledActionDrawIfPossible() cc/trees/proxy_impl.cc (cc_unittests+0x1c8591d) #13 cc::Scheduler::DrawIfPossible() cc/scheduler/scheduler.cc:718:32 (cc_unittests+0x1b9c9c2) #14 cc::Scheduler::ProcessScheduledActions() cc/scheduler/scheduler.cc:818:9 (cc_unittests+0x1b98d96) #15 cc::Scheduler::OnDrawForLayerTreeFrameSink(bool, bool) cc/scheduler/scheduler.cc:390:3 (cc_unittests+0x1b9bdaa) #16 cc::ProxyImpl::OnDrawForLayerTreeFrameSink(bool, bool) cc/trees/proxy_impl.cc:476:15 (cc_unittests+0x1c84bb3) #17 cc::LayerTreeHostImpl::OnDraw(gfx::Transform const&, gfx::Rect const&, bool, bool) cc/trees/layer_tree_host_impl.cc:1884:14 (cc_unittests+0x1c1eb1c) #18 non-virtual thunk to cc::LayerTreeHostImpl::OnDraw(gfx::Transform const&, gfx::Rect const&, bool, bool) cc/trees/layer_tree_host_impl.cc (cc_unittests+0x1c1ec1d) #19 cc::(anonymous namespace)::SynchronousLayerTreeFrameSink::DispatchInvalidation() cc/test/layer_tree_test.cc:121:14 (cc_unittests+0x1cb8586) #20 Invoke<void (cc::(anonymous namespace)::SynchronousLayerTreeFrameSink::*)(), base::WeakPtr<cc::(anonymous namespace)::SynchronousLayerTreeFrameSink>> base/bind_internal.h:499:12 (cc_unittests+0x1cb863a) #21 MakeItSo<void (cc::(anonymous namespace)::SynchronousLayerTreeFrameSink::*)(), base::WeakPtr<cc::(anonymous namespace)::SynchronousLayerTreeFrameSink>> base/bind_internal.h:619 (cc_unittests+0x1cb863a) #22 RunImpl<void (cc::(anonymous namespace)::SynchronousLayerTreeFrameSink::*)(), std::__1::tuple<base::WeakPtr<cc::(anonymous namespace)::SynchronousLayerTreeFrameSink> >, 0> base/bind_internal.h:672 (cc_unittests+0x1cb863a) #23 base::internal::Invoker<base::internal::BindState<void (cc::(anonymous namespace)::SynchronousLayerTreeFrameSink::*)(), base::WeakPtr<cc::(anonymous namespace)::SynchronousLayerTreeFrameSink> >, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x1cb863a) #24 Run base/callback.h:97:12 (cc_unittests+0x1fde8c5) #25 base::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/task/common/task_annotator.cc:143 (cc_unittests+0x1fde8c5) #26 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:368:23 (cc_unittests+0x1ff36f8) #27 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:219:7 (cc_unittests+0x1ff32bd) #28 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff3c1e) #29 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:39:55 (cc_unittests+0x1fb9731) #30 Run base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:466:12 (cc_unittests+0x1ff4409) #31 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff4409) #32 base::RunLoop::RunWithTimeout(base::TimeDelta) base/run_loop.cc:161:14 (cc_unittests+0x1fd4280) #33 base::RunLoop::Run() base/run_loop.cc:129:3 (cc_unittests+0x1fd4073) #34 base::Thread::Run(base::RunLoop*) base/threading/thread.cc:242:13 (cc_unittests+0x201f299) #35 base::Thread::ThreadMain() base/threading/thread.cc:312:3 (cc_unittests+0x201f551) #36 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Thread T19 'TestTaskGraphRu' (tid=29204, running) created by main thread at: #0 pthread_create /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:989:3 (cc_unittests+0x946bfb) #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:120:13 (cc_unittests+0x205c3b7) #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:246:10 (cc_unittests+0x205c2b5) #3 base::SimpleThread::StartAsync() base/threading/simple_thread.cc:51:13 (cc_unittests+0x201e553) #4 cc::SingleThreadTaskGraphRunner::Start(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, base::SimpleThread::Options const&) cc/raster/single_thread_task_graph_runner.cc:32:12 (cc_unittests+0x1b7c994) #5 cc::TestTaskGraphRunner::TestTaskGraphRunner() cc/test/test_task_graph_runner.cc:10:3 (cc_unittests+0x1cde7b6) #6 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1054:32 (cc_unittests+0x1cb3cd8) #7 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #8 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #9 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #10 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #11 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #12 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #13 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #14 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #15 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #16 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #17 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #18 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #19 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #20 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #21 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #22 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #23 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #24 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) Thread T3 'Compositor' (tid=29202, running) created by main thread at: #0 pthread_create /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:989:3 (cc_unittests+0x946bfb) #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:120:13 (cc_unittests+0x205c3b7) #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:246:10 (cc_unittests+0x205c2b5) #3 base::Thread::StartWithOptions(base::Thread::Options const&) base/threading/thread.cc:119:15 (cc_unittests+0x201efb0) #4 base::Thread::Start() base/threading/thread.cc:77:10 (cc_unittests+0x201ec23) #5 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1046:5 (cc_unittests+0x1cb3ba3) #6 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #7 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #8 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #9 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #10 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #11 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #12 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #13 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #14 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #15 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #16 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #17 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #18 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #19 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #20 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #21 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #22 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #23 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) SUMMARY: ThreadSanitizer: data race /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:126:3 in operator delete(void*) ================== ================== WARNING: ThreadSanitizer: data race (pid=28321) Read of size 8 at 0x7b4400001e90 by thread T3: #0 end buildtools/third_party/libc++/trunk/include/vector:1539:30 (cc_unittests+0x1c9fa52) #1 end base/containers/flat_tree.h:636 (cc_unittests+0x1c9fa52) #2 lower_bound<unsigned long> base/containers/flat_tree.h:915 (cc_unittests+0x1c9fa52) #3 equal_range<unsigned long> base/containers/flat_tree.h:888 (cc_unittests+0x1c9fa52) #4 find<unsigned long> base/containers/flat_tree.h:864 (cc_unittests+0x1c9fa52) #5 find<unsigned long> base/containers/flat_tree.h:857 (cc_unittests+0x1c9fa52) #6 cc::FakePaintImageGenerator::GetPixels(SkImageInfo const&, void*, unsigned long, unsigned long, int, unsigned int) cc/test/fake_paint_image_generator.cc:61 (cc_unittests+0x1c9fa52) #7 cc::SkiaPaintImageGenerator::onGetPixels(SkImageInfo const&, void*, unsigned long, SkImageGenerator::Options const&) cc/paint/skia_paint_image_generator.cc:30:34 (cc_unittests+0x1d5b420) #8 SkImageGenerator::getPixels(SkImageInfo const&, void*, unsigned long) third_party/skia/src/core/SkImageGenerator.cpp:30:18 (cc_unittests+0x15fad37) #9 generate_pixels(SkImageGenerator*, SkPixmap const&, int, int) third_party/skia/src/image/SkImage_Lazy.cpp:168:15 (cc_unittests+0x16d1d5d) #10 SkImage_Lazy::getROPixels(SkBitmap*, SkImage::CachingHint) const third_party/skia/src/image/SkImage_Lazy.cpp:197:14 (cc_unittests+0x16d193b) #11 SkBaseDevice::drawImageRect(SkImage const*, SkRect const*, SkRect const&, SkPaint const&, SkCanvas::SrcRectConstraint) third_party/skia/src/core/SkDevice.cpp:145:23 (cc_unittests+0x15c50cf) #12 SkCanvas::onDrawImage(SkImage const*, float, float, SkPaint const*) third_party/skia/src/core/SkCanvas.cpp:2371:27 (cc_unittests+0x15ac169) #13 SkCanvas::drawImage(SkImage const*, float, float, SkPaint const*) third_party/skia/src/core/SkCanvas.cpp:1808:11 (cc_unittests+0x15a6bd9) #14 cc::DrawImageOp::RasterWithFlags(cc::DrawImageOp const*, cc::PaintFlags const*, SkCanvas*, cc::PlaybackParams const&) cc/paint/paint_op_buffer.cc:1248:11 (cc_unittests+0x1d2f859) #15 RasterWithFlags cc/paint/paint_op_buffer.cc:125:5 (cc_unittests+0x1d36310) #16 operator() cc/paint/paint_op_buffer.cc:160 (cc_unittests+0x1d36310) #17 cc::$_36::__invoke(cc::PaintOp const*, cc::PaintFlags const*, SkCanvas*, cc::PlaybackParams const&) cc/paint/paint_op_buffer.cc:160 (cc_unittests+0x1d36310) #18 RasterWithFlags cc/paint/paint_op_buffer.cc:2082:3 (cc_unittests+0x1d34098) #19 cc::PaintOpBuffer::Playback(SkCanvas*, cc::PlaybackParams const&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const*) const cc/paint/paint_op_buffer.cc:2439 (cc_unittests+0x1d34098) #20 cc::DisplayItemList::Raster(SkCanvas*, cc::ImageProvider*) const cc/paint/display_item_list.cc:81:20 (cc_unittests+0x1d0f3ef) #21 viz::SoftwareRenderer::DrawPictureQuad(viz::PictureDrawQuad const*) components/viz/service/display/software_renderer.cc:386:28 (cc_unittests+0x1e5c1f5) #22 viz::SoftwareRenderer::DoDrawQuad(viz::DrawQuad const*, gfx::QuadF const*) components/viz/service/display/software_renderer.cc:290:7 (cc_unittests+0x1e5bcdb) #23 viz::DirectRenderer::DrawRenderPass(viz::RenderPass const*) components/viz/service/display/direct_renderer.cc:703:5 (cc_unittests+0x1d78be4) #24 viz::DirectRenderer::DrawRenderPassAndExecuteCopyRequests(viz::RenderPass*) components/viz/service/display/direct_renderer.cc:567:5 (cc_unittests+0x1d77b0a) #25 viz::DirectRenderer::DrawFrame(std::__1::vector<std::__1::unique_ptr<viz::RenderPass, std::__1::default_delete<viz::RenderPass> >, std::__1::allocator<std::__1::unique_ptr<viz::RenderPass, std::__1::default_delete<viz::RenderPass> > > >*, float, gfx::Size const&) components/viz/service/display/direct_renderer.cc:421:5 (cc_unittests+0x1d7778c) #26 viz::Display::DrawAndSwap() components/viz/service/display/display.cc:491:16 (cc_unittests+0x1e45e92) #27 viz::DisplayScheduler::DrawAndSwap() components/viz/service/display/display_scheduler.cc:216:27 (cc_unittests+0x1de3e3d) #28 viz::DisplayScheduler::AttemptDrawAndSwap() components/viz/service/display/display_scheduler.cc:488:14 (cc_unittests+0x1de3357) #29 viz::DisplayScheduler::OnBeginFrameDeadline() components/viz/service/display/display_scheduler.cc:504:19 (cc_unittests+0x1de2a24) #30 Invoke<void (viz::DisplayScheduler::*)(), const base::WeakPtr<viz::DisplayScheduler> &> base/bind_internal.h:499:12 (cc_unittests+0x1de595a) #31 MakeItSo<void (viz::DisplayScheduler::*const &)(), const base::WeakPtr<viz::DisplayScheduler> &> base/bind_internal.h:619 (cc_unittests+0x1de595a) #32 RunImpl<void (viz::DisplayScheduler::*const &)(), const std::__1::tuple<base::WeakPtr<viz::DisplayScheduler> > &, 0> base/bind_internal.h:672 (cc_unittests+0x1de595a) #33 base::internal::Invoker<base::internal::BindState<void (viz::DisplayScheduler::*)(), base::WeakPtr<viz::DisplayScheduler> >, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:654 (cc_unittests+0x1de595a) #34 Run base/callback.h:97:12 (cc_unittests+0x1b2d80d) #35 void base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::ForwardOnce<>() base/cancelable_callback.h:126 (cc_unittests+0x1b2d80d) #36 Invoke<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > >> base/bind_internal.h:499:12 (cc_unittests+0x1b2d8ca) #37 MakeItSo<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > >> base/bind_internal.h:619 (cc_unittests+0x1b2d8ca) #38 RunImpl<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), std::__1::tuple<base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > > >, 0> base/bind_internal.h:672 (cc_unittests+0x1b2d8ca) #39 base::internal::Invoker<base::internal::BindState<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > > >, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x1b2d8ca) #40 Run base/callback.h:97:12 (cc_unittests+0x1fde8c5) #41 base::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/task/common/task_annotator.cc:143 (cc_unittests+0x1fde8c5) #42 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:368:23 (cc_unittests+0x1ff36f8) #43 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:219:7 (cc_unittests+0x1ff32bd) #44 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff3c1e) #45 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:39:55 (cc_unittests+0x1fb9731) #46 Run base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:466:12 (cc_unittests+0x1ff4409) #47 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff4409) #48 base::RunLoop::RunWithTimeout(base::TimeDelta) base/run_loop.cc:161:14 (cc_unittests+0x1fd4280) #49 base::RunLoop::Run() base/run_loop.cc:129:3 (cc_unittests+0x1fd4073) #50 base::Thread::Run(base::RunLoop*) base/threading/thread.cc:242:13 (cc_unittests+0x201f299) #51 base::Thread::ThreadMain() base/threading/thread.cc:312:3 (cc_unittests+0x201f551) #52 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Previous write of size 8 at 0x7b4400001e90 by thread T19: #0 swap<std::__1::pair<unsigned long, int> *> buildtools/third_party/libc++/trunk/include/type_traits:4594:9 (cc_unittests+0x1c3420e) #1 __swap_out_circular_buffer buildtools/third_party/libc++/trunk/include/vector:960 (cc_unittests+0x1c3420e) #2 std::__1::__wrap_iter<std::__1::pair<unsigned long, int>*> std::__1::vector<std::__1::pair<unsigned long, int>, std::__1::allocator<std::__1::pair<unsigned long, int> > >::emplace<unsigned long const&, int>(std::__1::__wrap_iter<std::__1::pair<unsigned long, int> const*>, unsigned long const&, int&&) buildtools/third_party/libc++/trunk/include/vector:1883 (cc_unittests+0x1c3420e) #3 unsafe_emplace<const unsigned long &, int> base/containers/flat_tree.h:953:22 (cc_unittests+0x1c9fbfa) #4 operator[] base/containers/flat_map.h:293 (cc_unittests+0x1c9fbfa) #5 cc::FakePaintImageGenerator::GetPixels(SkImageInfo const&, void*, unsigned long, unsigned long, int, unsigned int) cc/test/fake_paint_image_generator.cc (cc_unittests+0x1c9fbfa) #6 DecodeFromGenerator cc/paint/paint_image.cc:220:34 (cc_unittests+0x1d2ab6c) #7 cc::PaintImage::Decode(void*, SkImageInfo*, sk_sp<SkColorSpace>, unsigned long, int) const cc/paint/paint_image.cc:188 (cc_unittests+0x1d2ab6c) #8 cc::SoftwareImageDecodeCacheUtils::DoDecodeImage(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, SkColorType, int) cc/tiles/software_image_decode_cache_utils.cc:76:29 (cc_unittests+0x1bda589) #9 cc::SoftwareImageDecodeCache::DecodeImageIfNecessary(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCacheUtils::CacheEntry*) cc/tiles/software_image_decode_cache.cc:357:25 (cc_unittests+0x1bd4fa9) #10 cc::SoftwareImageDecodeCache::DecodeImageInTask(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCache::DecodeTaskType) cc/tiles/software_image_decode_cache.cc:319:3 (cc_unittests+0x1bd4ba9) #11 cc::(anonymous namespace)::SoftwareImageDecodeTaskImpl::RunOnWorkerThread() cc/tiles/software_image_decode_cache.cc:79:13 (cc_unittests+0x1bd7602) #12 cc::SingleThreadTaskGraphRunner::RunTaskWithLockAcquired() cc/raster/single_thread_task_graph_runner.cc:157:28 (cc_unittests+0x1b7d2fe) #13 Run cc/raster/single_thread_task_graph_runner.cc:120:10 (cc_unittests+0x1b7d54f) #14 non-virtual thunk to cc::SingleThreadTaskGraphRunner::Run() cc/raster/single_thread_task_graph_runner.cc (cc_unittests+0x1b7d54f) #15 base::DelegateSimpleThread::Run() base/threading/simple_thread.cc:98:13 (cc_unittests+0x201e828) #16 base::SimpleThread::ThreadMain() base/threading/simple_thread.cc:75:3 (cc_unittests+0x201e68b) #17 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Location is heap block of size 296 at 0x7b4400001e00 allocated by main thread: #0 operator new(unsigned long) /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:64:3 (cc_unittests+0x9b58db) #1 sk_sp<cc::FakePaintImageGenerator> sk_make_sp<cc::FakePaintImageGenerator, SkImageInfo, std::__1::vector<cc::FrameMetadata, std::__1::allocator<cc::FrameMetadata> >&>(SkImageInfo&&, std::__1::vector<cc::FrameMetadata, std::__1::allocator<cc::FrameMetadata> >&) third_party/skia/include/core/SkRefCnt.h:397:21 (cc_unittests+0xcecfee) #2 cc::(anonymous namespace)::LayerTreeHostTestImageAnimation::SetupTree() cc/trees/layer_tree_host_unittest.cc:8557:18 (cc_unittests+0x12fa729) #3 cc::LayerTreeTest::DoBeginTest() cc/test/layer_tree_test.cc:886:3 (cc_unittests+0x1cb323b) #4 Invoke<void (cc::LayerTreeTest::*)(), cc::LayerTreeTest *> base/bind_internal.h:499:12 (cc_unittests+0x1cb7968) #5 MakeItSo<void (cc::LayerTreeTest::*)(), cc::LayerTreeTest *> base/bind_internal.h:599 (cc_unittests+0x1cb7968) #6 RunImpl<void (cc::LayerTreeTest::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::LayerTreeTest> >, 0> base/bind_internal.h:672 (cc_unittests+0x1cb7968) #7 base::internal::Invoker<base::internal::BindState<void (cc::LayerTreeTest::*)(), base::internal::UnretainedWrapper<cc::LayerTreeTest> >, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x1cb7968) #8 Run base/callback.h:97:12 (cc_unittests+0x1fde8c5) #9 base::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/task/common/task_annotator.cc:143 (cc_unittests+0x1fde8c5) #10 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:368:23 (cc_unittests+0x1ff36f8) #11 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:219:7 (cc_unittests+0x1ff32bd) #12 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff3c1e) #13 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:39:55 (cc_unittests+0x1fb9699) #14 Run base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:466:12 (cc_unittests+0x1ff4409) #15 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff4409) #16 base::RunLoop::RunWithTimeout(base::TimeDelta) base/run_loop.cc:161:14 (cc_unittests+0x1fd4280) #17 base::RunLoop::Run() base/run_loop.cc:129:3 (cc_unittests+0x1fd4073) #18 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1070:19 (cc_unittests+0x1cb3e2b) #19 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #20 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #21 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #22 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #23 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #24 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #25 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #26 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #27 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #28 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #29 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #30 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #31 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #32 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #33 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #34 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #35 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #36 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) Thread T3 'Compositor' (tid=29202, running) created by main thread at: #0 pthread_create /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:989:3 (cc_unittests+0x946bfb) #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:120:13 (cc_unittests+0x205c3b7) #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:246:10 (cc_unittests+0x205c2b5) #3 base::Thread::StartWithOptions(base::Thread::Options const&) base/threading/thread.cc:119:15 (cc_unittests+0x201efb0) #4 base::Thread::Start() base/threading/thread.cc:77:10 (cc_unittests+0x201ec23) #5 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1046:5 (cc_unittests+0x1cb3ba3) #6 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #7 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #8 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #9 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #10 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #11 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #12 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #13 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #14 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #15 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #16 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #17 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #18 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #19 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #20 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #21 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #22 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #23 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) Thread T19 'TestTaskGraphRu' (tid=29204, running) created by main thread at: #0 pthread_create /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:989:3 (cc_unittests+0x946bfb) #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:120:13 (cc_unittests+0x205c3b7) #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:246:10 (cc_unittests+0x205c2b5) #3 base::SimpleThread::StartAsync() base/threading/simple_thread.cc:51:13 (cc_unittests+0x201e553) #4 cc::SingleThreadTaskGraphRunner::Start(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, base::SimpleThread::Options const&) cc/raster/single_thread_task_graph_runner.cc:32:12 (cc_unittests+0x1b7c994) #5 cc::TestTaskGraphRunner::TestTaskGraphRunner() cc/test/test_task_graph_runner.cc:10:3 (cc_unittests+0x1cde7b6) #6 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1054:32 (cc_unittests+0x1cb3cd8) #7 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #8 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #9 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #10 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #11 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #12 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #13 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #14 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #15 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #16 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #17 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #18 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #19 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #20 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #21 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #22 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #23 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #24 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) SUMMARY: ThreadSanitizer: data race buildtools/third_party/libc++/trunk/include/vector:1539:30 in end ================== ================== WARNING: ThreadSanitizer: data race (pid=28321) Read of size 8 at 0x7b100004c750 by thread T3: #0 operator()<const unsigned long &, const unsigned long &> buildtools/third_party/libc++/trunk/include/__functional_base:66:25 (cc_unittests+0x1c9fac2) #1 operator()<std::__1::pair<unsigned long, int>, unsigned long> base/containers/flat_tree.h:365 (cc_unittests+0x1c9fac2) #2 __lower_bound<base::internal::flat_tree<unsigned long, std::__1::pair<unsigned long, int>, base::internal::GetKeyFromValuePairFirst<unsigned long, int>, std::__1::less<void> >::KeyValueCompare &, std::__1::__wrap_iter<const std::__1::pair<unsigned long, int> *>, unsigned long> buildtools/third_party/libc++/trunk/include/algorithm:4184 (cc_unittests+0x1c9fac2) #3 lower_bound<std::__1::__wrap_iter<const std::__1::pair<unsigned long, int> *>, unsigned long, base::internal::flat_tree<unsigned long, std::__1::pair<unsigned long, int>, base::internal::GetKeyFromValuePairFirst<unsigned long, int>, std::__1::less<void> >::KeyValueCompare> buildtools/third_party/libc++/trunk/include/algorithm:4202 (cc_unittests+0x1c9fac2) #4 lower_bound<unsigned long> base/containers/flat_tree.h:915 (cc_unittests+0x1c9fac2) #5 equal_range<unsigned long> base/containers/flat_tree.h:888 (cc_unittests+0x1c9fac2) #6 find<unsigned long> base/containers/flat_tree.h:864 (cc_unittests+0x1c9fac2) #7 find<unsigned long> base/containers/flat_tree.h:857 (cc_unittests+0x1c9fac2) #8 cc::FakePaintImageGenerator::GetPixels(SkImageInfo const&, void*, unsigned long, unsigned long, int, unsigned int) cc/test/fake_paint_image_generator.cc:61 (cc_unittests+0x1c9fac2) #9 cc::SkiaPaintImageGenerator::onGetPixels(SkImageInfo const&, void*, unsigned long, SkImageGenerator::Options const&) cc/paint/skia_paint_image_generator.cc:30:34 (cc_unittests+0x1d5b420) #10 SkImageGenerator::getPixels(SkImageInfo const&, void*, unsigned long) third_party/skia/src/core/SkImageGenerator.cpp:30:18 (cc_unittests+0x15fad37) #11 generate_pixels(SkImageGenerator*, SkPixmap const&, int, int) third_party/skia/src/image/SkImage_Lazy.cpp:168:15 (cc_unittests+0x16d1d5d) #12 SkImage_Lazy::getROPixels(SkBitmap*, SkImage::CachingHint) const third_party/skia/src/image/SkImage_Lazy.cpp:197:14 (cc_unittests+0x16d193b) #13 SkBaseDevice::drawImageRect(SkImage const*, SkRect const*, SkRect const&, SkPaint const&, SkCanvas::SrcRectConstraint) third_party/skia/src/core/SkDevice.cpp:145:23 (cc_unittests+0x15c50cf) #14 SkCanvas::onDrawImage(SkImage const*, float, float, SkPaint const*) third_party/skia/src/core/SkCanvas.cpp:2371:27 (cc_unittests+0x15ac169) #15 SkCanvas::drawImage(SkImage const*, float, float, SkPaint const*) third_party/skia/src/core/SkCanvas.cpp:1808:11 (cc_unittests+0x15a6bd9) #16 cc::DrawImageOp::RasterWithFlags(cc::DrawImageOp const*, cc::PaintFlags const*, SkCanvas*, cc::PlaybackParams const&) cc/paint/paint_op_buffer.cc:1248:11 (cc_unittests+0x1d2f859) #17 RasterWithFlags cc/paint/paint_op_buffer.cc:125:5 (cc_unittests+0x1d36310) #18 operator() cc/paint/paint_op_buffer.cc:160 (cc_unittests+0x1d36310) #19 cc::$_36::__invoke(cc::PaintOp const*, cc::PaintFlags const*, SkCanvas*, cc::PlaybackParams const&) cc/paint/paint_op_buffer.cc:160 (cc_unittests+0x1d36310) #20 RasterWithFlags cc/paint/paint_op_buffer.cc:2082:3 (cc_unittests+0x1d34098) #21 cc::PaintOpBuffer::Playback(SkCanvas*, cc::PlaybackParams const&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const*) const cc/paint/paint_op_buffer.cc:2439 (cc_unittests+0x1d34098) #22 cc::DisplayItemList::Raster(SkCanvas*, cc::ImageProvider*) const cc/paint/display_item_list.cc:81:20 (cc_unittests+0x1d0f3ef) #23 viz::SoftwareRenderer::DrawPictureQuad(viz::PictureDrawQuad const*) components/viz/service/display/software_renderer.cc:386:28 (cc_unittests+0x1e5c1f5) #24 viz::SoftwareRenderer::DoDrawQuad(viz::DrawQuad const*, gfx::QuadF const*) components/viz/service/display/software_renderer.cc:290:7 (cc_unittests+0x1e5bcdb) #25 viz::DirectRenderer::DrawRenderPass(viz::RenderPass const*) components/viz/service/display/direct_renderer.cc:703:5 (cc_unittests+0x1d78be4) #26 viz::DirectRenderer::DrawRenderPassAndExecuteCopyRequests(viz::RenderPass*) components/viz/service/display/direct_renderer.cc:567:5 (cc_unittests+0x1d77b0a) #27 viz::DirectRenderer::DrawFrame(std::__1::vector<std::__1::unique_ptr<viz::RenderPass, std::__1::default_delete<viz::RenderPass> >, std::__1::allocator<std::__1::unique_ptr<viz::RenderPass, std::__1::default_delete<viz::RenderPass> > > >*, float, gfx::Size const&) components/viz/service/display/direct_renderer.cc:421:5 (cc_unittests+0x1d7778c) #28 viz::Display::DrawAndSwap() components/viz/service/display/display.cc:491:16 (cc_unittests+0x1e45e92) #29 viz::DisplayScheduler::DrawAndSwap() components/viz/service/display/display_scheduler.cc:216:27 (cc_unittests+0x1de3e3d) #30 viz::DisplayScheduler::AttemptDrawAndSwap() components/viz/service/display/display_scheduler.cc:488:14 (cc_unittests+0x1de3357) #31 viz::DisplayScheduler::OnBeginFrameDeadline() components/viz/service/display/display_scheduler.cc:504:19 (cc_unittests+0x1de2a24) #32 Invoke<void (viz::DisplayScheduler::*)(), const base::WeakPtr<viz::DisplayScheduler> &> base/bind_internal.h:499:12 (cc_unittests+0x1de595a) #33 MakeItSo<void (viz::DisplayScheduler::*const &)(), const base::WeakPtr<viz::DisplayScheduler> &> base/bind_internal.h:619 (cc_unittests+0x1de595a) #34 RunImpl<void (viz::DisplayScheduler::*const &)(), const std::__1::tuple<base::WeakPtr<viz::DisplayScheduler> > &, 0> base/bind_internal.h:672 (cc_unittests+0x1de595a) #35 base::internal::Invoker<base::internal::BindState<void (viz::DisplayScheduler::*)(), base::WeakPtr<viz::DisplayScheduler> >, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:654 (cc_unittests+0x1de595a) #36 Run base/callback.h:97:12 (cc_unittests+0x1b2d80d) #37 void base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::ForwardOnce<>() base/cancelable_callback.h:126 (cc_unittests+0x1b2d80d) #38 Invoke<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > >> base/bind_internal.h:499:12 (cc_unittests+0x1b2d8ca) #39 MakeItSo<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > >> base/bind_internal.h:619 (cc_unittests+0x1b2d8ca) #40 RunImpl<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), std::__1::tuple<base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > > >, 0> base/bind_internal.h:672 (cc_unittests+0x1b2d8ca) #41 base::internal::Invoker<base::internal::BindState<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > > >, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x1b2d8ca) #42 Run base/callback.h:97:12 (cc_unittests+0x1fde8c5) #43 base::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/task/common/task_annotator.cc:143 (cc_unittests+0x1fde8c5) #44 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:368:23 (cc_unittests+0x1ff36f8) #45 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:219:7 (cc_unittests+0x1ff32bd) #46 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff3c1e) #47 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:39:55 (cc_unittests+0x1fb9731) #48 Run base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:466:12 (cc_unittests+0x1ff4409) #49 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff4409) #50 base::RunLoop::RunWithTimeout(base::TimeDelta) base/run_loop.cc:161:14 (cc_unittests+0x1fd4280) #51 base::RunLoop::Run() base/run_loop.cc:129:3 (cc_unittests+0x1fd4073) #52 base::Thread::Run(base::RunLoop*) base/threading/thread.cc:242:13 (cc_unittests+0x201f299) #53 base::Thread::ThreadMain() base/threading/thread.cc:312:3 (cc_unittests+0x201f551) #54 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Previous write of size 8 at 0x7b100004c750 by thread T19: #0 operator new(unsigned long) /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:64:3 (cc_unittests+0x9b58db) #1 __libcpp_allocate buildtools/third_party/libc++/trunk/include/new:238:10 (cc_unittests+0x1c340e0) #2 allocate buildtools/third_party/libc++/trunk/include/memory:1813 (cc_unittests+0x1c340e0) #3 allocate buildtools/third_party/libc++/trunk/include/memory:1546 (cc_unittests+0x1c340e0) #4 __split_buffer buildtools/third_party/libc++/trunk/include/__split_buffer:311 (cc_unittests+0x1c340e0) #5 std::__1::__wrap_iter<std::__1::pair<unsigned long, int>*> std::__1::vector<std::__1::pair<unsigned long, int>, std::__1::allocator<std::__1::pair<unsigned long, int> > >::emplace<unsigned long const&, int>(std::__1::__wrap_iter<std::__1::pair<unsigned long, int> const*>, unsigned long const&, int&&) buildtools/third_party/libc++/trunk/include/vector:1881 (cc_unittests+0x1c340e0) #6 unsafe_emplace<const unsigned long &, int> base/containers/flat_tree.h:953:22 (cc_unittests+0x1c9fbfa) #7 operator[] base/containers/flat_map.h:293 (cc_unittests+0x1c9fbfa) #8 cc::FakePaintImageGenerator::GetPixels(SkImageInfo const&, void*, unsigned long, unsigned long, int, unsigned int) cc/test/fake_paint_image_generator.cc (cc_unittests+0x1c9fbfa) #9 DecodeFromGenerator cc/paint/paint_image.cc:220:34 (cc_unittests+0x1d2ab6c) #10 cc::PaintImage::Decode(void*, SkImageInfo*, sk_sp<SkColorSpace>, unsigned long, int) const cc/paint/paint_image.cc:188 (cc_unittests+0x1d2ab6c) #11 cc::SoftwareImageDecodeCacheUtils::DoDecodeImage(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, SkColorType, int) cc/tiles/software_image_decode_cache_utils.cc:76:29 (cc_unittests+0x1bda589) #12 cc::SoftwareImageDecodeCache::DecodeImageIfNecessary(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCacheUtils::CacheEntry*) cc/tiles/software_image_decode_cache.cc:357:25 (cc_unittests+0x1bd4fa9) #13 cc::SoftwareImageDecodeCache::DecodeImageInTask(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCache::DecodeTaskType) cc/tiles/software_image_decode_cache.cc:319:3 (cc_unittests+0x1bd4ba9) #14 cc::(anonymous namespace)::SoftwareImageDecodeTaskImpl::RunOnWorkerThread() cc/tiles/software_image_decode_cache.cc:79:13 (cc_unittests+0x1bd7602) #15 cc::SingleThreadTaskGraphRunner::RunTaskWithLockAcquired() cc/raster/single_thread_task_graph_runner.cc:157:28 (cc_unittests+0x1b7d2fe) #16 Run cc/raster/single_thread_task_graph_runner.cc:120:10 (cc_unittests+0x1b7d54f) #17 non-virtual thunk to cc::SingleThreadTaskGraphRunner::Run() cc/raster/single_thread_task_graph_runner.cc (cc_unittests+0x1b7d54f) #18 base::DelegateSimpleThread::Run() base/threading/simple_thread.cc:98:13 (cc_unittests+0x201e828) #19 base::SimpleThread::ThreadMain() base/threading/simple_thread.cc:75:3 (cc_unittests+0x201e68b) #20 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Location is heap block of size 64 at 0x7b100004c740 allocated by thread T19: #0 operator new(unsigned long) /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:64:3 (cc_unittests+0x9b58db) #1 __libcpp_allocate buildtools/third_party/libc++/trunk/include/new:238:10 (cc_unittests+0x1c340e0) #2 allocate buildtools/third_party/libc++/trunk/include/memory:1813 (cc_unittests+0x1c340e0) #3 allocate buildtools/third_party/libc++/trunk/include/memory:1546 (cc_unittests+0x1c340e0) #4 __split_buffer buildtools/third_party/libc++/trunk/include/__split_buffer:311 (cc_unittests+0x1c340e0) #5 std::__1::__wrap_iter<std::__1::pair<unsigned long, int>*> std::__1::vector<std::__1::pair<unsigned long, int>, std::__1::allocator<std::__1::pair<unsigned long, int> > >::emplace<unsigned long const&, int>(std::__1::__wrap_iter<std::__1::pair<unsigned long, int> const*>, unsigned long const&, int&&) buildtools/third_party/libc++/trunk/include/vector:1881 (cc_unittests+0x1c340e0) #6 unsafe_emplace<const unsigned long &, int> base/containers/flat_tree.h:953:22 (cc_unittests+0x1c9fbfa) #7 operator[] base/containers/flat_map.h:293 (cc_unittests+0x1c9fbfa) #8 cc::FakePaintImageGenerator::GetPixels(SkImageInfo const&, void*, unsigned long, unsigned long, int, unsigned int) cc/test/fake_paint_image_generator.cc (cc_unittests+0x1c9fbfa) #9 DecodeFromGenerator cc/paint/paint_image.cc:220:34 (cc_unittests+0x1d2ab6c) #10 cc::PaintImage::Decode(void*, SkImageInfo*, sk_sp<SkColorSpace>, unsigned long, int) const cc/paint/paint_image.cc:188 (cc_unittests+0x1d2ab6c) #11 cc::SoftwareImageDecodeCacheUtils::DoDecodeImage(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, SkColorType, int) cc/tiles/software_image_decode_cache_utils.cc:76:29 (cc_unittests+0x1bda589) #12 cc::SoftwareImageDecodeCache::DecodeImageIfNecessary(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCacheUtils::CacheEntry*) cc/tiles/software_image_decode_cache.cc:357:25 (cc_unittests+0x1bd4fa9) #13 cc::SoftwareImageDecodeCache::DecodeImageInTask(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCache::DecodeTaskType) cc/tiles/software_image_decode_cache.cc:319:3 (cc_unittests+0x1bd4ba9) #14 cc::(anonymous namespace)::SoftwareImageDecodeTaskImpl::RunOnWorkerThread() cc/tiles/software_image_decode_cache.cc:79:13 (cc_unittests+0x1bd7602) #15 cc::SingleThreadTaskGraphRunner::RunTaskWithLockAcquired() cc/raster/single_thread_task_graph_runner.cc:157:28 (cc_unittests+0x1b7d2fe) #16 Run cc/raster/single_thread_task_graph_runner.cc:120:10 (cc_unittests+0x1b7d54f) #17 non-virtual thunk to cc::SingleThreadTaskGraphRunner::Run() cc/raster/single_thread_task_graph_runner.cc (cc_unittests+0x1b7d54f) #18 base::DelegateSimpleThread::Run() base/threading/simple_thread.cc:98:13 (cc_unittests+0x201e828) #19 base::SimpleThread::ThreadMain() base/threading/simple_thread.cc:75:3 (cc_unittests+0x201e68b) #20 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Thread T3 'Compositor' (tid=29202, running) created by main thread at: #0 pthread_create /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:989:3 (cc_unittests+0x946bfb) #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:120:13 (cc_unittests+0x205c3b7) #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:246:10 (cc_unittests+0x205c2b5) #3 base::Thread::StartWithOptions(base::Thread::Options const&) base/threading/thread.cc:119:15 (cc_unittests+0x201efb0) #4 base::Thread::Start() base/threading/thread.cc:77:10 (cc_unittests+0x201ec23) #5 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1046:5 (cc_unittests+0x1cb3ba3) #6 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #7 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #8 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #9 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #10 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #11 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #12 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #13 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #14 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #15 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #16 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #17 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #18 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #19 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #20 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #21 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #22 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #23 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) Thread T19 'TestTaskGraphRu' (tid=29204, running) created by main thread at: #0 pthread_create /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:989:3 (cc_unittests+0x946bfb) #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:120:13 (cc_unittests+0x205c3b7) #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:246:10 (cc_unittests+0x205c2b5) #3 base::SimpleThread::StartAsync() base/threading/simple_thread.cc:51:13 (cc_unittests+0x201e553) #4 cc::SingleThreadTaskGraphRunner::Start(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, base::SimpleThread::Options const&) cc/raster/single_thread_task_graph_runner.cc:32:12 (cc_unittests+0x1b7c994) #5 cc::TestTaskGraphRunner::TestTaskGraphRunner() cc/test/test_task_graph_runner.cc:10:3 (cc_unittests+0x1cde7b6) #6 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1054:32 (cc_unittests+0x1cb3cd8) #7 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #8 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #9 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #10 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #11 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #12 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #13 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #14 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #15 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #16 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #17 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #18 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #19 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #20 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #21 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #22 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #23 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #24 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) SUMMARY: ThreadSanitizer: data race buildtools/third_party/libc++/trunk/include/__functional_base:66:25 in operator()<const unsigned long &, const unsigned long &> ================== ================== WARNING: ThreadSanitizer: data race (pid=28321) Read of size 4 at 0x7b100004c758 by thread T3: #0 cc::FakePaintImageGenerator::GetPixels(SkImageInfo const&, void*, unsigned long, unsigned long, int, unsigned int) cc/test/fake_paint_image_generator.cc:64:39 (cc_unittests+0x1c9fc15) #1 cc::SkiaPaintImageGenerator::onGetPixels(SkImageInfo const&, void*, unsigned long, SkImageGenerator::Options const&) cc/paint/skia_paint_image_generator.cc:30:34 (cc_unittests+0x1d5b420) #2 SkImageGenerator::getPixels(SkImageInfo const&, void*, unsigned long) third_party/skia/src/core/SkImageGenerator.cpp:30:18 (cc_unittests+0x15fad37) #3 generate_pixels(SkImageGenerator*, SkPixmap const&, int, int) third_party/skia/src/image/SkImage_Lazy.cpp:168:15 (cc_unittests+0x16d1d5d) #4 SkImage_Lazy::getROPixels(SkBitmap*, SkImage::CachingHint) const third_party/skia/src/image/SkImage_Lazy.cpp:197:14 (cc_unittests+0x16d193b) #5 SkBaseDevice::drawImageRect(SkImage const*, SkRect const*, SkRect const&, SkPaint const&, SkCanvas::SrcRectConstraint) third_party/skia/src/core/SkDevice.cpp:145:23 (cc_unittests+0x15c50cf) #6 SkCanvas::onDrawImage(SkImage const*, float, float, SkPaint const*) third_party/skia/src/core/SkCanvas.cpp:2371:27 (cc_unittests+0x15ac169) #7 SkCanvas::drawImage(SkImage const*, float, float, SkPaint const*) third_party/skia/src/core/SkCanvas.cpp:1808:11 (cc_unittests+0x15a6bd9) #8 cc::DrawImageOp::RasterWithFlags(cc::DrawImageOp const*, cc::PaintFlags const*, SkCanvas*, cc::PlaybackParams const&) cc/paint/paint_op_buffer.cc:1248:11 (cc_unittests+0x1d2f859) #9 RasterWithFlags cc/paint/paint_op_buffer.cc:125:5 (cc_unittests+0x1d36310) #10 operator() cc/paint/paint_op_buffer.cc:160 (cc_unittests+0x1d36310) #11 cc::$_36::__invoke(cc::PaintOp const*, cc::PaintFlags const*, SkCanvas*, cc::PlaybackParams const&) cc/paint/paint_op_buffer.cc:160 (cc_unittests+0x1d36310) #12 RasterWithFlags cc/paint/paint_op_buffer.cc:2082:3 (cc_unittests+0x1d34098) #13 cc::PaintOpBuffer::Playback(SkCanvas*, cc::PlaybackParams const&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const*) const cc/paint/paint_op_buffer.cc:2439 (cc_unittests+0x1d34098) #14 cc::DisplayItemList::Raster(SkCanvas*, cc::ImageProvider*) const cc/paint/display_item_list.cc:81:20 (cc_unittests+0x1d0f3ef) #15 viz::SoftwareRenderer::DrawPictureQuad(viz::PictureDrawQuad const*) components/viz/service/display/software_renderer.cc:386:28 (cc_unittests+0x1e5c1f5) #16 viz::SoftwareRenderer::DoDrawQuad(viz::DrawQuad const*, gfx::QuadF const*) components/viz/service/display/software_renderer.cc:290:7 (cc_unittests+0x1e5bcdb) #17 viz::DirectRenderer::DrawRenderPass(viz::RenderPass const*) components/viz/service/display/direct_renderer.cc:703:5 (cc_unittests+0x1d78be4) #18 viz::DirectRenderer::DrawRenderPassAndExecuteCopyRequests(viz::RenderPass*) components/viz/service/display/direct_renderer.cc:567:5 (cc_unittests+0x1d77b0a) #19 viz::DirectRenderer::DrawFrame(std::__1::vector<std::__1::unique_ptr<viz::RenderPass, std::__1::default_delete<viz::RenderPass> >, std::__1::allocator<std::__1::unique_ptr<viz::RenderPass, std::__1::default_delete<viz::RenderPass> > > >*, float, gfx::Size const&) components/viz/service/display/direct_renderer.cc:421:5 (cc_unittests+0x1d7778c) #20 viz::Display::DrawAndSwap() components/viz/service/display/display.cc:491:16 (cc_unittests+0x1e45e92) #21 viz::DisplayScheduler::DrawAndSwap() components/viz/service/display/display_scheduler.cc:216:27 (cc_unittests+0x1de3e3d) #22 viz::DisplayScheduler::AttemptDrawAndSwap() components/viz/service/display/display_scheduler.cc:488:14 (cc_unittests+0x1de3357) #23 viz::DisplayScheduler::OnBeginFrameDeadline() components/viz/service/display/display_scheduler.cc:504:19 (cc_unittests+0x1de2a24) #24 Invoke<void (viz::DisplayScheduler::*)(), const base::WeakPtr<viz::DisplayScheduler> &> base/bind_internal.h:499:12 (cc_unittests+0x1de595a) #25 MakeItSo<void (viz::DisplayScheduler::*const &)(), const base::WeakPtr<viz::DisplayScheduler> &> base/bind_internal.h:619 (cc_unittests+0x1de595a) #26 RunImpl<void (viz::DisplayScheduler::*const &)(), const std::__1::tuple<base::WeakPtr<viz::DisplayScheduler> > &, 0> base/bind_internal.h:672 (cc_unittests+0x1de595a) #27 base::internal::Invoker<base::internal::BindState<void (viz::DisplayScheduler::*)(), base::WeakPtr<viz::DisplayScheduler> >, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:654 (cc_unittests+0x1de595a) #28 Run base/callback.h:97:12 (cc_unittests+0x1b2d80d) #29 void base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::ForwardOnce<>() base/cancelable_callback.h:126 (cc_unittests+0x1b2d80d) #30 Invoke<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > >> base/bind_internal.h:499:12 (cc_unittests+0x1b2d8ca) #31 MakeItSo<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > >> base/bind_internal.h:619 (cc_unittests+0x1b2d8ca) #32 RunImpl<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), std::__1::tuple<base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > > >, 0> base/bind_internal.h:672 (cc_unittests+0x1b2d8ca) #33 base::internal::Invoker<base::internal::BindState<void (base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::OnceCallback<void ()> > > >, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x1b2d8ca) #34 Run base/callback.h:97:12 (cc_unittests+0x1fde8c5) #35 base::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/task/common/task_annotator.cc:143 (cc_unittests+0x1fde8c5) #36 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:368:23 (cc_unittests+0x1ff36f8) #37 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:219:7 (cc_unittests+0x1ff32bd) #38 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff3c1e) #39 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:39:55 (cc_unittests+0x1fb9731) #40 Run base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:466:12 (cc_unittests+0x1ff4409) #41 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc (cc_unittests+0x1ff4409) #42 base::RunLoop::RunWithTimeout(base::TimeDelta) base/run_loop.cc:161:14 (cc_unittests+0x1fd4280) #43 base::RunLoop::Run() base/run_loop.cc:129:3 (cc_unittests+0x1fd4073) #44 base::Thread::Run(base::RunLoop*) base/threading/thread.cc:242:13 (cc_unittests+0x201f299) #45 base::Thread::ThreadMain() base/threading/thread.cc:312:3 (cc_unittests+0x201f551) #46 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Previous write of size 8 at 0x7b100004c758 by thread T19: #0 operator new(unsigned long) /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:64:3 (cc_unittests+0x9b58db) #1 __libcpp_allocate buildtools/third_party/libc++/trunk/include/new:238:10 (cc_unittests+0x1c340e0) #2 allocate buildtools/third_party/libc++/trunk/include/memory:1813 (cc_unittests+0x1c340e0) #3 allocate buildtools/third_party/libc++/trunk/include/memory:1546 (cc_unittests+0x1c340e0) #4 __split_buffer buildtools/third_party/libc++/trunk/include/__split_buffer:311 (cc_unittests+0x1c340e0) #5 std::__1::__wrap_iter<std::__1::pair<unsigned long, int>*> std::__1::vector<std::__1::pair<unsigned long, int>, std::__1::allocator<std::__1::pair<unsigned long, int> > >::emplace<unsigned long const&, int>(std::__1::__wrap_iter<std::__1::pair<unsigned long, int> const*>, unsigned long const&, int&&) buildtools/third_party/libc++/trunk/include/vector:1881 (cc_unittests+0x1c340e0) #6 unsafe_emplace<const unsigned long &, int> base/containers/flat_tree.h:953:22 (cc_unittests+0x1c9fbfa) #7 operator[] base/containers/flat_map.h:293 (cc_unittests+0x1c9fbfa) #8 cc::FakePaintImageGenerator::GetPixels(SkImageInfo const&, void*, unsigned long, unsigned long, int, unsigned int) cc/test/fake_paint_image_generator.cc (cc_unittests+0x1c9fbfa) #9 DecodeFromGenerator cc/paint/paint_image.cc:220:34 (cc_unittests+0x1d2ab6c) #10 cc::PaintImage::Decode(void*, SkImageInfo*, sk_sp<SkColorSpace>, unsigned long, int) const cc/paint/paint_image.cc:188 (cc_unittests+0x1d2ab6c) #11 cc::SoftwareImageDecodeCacheUtils::DoDecodeImage(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, SkColorType, int) cc/tiles/software_image_decode_cache_utils.cc:76:29 (cc_unittests+0x1bda589) #12 cc::SoftwareImageDecodeCache::DecodeImageIfNecessary(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCacheUtils::CacheEntry*) cc/tiles/software_image_decode_cache.cc:357:25 (cc_unittests+0x1bd4fa9) #13 cc::SoftwareImageDecodeCache::DecodeImageInTask(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCache::DecodeTaskType) cc/tiles/software_image_decode_cache.cc:319:3 (cc_unittests+0x1bd4ba9) #14 cc::(anonymous namespace)::SoftwareImageDecodeTaskImpl::RunOnWorkerThread() cc/tiles/software_image_decode_cache.cc:79:13 (cc_unittests+0x1bd7602) #15 cc::SingleThreadTaskGraphRunner::RunTaskWithLockAcquired() cc/raster/single_thread_task_graph_runner.cc:157:28 (cc_unittests+0x1b7d2fe) #16 Run cc/raster/single_thread_task_graph_runner.cc:120:10 (cc_unittests+0x1b7d54f) #17 non-virtual thunk to cc::SingleThreadTaskGraphRunner::Run() cc/raster/single_thread_task_graph_runner.cc (cc_unittests+0x1b7d54f) #18 base::DelegateSimpleThread::Run() base/threading/simple_thread.cc:98:13 (cc_unittests+0x201e828) #19 base::SimpleThread::ThreadMain() base/threading/simple_thread.cc:75:3 (cc_unittests+0x201e68b) #20 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Location is heap block of size 64 at 0x7b100004c740 allocated by thread T19: #0 operator new(unsigned long) /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:64:3 (cc_unittests+0x9b58db) #1 __libcpp_allocate buildtools/third_party/libc++/trunk/include/new:238:10 (cc_unittests+0x1c340e0) #2 allocate buildtools/third_party/libc++/trunk/include/memory:1813 (cc_unittests+0x1c340e0) #3 allocate buildtools/third_party/libc++/trunk/include/memory:1546 (cc_unittests+0x1c340e0) #4 __split_buffer buildtools/third_party/libc++/trunk/include/__split_buffer:311 (cc_unittests+0x1c340e0) #5 std::__1::__wrap_iter<std::__1::pair<unsigned long, int>*> std::__1::vector<std::__1::pair<unsigned long, int>, std::__1::allocator<std::__1::pair<unsigned long, int> > >::emplace<unsigned long const&, int>(std::__1::__wrap_iter<std::__1::pair<unsigned long, int> const*>, unsigned long const&, int&&) buildtools/third_party/libc++/trunk/include/vector:1881 (cc_unittests+0x1c340e0) #6 unsafe_emplace<const unsigned long &, int> base/containers/flat_tree.h:953:22 (cc_unittests+0x1c9fbfa) #7 operator[] base/containers/flat_map.h:293 (cc_unittests+0x1c9fbfa) #8 cc::FakePaintImageGenerator::GetPixels(SkImageInfo const&, void*, unsigned long, unsigned long, int, unsigned int) cc/test/fake_paint_image_generator.cc (cc_unittests+0x1c9fbfa) #9 DecodeFromGenerator cc/paint/paint_image.cc:220:34 (cc_unittests+0x1d2ab6c) #10 cc::PaintImage::Decode(void*, SkImageInfo*, sk_sp<SkColorSpace>, unsigned long, int) const cc/paint/paint_image.cc:188 (cc_unittests+0x1d2ab6c) #11 cc::SoftwareImageDecodeCacheUtils::DoDecodeImage(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, SkColorType, int) cc/tiles/software_image_decode_cache_utils.cc:76:29 (cc_unittests+0x1bda589) #12 cc::SoftwareImageDecodeCache::DecodeImageIfNecessary(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCacheUtils::CacheEntry*) cc/tiles/software_image_decode_cache.cc:357:25 (cc_unittests+0x1bd4fa9) #13 cc::SoftwareImageDecodeCache::DecodeImageInTask(cc::SoftwareImageDecodeCacheUtils::CacheKey const&, cc::PaintImage const&, cc::SoftwareImageDecodeCache::DecodeTaskType) cc/tiles/software_image_decode_cache.cc:319:3 (cc_unittests+0x1bd4ba9) #14 cc::(anonymous namespace)::SoftwareImageDecodeTaskImpl::RunOnWorkerThread() cc/tiles/software_image_decode_cache.cc:79:13 (cc_unittests+0x1bd7602) #15 cc::SingleThreadTaskGraphRunner::RunTaskWithLockAcquired() cc/raster/single_thread_task_graph_runner.cc:157:28 (cc_unittests+0x1b7d2fe) #16 Run cc/raster/single_thread_task_graph_runner.cc:120:10 (cc_unittests+0x1b7d54f) #17 non-virtual thunk to cc::SingleThreadTaskGraphRunner::Run() cc/raster/single_thread_task_graph_runner.cc (cc_unittests+0x1b7d54f) #18 base::DelegateSimpleThread::Run() base/threading/simple_thread.cc:98:13 (cc_unittests+0x201e828) #19 base::SimpleThread::ThreadMain() base/threading/simple_thread.cc:75:3 (cc_unittests+0x201e68b) #20 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:81:13 (cc_unittests+0x205c874) Thread T3 'Compositor' (tid=29202, running) created by main thread at: #0 pthread_create /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:989:3 (cc_unittests+0x946bfb) #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:120:13 (cc_unittests+0x205c3b7) #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:246:10 (cc_unittests+0x205c2b5) #3 base::Thread::StartWithOptions(base::Thread::Options const&) base/threading/thread.cc:119:15 (cc_unittests+0x201efb0) #4 base::Thread::Start() base/threading/thread.cc:77:10 (cc_unittests+0x201ec23) #5 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1046:5 (cc_unittests+0x1cb3ba3) #6 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #7 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #8 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #9 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #10 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #11 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #12 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #13 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #14 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #15 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #16 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #17 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #18 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #19 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #20 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #21 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #22 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #23 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) Thread T19 'TestTaskGraphRu' (tid=29204, running) created by main thread at: #0 pthread_create /b/swarming/w/ir/k/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:989:3 (cc_unittests+0x946bfb) #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:120:13 (cc_unittests+0x205c3b7) #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:246:10 (cc_unittests+0x205c2b5) #3 base::SimpleThread::StartAsync() base/threading/simple_thread.cc:51:13 (cc_unittests+0x201e553) #4 cc::SingleThreadTaskGraphRunner::Start(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, base::SimpleThread::Options const&) cc/raster/single_thread_task_graph_runner.cc:32:12 (cc_unittests+0x1b7c994) #5 cc::TestTaskGraphRunner::TestTaskGraphRunner() cc/test/test_task_graph_runner.cc:10:3 (cc_unittests+0x1cde7b6) #6 cc::LayerTreeTest::RunTest(cc::CompositorMode) cc/test/layer_tree_test.cc:1054:32 (cc_unittests+0x1cb3cd8) #7 cc::(anonymous namespace)::LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw_RunMultiThread_DelegatingRenderer_Test::TestBody() cc/trees/layer_tree_host_unittest.cc:8699:1 (cc_unittests+0x12fd437) #8 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x19f37bf) #9 testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc:2522 (cc_unittests+0x19f37bf) #10 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2698:11 (cc_unittests+0x19f4778) #11 testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:2828:28 (cc_unittests+0x19f5346) #12 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5285:44 (cc_unittests+0x1a076f6) #13 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/src/googletest/src/gtest.cc (cc_unittests+0x1a06b59) #14 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc:4873 (cc_unittests+0x1a06b59) #15 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2453:46 (cc_unittests+0x1ce5d82) #16 base::TestSuite::Run() base/test/test_suite.cc:316 (cc_unittests+0x1ce5d82) #17 Invoke<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:499:12 (cc_unittests+0x155e268) #18 MakeItSo<int (base::TestSuite::*)(), cc::CCTestSuite *> base/bind_internal.h:599 (cc_unittests+0x155e268) #19 RunImpl<int (base::TestSuite::*)(), std::__1::tuple<base::internal::UnretainedWrapper<cc::CCTestSuite> >, 0> base/bind_internal.h:672 (cc_unittests+0x155e268) #20 base::internal::Invoker<base::internal::BindState<int (base::TestSuite::*)(), base::internal::UnretainedWrapper<cc::CCTestSuite> >, int ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:641 (cc_unittests+0x155e268) #21 Run base/callback.h:97:12 (cc_unittests+0x1ce964d) #22 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:158 (cc_unittests+0x1ce964d) #23 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:508:10 (cc_unittests+0x1ce94b0) #24 main cc/test/run_all_unittests.cc:15:10 (cc_unittests+0x155e1ba) SUMMARY: ThreadSanitizer: data race cc/test/fake_paint_image_generator.cc:64:39 in cc::FakePaintImageGenerator::GetPixels(SkImageInfo const&, void*, unsigned long, unsigned long, int, unsigned int) ================== [ OK ] LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw.RunMultiThread_DelegatingRenderer (5444 ms) [----------] 1 test from LayerTreeHostTestImageAnimationSynchronousSchedulingSoftwareDraw (5445 ms total) [----------] 1 test from LayerTreeHostTestImageDecodingHints [ RUN ] LayerTreeHostTestImageDecodingHints.RunMultiThread_DelegatingRenderer [ OK ] LayerTreeHostTestImageDecodingHints.RunMultiThread_DelegatingRenderer (78 ms) [----------] 1 test from LayerTreeHostTestImageDecodingHints (78 ms total) [----------] 1 test from LayerTreeHostTestCheckerboardUkm [ RUN ] LayerTreeHostTestCheckerboardUkm.RunMultiThread_DelegatingRenderer [ OK ] LayerTreeHostTestCheckerboardUkm.RunMultiThread_DelegatingRenderer (40 ms) [----------] 1 test from LayerTreeHostTestCheckerboardUkm (42 ms total) [----------] 1 test from DontUpdateLayersWithEmptyBounds [ RUN ] DontUpdateLayersWithEmptyBounds.RunSingleThread_DelegatingRenderer [ OK ] DontUpdateLayersWithEmptyBounds.RunSingleThread_DelegatingRenderer (44 ms) [----------] 1 test from DontUpdateLayersWithEmptyBounds (44 ms total) [----------] Global test environment tear-down [==========] 10 tests from 10 test suites ran. (18919 ms total) [ PASSED ] 10 tests. ThreadSanitizer: reported 7 warnings [ RUN ] LayerTreeHostTestImageAnimationPaintFilter.RunMultiThread_DelegatingRenderer [ OK ] LayerTreeHostTestImageAnimationPaintFilter.RunMultiThread_DelegatingRenderer (2385 ms) ================================================================================