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

Issue 659872 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 638862
Owner: ----
Closed: Oct 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Data race between gpu::CommandBufferHelper::InsertToken() and gpu::CommandBufferHelper::WaitForToken(int)

Project Member Reported by glider@chromium.org, Oct 27 2016

Issue description

See https://build.chromium.org/p/chromium.memory.full/builders/Linux%20TSan%20Tests/builds/3021/steps/content_browsertests%20on%20Ubuntu-12.04/logs/stdio:

[ RUN      ] SingleProcessMemoryTracingTest.RendererInitiatedSingleDump
[10217:10217:1026/183310:3519222722:WARNING:audio_manager.cc(317)] Multiple instances of AudioManager detected
[10217:10217:1026/183310:3519222959:WARNING:audio_manager.cc(278)] Multiple instances of AudioManager detected
Xlib:  extension "RANDR" missing on display ":9".
[10217:10342:1026/183310:3519719789:WARNING:histograms.cc(40)] Started multiple compositor clients (Browser, Renderer) in one process. Some metrics will be disabled.
==================
WARNING: ThreadSanitizer: data race (pid=10217)
  Write of size 4 at 0x7b180000a6b0 by thread T15 (mutexes: write M246144678812999184):
    #0 gpu::CommandBufferHelper::InsertToken() gpu/command_buffer/client/cmd_buffer_helper.cc:243:10 (content_browsertests+0x000000c7714a)
    #1 gpu::gles2::QueryTracker::Query::End(gpu::gles2::GLES2Implementation*) gpu/command_buffer/client/query_tracker.cc:164:31 (content_browsertests+0x0000039194ac)
    #2 gpu::gles2::QueryTracker::EndQuery(unsigned int, gpu::gles2::GLES2Implementation*) gpu/command_buffer/client/query_tracker.cc:344:22 (content_browsertests+0x00000391a9ed)
    #3 gpu::gles2::GLES2Implementation::EndQueryEXT(unsigned int) gpu/command_buffer/client/gles2_implementation.cc:5571:23 (content_browsertests+0x0000038e7453)
    #4 cc::OneCopyRasterBufferProvider::CopyOnWorkerThread(cc::StagingBuffer*, cc::ResourceProvider::ScopedWriteLockGL*, gpu::SyncToken const&, cc::RasterSource const*, unsigned long, unsigned long) cc/raster/one_copy_raster_buffer_provider.cc:369:9 (content_browsertests+0x0000036ffe9d)
    #5 cc::OneCopyRasterBufferProvider::PlaybackAndCopyOnWorkerThread(cc::Resource const*, cc::ResourceProvider::ScopedWriteLockGL*, gpu::SyncToken const&, cc::RasterSource const*, gfx::Rect const&, gfx::Rect const&, float, cc::RasterSource::PlaybackSettings const&, unsigned long, unsigned long) cc/raster/one_copy_raster_buffer_provider.cc:200:3 (content_browsertests+0x0000036feda1)
    #6 cc::OneCopyRasterBufferProvider::RasterBufferImpl::Playback(cc::RasterSource const*, gfx::Rect const&, gfx::Rect const&, unsigned long, float, cc::RasterSource::PlaybackSettings const&) cc/raster/one_copy_raster_buffer_provider.cc:61:12 (content_browsertests+0x0000036feb07)
    #7 cc::(anonymous namespace)::RasterTaskImpl::RunOnWorkerThread() cc/tiles/tile_manager.cc:129:21 (content_browsertests+0x0000036427c1)
    #8 cc::SingleThreadTaskGraphRunner::RunTaskWithLockAcquired() cc/raster/single_thread_task_graph_runner.cc:154:28 (content_browsertests+0x000003616483)
    #9 Run cc/raster/single_thread_task_graph_runner.cc:117:10 (content_browsertests+0x0000036166ef)
    #10 non-virtual thunk to cc::SingleThreadTaskGraphRunner::Run() cc/raster/single_thread_task_graph_runner.cc:113 (content_browsertests+0x0000036166ef)
    #11 base::DelegateSimpleThread::Run() base/threading/simple_thread.cc:92:13 (content_browsertests+0x0000028932b8)
    #12 base::SimpleThread::ThreadMain() base/threading/simple_thread.cc:68:3 (content_browsertests+0x000002893032)
    #13 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:71:13 (content_browsertests+0x00000288d42d)

  Previous read of size 4 at 0x7b180000a6b0 by main thread:
    #0 gpu::CommandBufferHelper::WaitForToken(int) gpu/command_buffer/client/cmd_buffer_helper.cc:266:15 (content_browsertests+0x000000c7730f)
    #1 gpu::RingBuffer::FreeOldestBlock() gpu/command_buffer/client/ring_buffer.cc:44:14 (content_browsertests+0x000000c7af4e)
    #2 gpu::RingBuffer::GetLargestFreeSizeNoWaiting() gpu/command_buffer/client/ring_buffer.cc:153:5 (content_browsertests+0x000000c7b50d)
    #3 gpu::RingBuffer::GetTotalFreeSizeNoWaiting() gpu/command_buffer/client/ring_buffer.cc:174:36 (content_browsertests+0x000000c7bbee)
    #4 gpu::TransferBuffer::GetFreeSize() const gpu/command_buffer/client/transfer_buffer.cc:96:39 (content_browsertests+0x000000c7dcbc)
    #5 gpu::gles2::GLES2Implementation::OnMemoryDump(base::trace_event::MemoryDumpArgs const&, base::trace_event::ProcessMemoryDump*) gpu/command_buffer/client/gles2_implementation.cc:456:37 (content_browsertests+0x0000038cabea)
    #6 non-virtual thunk to gpu::gles2::GLES2Implementation::OnMemoryDump(base::trace_event::MemoryDumpArgs const&, base::trace_event::ProcessMemoryDump*) gpu/command_buffer/client/gles2_implementation.cc:438:27 (content_browsertests+0x0000038cac94)
    #7 base::trace_event::MemoryDumpManager::InvokeOnMemoryDump(base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*) base/trace_event/memory_dump_manager.cc:595:52 (content_browsertests+0x00000289fa9d)
    #8 base::trace_event::MemoryDumpManager::SetupNextMemoryDump(std::__1::unique_ptr<base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState, std::__1::default_delete<base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState> >) base/trace_event/memory_dump_manager.cc:506:12 (content_browsertests+0x00000289ec0f)
    #9 base::trace_event::MemoryDumpManager::InvokeOnMemoryDump(base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*) base/trace_event/memory_dump_manager.cc:601:3 (content_browsertests+0x00000289f987)
    #10 Invoke<base::trace_event::MemoryDumpManager *, base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState *> base/bind_internal.h:214:12 (content_browsertests+0x0000028a1fd6)
    #11 MakeItSo<void (base::trace_event::MemoryDumpManager::*const &)(base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState *), base::trace_event::MemoryDumpManager *, base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState *> base/bind_internal.h:285 (content_browsertests+0x0000028a1fd6)
    #12 RunImpl<void (base::trace_event::MemoryDumpManager::*const &)(base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState *), const std::__1::tuple<base::internal::UnretainedWrapper<base::trace_event::MemoryDumpManager>, base::internal::UnretainedWrapper<base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState> > &, 0, 1> base/bind_internal.h:361 (content_browsertests+0x0000028a1fd6)
    #13 base::internal::Invoker<base::internal::BindState<void (base::trace_event::MemoryDumpManager::*)(base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*), base::internal::UnretainedWrapper<base::trace_event::MemoryDumpManager>, base::internal::UnretainedWrapper<base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState> >, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:339 (content_browsertests+0x0000028a1fd6)
    #14 Run base/callback.h:47:12 (content_browsertests+0x0000028d625a)
    #15 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/debug/task_annotator.cc:52 (content_browsertests+0x0000028d625a)
    #16 base::MessageLoop::RunTask(base::PendingTask*) base/message_loop/message_loop.cc:413:19 (content_browsertests+0x00000283bcd9)
    #17 base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) base/message_loop/message_loop.cc:422:5 (content_browsertests+0x00000283c1dd)
    #18 base::MessageLoop::DoWork() base/message_loop/message_loop.cc:515:13 (content_browsertests+0x00000283c8f4)
    #19 base::MessagePumpGlib::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_glib.cc:313:49 (content_browsertests+0x000002840e0b)
    #20 base::MessageLoop::RunHandler() base/message_loop/message_loop.cc:378:10 (content_browsertests+0x00000283b8bb)
    #21 base::RunLoop::Run() base/run_loop.cc:35:10 (content_browsertests+0x000002866c39)
    #22 RequestGlobalDumpAndWait content/browser/tracing/memory_tracing_browsertest.cc:137:14 (content_browsertests+0x000000913d39)
    #23 content::SingleProcessMemoryTracingTest_RendererInitiatedSingleDump_Test::RunTestOnMainThread() content/browser/tracing/memory_tracing_browsertest.cc:198 (content_browsertests+0x000000913d39)
    #24 content::ContentBrowserTest::RunTestOnMainThreadLoop() content/public/test/content_browser_test.cc:138:3 (content_browsertests+0x0000023d8338)
    #25 content::BrowserTestBase::ProxyRunTestOnMainThreadLoop() content/public/test/browser_test_base.cc:336:3 (content_browsertests+0x0000023de8e5)
    #26 Invoke<content::BrowserTestBase *> base/bind_internal.h:214:12 (content_browsertests+0x0000023df435)
    #27 MakeItSo<void (content::BrowserTestBase::*const &)(), content::BrowserTestBase *> base/bind_internal.h:285 (content_browsertests+0x0000023df435)
    #28 RunImpl<void (content::BrowserTestBase::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<content::BrowserTestBase> > &, 0> base/bind_internal.h:361 (content_browsertests+0x0000023df435)
    #29 base::internal::Invoker<base::internal::BindState<void (content::BrowserTestBase::*)(), base::internal::UnretainedWrapper<content::BrowserTestBase> >, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:339 (content_browsertests+0x0000023df435)
    #30 Run base/callback.h:64:12 (content_browsertests+0x00000245c44f)
    #31 content::ShellBrowserMainParts::PreMainMessageLoopRun() content/shell/browser/shell_browser_main_parts.cc:191 (content_browsertests+0x00000245c44f)
    #32 content::BrowserMainLoop::PreMainMessageLoopRun() content/browser/browser_main_loop.cc:959:13 (content_browsertests+0x000001d8c049)
    #33 Invoke<content::BrowserMainLoop *> base/bind_internal.h:214:12 (content_browsertests+0x000001d8f475)
    #34 MakeItSo<int (content::BrowserMainLoop::*const &)(), content::BrowserMainLoop *> base/bind_internal.h:285 (content_browsertests+0x000001d8f475)
    #35 RunImpl<int (content::BrowserMainLoop::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<content::BrowserMainLoop> > &, 0> base/bind_internal.h:361 (content_browsertests+0x000001d8f475)
    #36 base::internal::Invoker<base::internal::BindState<int (content::BrowserMainLoop::*)(), base::internal::UnretainedWrapper<content::BrowserMainLoop> >, int ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:339 (content_browsertests+0x000001d8f475)
    #37 Run base/callback.h:64:12 (content_browsertests+0x00000220795a)
    #38 content::StartupTaskRunner::RunAllTasksNow() content/browser/startup_task_runner.cc:45 (content_browsertests+0x00000220795a)
    #39 content::BrowserMainLoop::CreateStartupTasks() content/browser/browser_main_loop.cc:849:25 (content_browsertests+0x000001d8a018)
    #40 content::BrowserMainRunnerImpl::Initialize(content::MainFunctionParams const&) content/browser/browser_main_runner.cc:140:17 (content_browsertests+0x000001d8fd42)
    #41 ShellBrowserMain(content::MainFunctionParams const&, std::__1::unique_ptr<content::BrowserMainRunner, std::__1::default_delete<content::BrowserMainRunner> > const&) content/shell/browser/shell_browser_main.cc:23:32 (content_browsertests+0x0000024375c7)
    #42 content::ShellMainDelegate::RunProcess(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&) content/shell/app/shell_main_delegate.cc:295:16 (content_browsertests+0x00000242a8c3)
    #43 content::RunNamedProcessTypeMain(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&, content::ContentMainDelegate*) content/app/content_main_runner.cc:395:35 (content_browsertests+0x000001cb0bbb)
    #44 content::ContentMainRunnerImpl::Run() content/app/content_main_runner.cc:776:12 (content_browsertests+0x000001cb18a7)
    #45 content::ContentMain(content::ContentMainParams const&) content/app/content_main.cc:20:28 (content_browsertests+0x000001ca89ee)
    #46 content::BrowserTestBase::SetUp() content/public/test/browser_test_base.cc:308:3 (content_browsertests+0x0000023de57b)
    #47 content::ContentBrowserTest::SetUp() content/public/test/content_browser_test.cc:94:20 (content_browsertests+0x0000023d81b6)
    #48 content::MemoryTracingTest::SetUp() content/browser/tracing/memory_tracing_browsertest.cc:101:25 (content_browsertests+0x00000091625e)
    #49 HandleExceptionsInMethodIfSupported<testing::Test, void> testing/gtest/src/gtest.cc:2458:12 (content_browsertests+0x0000025d5bbd)
    #50 testing::Test::Run() testing/gtest/src/gtest.cc:2470 (content_browsertests+0x0000025d5bbd)
    #51 testing::TestInfo::Run() testing/gtest/src/gtest.cc:2656:11 (content_browsertests+0x0000025d6d4d)
    #52 testing::TestCase::Run() testing/gtest/src/gtest.cc:2774:28 (content_browsertests+0x0000025d7626)
    #53 testing::internal::UnitTestImpl::RunAllTests() testing/gtest/src/gtest.cc:4647:43 (content_browsertests+0x0000025e0b06)
    #54 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> testing/gtest/src/gtest.cc:2458:12 (content_browsertests+0x0000025e04a9)
    #55 testing::UnitTest::Run() testing/gtest/src/gtest.cc:4255 (content_browsertests+0x0000025e04a9)
    #56 RUN_ALL_TESTS testing/gtest/include/gtest/gtest.h:2237:46 (content_browsertests+0x00000240b689)
    #57 base::TestSuite::Run() base/test/test_suite.cc:246 (content_browsertests+0x00000240b689)
    #58 content::ContentTestLauncherDelegate::RunTestSuite(int, char**) content/test/content_test_launcher.cc:105:48 (content_browsertests+0x0000023dd83b)
    #59 content::LaunchTests(content::TestLauncherDelegate*, int, int, char**) content/public/test/test_launcher.cc:520:31 (content_browsertests+0x0000023f83d4)
    #60 main content/test/content_test_launcher.cc:131:10 (content_browsertests+0x0000023dd7c2)

  Location is heap block of size 88 at 0x7b180000a680 allocated by main thread:
    #0 operator new(unsigned long) <null> (content_browsertests+0x000000511072)
    #1 content::ContextProviderCommandBuffer::BindToCurrentThread() content/common/gpu/client/context_provider_command_buffer.cc:268:25 (content_browsertests+0x000000ad06f5)
    #2 content::GpuProcessTransportFactory::EstablishedGpuChannel(base::WeakPtr<ui::Compositor>, bool, int, scoped_refptr<gpu::GpuChannelHost>) content/browser/compositor/gpu_process_transport_factory.cc:382:47 (content_browsertests+0x0000022df948)
    #3 void base::internal::FunctorTraits<void (content::GpuProcessTransportFactory::*)(base::WeakPtr<ui::Compositor>, bool, int, scoped_refptr<gpu::GpuChannelHost>), void>::Invoke<base::WeakPtr<content::GpuProcessTransportFactory> const&, base::WeakPtr<ui::Compositor> const&, bool const&, int const&, scoped_refptr<gpu::GpuChannelHost> >(void (content::GpuProcessTransportFactory::*)(base::WeakPtr<ui::Compositor>, bool, int, scoped_refptr<gpu::GpuChannelHost>), base::WeakPtr<content::GpuProcessTransportFactory> const&, base::WeakPtr<ui::Compositor> const&, bool const&, int const&, scoped_refptr<gpu::GpuChannelHost>&&) base/bind_internal.h:214:12 (content_browsertests+0x0000022e3085)
    #4 MakeItSo<void (content::GpuProcessTransportFactory::*const &)(base::WeakPtr<ui::Compositor>, bool, int, scoped_refptr<gpu::GpuChannelHost>), const base::WeakPtr<content::GpuProcessTransportFactory> &, const base::WeakPtr<ui::Compositor> &, const bool &, const int &, scoped_refptr<gpu::GpuChannelHost> > base/bind_internal.h:305:5 (content_browsertests+0x0000022e2f82)
    #5 RunImpl<void (content::GpuProcessTransportFactory::*const &)(base::WeakPtr<ui::Compositor>, bool, int, scoped_refptr<gpu::GpuChannelHost>), const std::__1::tuple<base::WeakPtr<content::GpuProcessTransportFactory>, base::WeakPtr<ui::Compositor>, bool, int> &, 0, 1, 2, 3> base/bind_internal.h:361 (content_browsertests+0x0000022e2f82)
    #6 base::internal::Invoker<base::internal::BindState<void (content::GpuProcessTransportFactory::*)(base::WeakPtr<ui::Compositor>, bool, int, scoped_refptr<gpu::GpuChannelHost>), base::WeakPtr<content::GpuProcessTransportFactory>, base::WeakPtr<ui::Compositor>, bool, int>, void (scoped_refptr<gpu::GpuChannelHost>)>::Run(base::internal::BindStateBase*, scoped_refptr<gpu::GpuChannelHost>&&) base/bind_internal.h:339 (content_browsertests+0x0000022e2f82)
    #7 Run base/callback.h:64:12 (content_browsertests+0x000001f0dbc3)
    #8 content::BrowserGpuChannelHostFactory::EstablishGpuChannel(base::Callback<void (scoped_refptr<gpu::GpuChannelHost>), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&) content/browser/gpu/browser_gpu_channel_host_factory.cc:292 (content_browsertests+0x000001f0dbc3)
    #9 non-virtual thunk to content::BrowserGpuChannelHostFactory::EstablishGpuChannel(base::Callback<void (scoped_refptr<gpu::GpuChannelHost>), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&) content/browser/gpu/browser_gpu_channel_host_factory.cc:274:36 (content_browsertests+0x000001f0dd24)
    #10 content::GpuProcessTransportFactory::CreateCompositorFrameSink(base::WeakPtr<ui::Compositor>) content/browser/compositor/gpu_process_transport_factory.cc:305:27 (content_browsertests+0x0000022deed5)
    #11 ui::Compositor::RequestNewCompositorFrameSink() ui/compositor/compositor.cc:472:23 (content_browsertests+0x0000026597ca)
    #12 cc::LayerTreeHostInProcess::RequestNewCompositorFrameSink() cc/trees/layer_tree_host_in_process.cc:533:12 (content_browsertests+0x000003659b5f)
    #13 cc::SingleThreadProxy::RequestNewCompositorFrameSink() cc/trees/single_thread_proxy.cc:118:21 (content_browsertests+0x00000369b3f0)
    #14 Invoke<const base::WeakPtr<cc::SingleThreadProxy> &> base/bind_internal.h:214:12 (content_browsertests+0x00000369ec17)
    #15 MakeItSo<void (cc::SingleThreadProxy::*const &)(), const base::WeakPtr<cc::SingleThreadProxy> &> base/bind_internal.h:305 (content_browsertests+0x00000369ec17)
    #16 RunImpl<void (cc::SingleThreadProxy::*const &)(), const std::__1::tuple<base::WeakPtr<cc::SingleThreadProxy> > &, 0> base/bind_internal.h:361 (content_browsertests+0x00000369ec17)
    #17 base::internal::Invoker<base::internal::BindState<void (cc::SingleThreadProxy::*)(), base::WeakPtr<cc::SingleThreadProxy> >, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:339 (content_browsertests+0x00000369ec17)
    #18 Run base/callback.h:64:12 (content_browsertests+0x000000cc210b)
    #19 base::CancelableCallback<void ()>::Forward() const base/cancelable_callback.h:110 (content_browsertests+0x000000cc210b)
    #20 Invoke<const base::WeakPtr<base::CancelableCallback<void ()> > &> base/bind_internal.h:234:12 (content_browsertests+0x000000cc21b7)
    #21 MakeItSo<void (base::CancelableCallback<void ()>::*const &)() const, const base::WeakPtr<base::CancelableCallback<void ()> > &> base/bind_internal.h:305 (content_browsertests+0x000000cc21b7)
    #22 RunImpl<void (base::CancelableCallback<void ()>::*const &)() const, const std::__1::tuple<base::WeakPtr<base::CancelableCallback<void ()> > > &, 0> base/bind_internal.h:361 (content_browsertests+0x000000cc21b7)
    #23 base::internal::Invoker<base::internal::BindState<void (base::CancelableCallback<void ()>::*)() const, base::WeakPtr<base::CancelableCallback<void ()> > >, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:339 (content_browsertests+0x000000cc21b7)
    #24 Run base/callback.h:47:12 (content_browsertests+0x0000028d625a)
    #25 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/debug/task_annotator.cc:52 (content_browsertests+0x0000028d625a)
    #26 base::MessageLoop::RunTask(base::PendingTask*) base/message_loop/message_loop.cc:413:19 (content_browsertests+0x00000283bcd9)
    #27 base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) base/message_loop/message_loop.cc:422:5 (content_browsertests+0x00000283c1dd)
    #28 base::MessageLoop::DoWork() base/message_loop/message_loop.cc:515:13 (content_browsertests+0x00000283c8f4)
    #29 base::MessagePumpGlib::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_glib.cc:313:49 (content_browsertests+0x000002840e0b)
    #30 base::MessageLoop::RunHandler() base/message_loop/message_loop.cc:378:10 (content_browsertests+0x00000283b8bb)
    #31 base::RunLoop::Run() base/run_loop.cc:35:10 (content_browsertests+0x000002866c39)
    #32 base::RunLoop::RunUntilIdle() base/run_loop.cc:43:3 (content_browsertests+0x000002866cf6)
    #33 content::ContentBrowserTest::RunTestOnMainThreadLoop() content/public/test/content_browser_test.cc:129:19 (content_browsertests+0x0000023d830c)
    #34 content::BrowserTestBase::ProxyRunTestOnMainThreadLoop() content/public/test/browser_test_base.cc:336:3 (content_browsertests+0x0000023de8e5)
    #35 Invoke<content::BrowserTestBase *> base/bind_internal.h:214:12 (content_browsertests+0x0000023df435)
    #36 MakeItSo<void (content::BrowserTestBase::*const &)(), content::BrowserTestBase *> base/bind_internal.h:285 (content_browsertests+0x0000023df435)
    #37 RunImpl<void (content::BrowserTestBase::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<content::BrowserTestBase> > &, 0> base/bind_internal.h:361 (content_browsertests+0x0000023df435)
    #38 base::internal::Invoker<base::internal::BindState<void (content::BrowserTestBase::*)(), base::internal::UnretainedWrapper<content::BrowserTestBase> >, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:339 (content_browsertests+0x0000023df435)
    #39 Run base/callback.h:64:12 (content_browsertests+0x00000245c44f)
    #40 content::ShellBrowserMainParts::PreMainMessageLoopRun() content/shell/browser/shell_browser_main_parts.cc:191 (content_browsertests+0x00000245c44f)
    #41 content::BrowserMainLoop::PreMainMessageLoopRun() content/browser/browser_main_loop.cc:959:13 (content_browsertests+0x000001d8c049)
    #42 Invoke<content::BrowserMainLoop *> base/bind_internal.h:214:12 (content_browsertests+0x000001d8f475)
    #43 MakeItSo<int (content::BrowserMainLoop::*const &)(), content::BrowserMainLoop *> base/bind_internal.h:285 (content_browsertests+0x000001d8f475)
    #44 RunImpl<int (content::BrowserMainLoop::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<content::BrowserMainLoop> > &, 0> base/bind_internal.h:361 (content_browsertests+0x000001d8f475)
    #45 base::internal::Invoker<base::internal::BindState<int (content::BrowserMainLoop::*)(), base::internal::UnretainedWrapper<content::BrowserMainLoop> >, int ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:339 (content_browsertests+0x000001d8f475)
    #46 Run base/callback.h:64:12 (content_browsertests+0x00000220795a)
    #47 content::StartupTaskRunner::RunAllTasksNow() content/browser/startup_task_runner.cc:45 (content_browsertests+0x00000220795a)
    #48 content::BrowserMainLoop::CreateStartupTasks() content/browser/browser_main_loop.cc:849:25 (content_browsertests+0x000001d8a018)
    #49 content::BrowserMainRunnerImpl::Initialize(content::MainFunctionParams const&) content/browser/browser_main_runner.cc:140:17 (content_browsertests+0x000001d8fd42)
    #50 ShellBrowserMain(content::MainFunctionParams const&, std::__1::unique_ptr<content::BrowserMainRunner, std::__1::default_delete<content::BrowserMainRunner> > const&) content/shell/browser/shell_browser_main.cc:23:32 (content_browsertests+0x0000024375c7)
    #51 content::ShellMainDelegate::RunProcess(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&) content/shell/app/shell_main_delegate.cc:295:16 (content_browsertests+0x00000242a8c3)
    #52 content::RunNamedProcessTypeMain(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&, content::ContentMainDelegate*) content/app/content_main_runner.cc:395:35 (content_browsertests+0x000001cb0bbb)
    #53 content::ContentMainRunnerImpl::Run() content/app/content_main_runner.cc:776:12 (content_browsertests+0x000001cb18a7)
    #54 content::ContentMain(content::ContentMainParams const&) content/app/content_main.cc:20:28 (content_browsertests+0x000001ca89ee)
    #55 content::BrowserTestBase::SetUp() content/public/test/browser_test_base.cc:308:3 (content_browsertests+0x0000023de57b)
    #56 content::ContentBrowserTest::SetUp() content/public/test/content_browser_test.cc:94:20 (content_browsertests+0x0000023d81b6)
    #57 content::MemoryTracingTest::SetUp() content/browser/tracing/memory_tracing_browsertest.cc:101:25 (content_browsertests+0x00000091625e)
    #58 HandleExceptionsInMethodIfSupported<testing::Test, void> testing/gtest/src/gtest.cc:2458:12 (content_browsertests+0x0000025d5bbd)
    #59 testing::Test::Run() testing/gtest/src/gtest.cc:2470 (content_browsertests+0x0000025d5bbd)
    #60 testing::TestInfo::Run() testing/gtest/src/gtest.cc:2656:11 (content_browsertests+0x0000025d6d4d)
    #61 testing::TestCase::Run() testing/gtest/src/gtest.cc:2774:28 (content_browsertests+0x0000025d7626)
    #62 testing::internal::UnitTestImpl::RunAllTests() testing/gtest/src/gtest.cc:4647:43 (content_browsertests+0x0000025e0b06)
    #63 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> testing/gtest/src/gtest.cc:2458:12 (content_browsertests+0x0000025e04a9)
    #64 testing::UnitTest::Run() testing/gtest/src/gtest.cc:4255 (content_browsertests+0x0000025e04a9)
    #65 RUN_ALL_TESTS testing/gtest/include/gtest/gtest.h:2237:46 (content_browsertests+0x00000240b689)
    #66 base::TestSuite::Run() base/test/test_suite.cc:246 (content_browsertests+0x00000240b689)
    #67 content::ContentTestLauncherDelegate::RunTestSuite(int, char**) content/test/content_test_launcher.cc:105:48 (content_browsertests+0x0000023dd83b)
    #68 content::LaunchTests(content::TestLauncherDelegate*, int, int, char**) content/public/test/test_launcher.cc:520:31 (content_browsertests+0x0000023f83d4)
    #69 main content/test/content_test_launcher.cc:131:10 (content_browsertests+0x0000023dd7c2)

  Mutex M246144678812999184 is already destroyed.

  Thread T15 'CompositorTileW' (tid=10271, running) created by main thread at:
    #0 pthread_create <null> (content_browsertests+0x0000004b2b65)
    #1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:110:13 (content_browsertests+0x00000288d0f7)
    #2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:191:10 (content_browsertests+0x00000288cff5)
    #3 base::SimpleThread::Start() base/threading/simple_thread.cc:35:13 (content_browsertests+0x000002892f13)
    #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:30:12 (content_browsertests+0x000003615a8d)
    #5 content::GpuProcessTransportFactory::GpuProcessTransportFactory() content/browser/compositor/gpu_process_transport_factory.cc:179:23 (content_browsertests+0x0000022de8c4)
    #6 content::ImageTransportFactory::Initialize() content/browser/compositor/image_transport_factory.cc:31:18 (content_browsertests+0x0000022e40f9)
    #7 content::BrowserMainLoop::BrowserThreadsStarted() content/browser/browser_main_loop.cc:1255:3 (content_browsertests+0x000001d8aef6)
    #8 Invoke<content::BrowserMainLoop *> base/bind_internal.h:214:12 (content_browsertests+0x000001d8f475)
    #9 MakeItSo<int (content::BrowserMainLoop::*const &)(), content::BrowserMainLoop *> base/bind_internal.h:285 (content_browsertests+0x000001d8f475)
    #10 RunImpl<int (content::BrowserMainLoop::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<content::BrowserMainLoop> > &, 0> base/bind_internal.h:361 (content_browsertests+0x000001d8f475)
    #11 base::internal::Invoker<base::internal::BindState<int (content::BrowserMainLoop::*)(), base::internal::UnretainedWrapper<content::BrowserMainLoop> >, int ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:339 (content_browsertests+0x000001d8f475)
    #12 Run base/callback.h:64:12 (content_browsertests+0x00000220795a)
    #13 content::StartupTaskRunner::RunAllTasksNow() content/browser/startup_task_runner.cc:45 (content_browsertests+0x00000220795a)
    #14 content::BrowserMainLoop::CreateStartupTasks() content/browser/browser_main_loop.cc:849:25 (content_browsertests+0x000001d8a018)
    #15 content::BrowserMainRunnerImpl::Initialize(content::MainFunctionParams const&) content/browser/browser_main_runner.cc:140:17 (content_browsertests+0x000001d8fd42)
    #16 ShellBrowserMain(content::MainFunctionParams const&, std::__1::unique_ptr<content::BrowserMainRunner, std::__1::default_delete<content::BrowserMainRunner> > const&) content/shell/browser/shell_browser_main.cc:23:32 (content_browsertests+0x0000024375c7)
    #17 content::ShellMainDelegate::RunProcess(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&) content/shell/app/shell_main_delegate.cc:295:16 (content_browsertests+0x00000242a8c3)
    #18 content::RunNamedProcessTypeMain(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&, content::ContentMainDelegate*) content/app/content_main_runner.cc:395:35 (content_browsertests+0x000001cb0bbb)
    #19 content::ContentMainRunnerImpl::Run() content/app/content_main_runner.cc:776:12 (content_browsertests+0x000001cb18a7)
    #20 content::ContentMain(content::ContentMainParams const&) content/app/content_main.cc:20:28 (content_browsertests+0x000001ca89ee)
    #21 content::BrowserTestBase::SetUp() content/public/test/browser_test_base.cc:308:3 (content_browsertests+0x0000023de57b)
    #22 content::ContentBrowserTest::SetUp() content/public/test/content_browser_test.cc:94:20 (content_browsertests+0x0000023d81b6)
    #23 content::MemoryTracingTest::SetUp() content/browser/tracing/memory_tracing_browsertest.cc:101:25 (content_browsertests+0x00000091625e)
    #24 HandleExceptionsInMethodIfSupported<testing::Test, void> testing/gtest/src/gtest.cc:2458:12 (content_browsertests+0x0000025d5bbd)
    #25 testing::Test::Run() testing/gtest/src/gtest.cc:2470 (content_browsertests+0x0000025d5bbd)
    #26 testing::TestInfo::Run() testing/gtest/src/gtest.cc:2656:11 (content_browsertests+0x0000025d6d4d)
    #27 testing::TestCase::Run() testing/gtest/src/gtest.cc:2774:28 (content_browsertests+0x0000025d7626)
    #28 testing::internal::UnitTestImpl::RunAllTests() testing/gtest/src/gtest.cc:4647:43 (content_browsertests+0x0000025e0b06)
    #29 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> testing/gtest/src/gtest.cc:2458:12 (content_browsertests+0x0000025e04a9)
    #30 testing::UnitTest::Run() testing/gtest/src/gtest.cc:4255 (content_browsertests+0x0000025e04a9)
    #31 RUN_ALL_TESTS testing/gtest/include/gtest/gtest.h:2237:46 (content_browsertests+0x00000240b689)
    #32 base::TestSuite::Run() base/test/test_suite.cc:246 (content_browsertests+0x00000240b689)
    #33 content::ContentTestLauncherDelegate::RunTestSuite(int, char**) content/test/content_test_launcher.cc:105:48 (content_browsertests+0x0000023dd83b)
    #34 content::LaunchTests(content::TestLauncherDelegate*, int, int, char**) content/public/test/test_launcher.cc:520:31 (content_browsertests+0x0000023f83d4)
    #35 main content/test/content_test_launcher.cc:131:10 (content_browsertests+0x0000023dd7c2)

SUMMARY: ThreadSanitizer: data race gpu/command_buffer/client/cmd_buffer_helper.cc:243:10 in gpu::CommandBufferHelper::InsertToken()
==================
 

Comment 1 by piman@chromium.org, Oct 27 2016

Mergedinto: 638862
Status: Duplicate (was: Untriaged)

Sign in to add a comment