WARNING: ThreadSanitizer: data race (pid=13262) Read of size 4 at 0x7fa31b6b7118 by main thread (mutexes: write M76625): #0 _freed_pool_get /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo-freed-pool-private.h:80:15 (libxul.so+0x0000045af9b5) #1 INT__moz_cairo_pattern_create_for_surface /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo-pattern.c:625 (libxul.so+0x0000045af9b5) #2 INT__moz_cairo_set_source_surface /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo.c:1033:15 (libxul.so+0x0000045e3253) #3 mozilla::gfx::DrawTargetCairo::CopySurfaceInternal(_cairo_surface*, mozilla::gfx::IntRectTyped const&, mozilla::gfx::IntPointTyped const&) /home/froydnj/src/gecko-dev.git/gfx/2d/DrawTargetCairo.cpp:988:3 (libxul.so+0x00000184039f) #4 mozilla::gfx::DrawTargetCairo::CopySurface(mozilla::gfx::SourceSurface*, mozilla::gfx::IntRectTyped const&, mozilla::gfx::IntPointTyped const&) /home/froydnj/src/gecko-dev.git/gfx/2d/DrawTargetCairo.cpp:1017:3 (libxul.so+0x00000184065c) #5 mozilla::gfx::DrawTargetCairo::OptimizeSourceSurface(mozilla::gfx::SourceSurface*) const /home/froydnj/src/gecko-dev.git/gfx/2d/DrawTargetCairo.cpp:1480:3 (libxul.so+0x000001843f32) #6 mozilla::image::imgFrame::Optimize() /home/froydnj/src/gecko-dev.git/image/src/imgFrame.cpp:511:17 (libxul.so+0x000001b0c2d3) #7 mozilla::image::imgFrame::UnlockImageData() /home/froydnj/src/gecko-dev.git/image/src/imgFrame.cpp:1011:5 (libxul.so+0x000001b0eed4) #8 mozilla::image::RawAccessFrameRef::~RawAccessFrameRef() /home/froydnj/src/gecko-dev.git/image/src/imgFrame.h:478:7 (libxul.so+0x000001af3817) #9 mozilla::image::Decoder::~Decoder() /home/froydnj/src/gecko-dev.git/image/src/Decoder.cpp:74 (libxul.so+0x000001af3817) #10 mozilla::image::nsPNGDecoder::~nsPNGDecoder() /home/froydnj/src/gecko-dev.git/image/decoders/nsPNGDecoder.cpp:142:1 (libxul.so+0x000001b250b4) #11 mozilla::image::nsPNGDecoder::~nsPNGDecoder() /home/froydnj/src/gecko-dev.git/image/decoders/nsPNGDecoder.cpp:124:1 (libxul.so+0x000001b250d5) #12 mozilla::image::Decoder::Release() /home/froydnj/src/gecko-dev.git/image/src/Decoder.h:114:3 (libxul.so+0x000001b01923) #13 nsRefPtr::~nsRefPtr() /opt/build/froydnj/build-tsan/image/src/../../dist/include/nsRefPtr.h:66:7 (libxul.so+0x000001b02288) #14 mozilla::image::NotifyDecodeCompleteWorker::~NotifyDecodeCompleteWorker() /home/froydnj/src/gecko-dev.git/image/src/DecodePool.cpp:79 (libxul.so+0x000001b02288) #15 mozilla::image::NotifyDecodeCompleteWorker::~NotifyDecodeCompleteWorker() /home/froydnj/src/gecko-dev.git/image/src/DecodePool.cpp:79 (libxul.so+0x000001b02288) #16 nsRunnable::Release() /home/froydnj/src/gecko-dev.git/xpcom/glue/nsThreadUtils.cpp:32:1 (libxul.so+0x000000a34ed9) #17 nsCOMPtr_base::~nsCOMPtr_base() /opt/build/froydnj/build-tsan/xpcom/threads/../../dist/include/nsCOMPtr.h:296:7 (libxul.so+0x000000a0645f) #18 nsThread::ProcessNextEvent(bool, bool*) /home/froydnj/src/gecko-dev.git/xpcom/threads/nsThread.cpp:874 (libxul.so+0x000000a0645f) #19 NS_ProcessNextEvent(nsIThread*, bool) /home/froydnj/src/gecko-dev.git/xpcom/glue/nsThreadUtils.cpp:265:10 (libxul.so+0x000000a35689) #20 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/froydnj/src/gecko-dev.git/ipc/glue/MessagePump.cpp:99:21 (libxul.so+0x000000eb6190) #21 MessageLoop::RunInternal() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:233:3 (libxul.so+0x000000e610de) #22 MessageLoop::RunHandler() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:226 (libxul.so+0x000000e610de) #23 MessageLoop::Run() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:200 (libxul.so+0x000000e610de) #24 nsBaseAppShell::Run() /home/froydnj/src/gecko-dev.git/widget/nsBaseAppShell.cpp:165:3 (libxul.so+0x0000034213e8) #25 nsAppStartup::Run() /home/froydnj/src/gecko-dev.git/toolkit/components/startup/nsAppStartup.cpp:280:19 (libxul.so+0x0000040954e9) #26 XREMain::XRE_mainRun() /home/froydnj/src/gecko-dev.git/toolkit/xre/nsAppRunner.cpp:4071:10 (libxul.so+0x0000041042e2) #27 XREMain::XRE_main(int, char**, nsXREAppData const*) /home/froydnj/src/gecko-dev.git/toolkit/xre/nsAppRunner.cpp:4151:8 (libxul.so+0x000004104808) #28 XRE_main /home/froydnj/src/gecko-dev.git/toolkit/xre/nsAppRunner.cpp:4240:16 (libxul.so+0x000004104d94) #29 do_main(int, char**, nsIFile*) /home/froydnj/src/gecko-dev.git/browser/app/nsBrowserApp.cpp:214:10 (firefox+0x0000000a6132) #30 main /home/froydnj/src/gecko-dev.git/browser/app/nsBrowserApp.cpp:478 (firefox+0x0000000a6132) Previous write of size 4 at 0x7fa31b6b7118 by thread T38: #0 _freed_pool_put /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo-freed-pool-private.h:106:12 (libxul.so+0x0000045b018e) #1 INT__moz_cairo_pattern_destroy /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo-pattern.c:831 (libxul.so+0x0000045b018e) #2 _cairo_gstate_fini /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo-gstate.c:229:5 (libxul.so+0x000004587894) #3 _cairo_gstate_restore /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo-gstate.c:290:5 (libxul.so+0x000004587dc3) #4 INT__moz_cairo_restore /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo.c:599:14 (libxul.so+0x0000045e2735) #5 mozilla::gfx::(anonymous namespace)::AutoPrepareForDrawing::~AutoPrepareForDrawing() /home/froydnj/src/gecko-dev.git/gfx/2d/DrawTargetCairo.cpp:77:5 (libxul.so+0x00000183dfbb) #6 mozilla::gfx::DrawTargetCairo::CopySurface(mozilla::gfx::SourceSurface*, mozilla::gfx::IntRectTyped const&, mozilla::gfx::IntPointTyped const&) /home/froydnj/src/gecko-dev.git/gfx/2d/DrawTargetCairo.cpp:1019:1 (libxul.so+0x0000018406ef) #7 mozilla::layers::BasicCompositor::EndFrame() /home/froydnj/src/gecko-dev.git/gfx/layers/basic/BasicCompositor.cpp:576:5 (libxul.so+0x000001970a37) #8 mozilla::layers::X11BasicCompositor::EndFrame() /home/froydnj/src/gecko-dev.git/gfx/layers/basic/X11BasicCompositor.cpp:131:3 (libxul.so+0x000001916465) #9 mozilla::layers::LayerManagerComposite::Render() /home/froydnj/src/gecko-dev.git/gfx/layers/composite/LayerManagerComposite.cpp:770:5 (libxul.so+0x0000019c17da) #10 mozilla::layers::LayerManagerComposite::EndTransaction(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, nsIntRegion const&, mozilla::layers::DrawRegionClip, nsIntRegion const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags) /home/froydnj/src/gecko-dev.git/gfx/layers/composite/LayerManagerComposite.cpp:314:5 (libxul.so+0x0000019c033b) #11 mozilla::layers::LayerManagerComposite::EndEmptyTransaction(mozilla::layers::LayerManager::EndTransactionFlags) /home/froydnj/src/gecko-dev.git/gfx/layers/composite/LayerManagerComposite.cpp:261:3 (libxul.so+0x0000019d7d23) #12 mozilla::layers::CompositorParent::CompositeToTarget(mozilla::gfx::DrawTarget*, mozilla::gfx::IntRectTyped const*) /home/froydnj/src/gecko-dev.git/gfx/layers/ipc/CompositorParent.cpp:1040 (libxul.so+0x0000019d7d23) #13 mozilla::layers::CompositorParent::CompositeCallback(mozilla::TimeStamp) /home/froydnj/src/gecko-dev.git/gfx/layers/ipc/CompositorParent.cpp:952:3 (libxul.so+0x0000019d4cc0) #14 mozilla::layers::CompositorVsyncObserver::Composite(mozilla::TimeStamp) /home/froydnj/src/gecko-dev.git/gfx/layers/ipc/CompositorParent.cpp:339 (libxul.so+0x0000019d4cc0) #15 void DispatchToMethod(mozilla::layers::CompositorVsyncObserver*, void (mozilla::layers::CompositorVsyncObserver::*)(mozilla::TimeStamp), Tuple1 const&) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/tuple.h:393:3 (libxul.so+0x0000019ee6ba) #16 RunnableMethod >::Run() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/task.h:310 (libxul.so+0x0000019ee6ba) #17 MessageLoop::RunTask(Task*) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:361:3 (libxul.so+0x000000e61d87) #18 MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:369 (libxul.so+0x000000e61d87) #19 MessageLoop::DoWork() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:456:13 (libxul.so+0x000000e6233c) #20 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_pump_default.cc:34:21 (libxul.so+0x000000e63218) #21 MessageLoop::RunInternal() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:233:3 (libxul.so+0x000000e610de) #22 MessageLoop::RunHandler() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:226 (libxul.so+0x000000e610de) #23 MessageLoop::Run() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:200 (libxul.so+0x000000e610de) #24 base::Thread::ThreadMain() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/thread.cc:170:3 (libxul.so+0x000000e767c1) #25 ThreadFunc(void*) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/platform_thread_posix.cc:39:3 (libxul.so+0x000000e76b0e) Location is global 'freed_pattern_pool' of size 160 at 0x7fa31b6b70d0 (libxul.so+0x000006881118) Mutex M76625 (0x7d2c000f8b40) created at: #0 pthread_mutex_init /home/froydnj/src/llvm.git/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:1113 (firefox+0x00000003d5e5) #1 PR_NewLock /home/froydnj/src/gecko-dev.git/nsprpub/pr/src/pthreads/ptsynch.c:145:14 (libnspr4.so+0x0000000306b9) #2 mozilla::OffTheBooksMutex::OffTheBooksMutex(char const*) /opt/build/froydnj/build-tsan/image/src/../../dist/include/mozilla/Mutex.h:49:13 (libxul.so+0x000001b0aee9) #3 mozilla::Mutex::Mutex(char const*) /opt/build/froydnj/build-tsan/image/src/../../dist/include/mozilla/Mutex.h:124 (libxul.so+0x000001b0aee9) #4 mozilla::Monitor::Monitor(char const*) /opt/build/froydnj/build-tsan/image/src/../../dist/include/mozilla/Monitor.h:28 (libxul.so+0x000001b0aee9) #5 mozilla::image::imgFrame::imgFrame() /home/froydnj/src/gecko-dev.git/image/src/imgFrame.cpp:135 (libxul.so+0x000001b0aee9) #6 mozilla::image::Decoder::InternalAddFrame(unsigned int, mozilla::gfx::IntSizeTyped const&, mozilla::gfx::IntRectTyped const&, unsigned int, mozilla::gfx::SurfaceFormat, unsigned char, mozilla::image::imgFrame*) /home/froydnj/src/gecko-dev.git/image/src/Decoder.cpp:481:34 (libxul.so+0x000001af4d60) #7 mozilla::image::Decoder::EnsureFrame(unsigned int, mozilla::gfx::IntSizeTyped const&, mozilla::gfx::IntRectTyped const&, unsigned int, mozilla::gfx::SurfaceFormat, unsigned char, mozilla::image::imgFrame*) /home/froydnj/src/gecko-dev.git/image/src/Decoder.cpp:414:12 (libxul.so+0x000001af4b60) #8 mozilla::image::Decoder::AllocateFrame(mozilla::gfx::IntSizeTyped const&) /home/froydnj/src/gecko-dev.git/image/src/Decoder.cpp:361:19 (libxul.so+0x000001af48aa) #9 mozilla::image::RasterImage::CreateDecoder(mozilla::Maybe > const&, unsigned int) /home/froydnj/src/gecko-dev.git/image/src/RasterImage.cpp:1408:5 (libxul.so+0x000001acc6c9) #10 mozilla::image::RasterImage::Decode(mozilla::Maybe > const&, unsigned int) /home/froydnj/src/gecko-dev.git/image/src/RasterImage.cpp:1536:31 (libxul.so+0x000001ac8c5c) #11 mozilla::image::RasterImage::RecoverFromLossOfFrames(mozilla::gfx::IntSizeTyped const&, unsigned int) /home/froydnj/src/gecko-dev.git/image/src/RasterImage.cpp:1593:3 (libxul.so+0x000001aca2fb) #12 mozilla::image::RasterImage::DrawWithPreDownscaleIfNeeded(mozilla::image::DrawableFrameRef&&, gfxContext*, mozilla::gfx::IntSizeTyped const&, mozilla::image::ImageRegion const&, GraphicsFilter, unsigned int) /home/froydnj/src/gecko-dev.git/image/src/RasterImage.cpp:1784:5 (libxul.so+0x000001acd91b) #13 mozilla::image::RasterImage::Draw(gfxContext*, mozilla::gfx::IntSizeTyped const&, mozilla::image::ImageRegion const&, unsigned int, GraphicsFilter, mozilla::Maybe const&, unsigned int) /home/froydnj/src/gecko-dev.git/image/src/RasterImage.cpp:1857:17 (libxul.so+0x000001acdc16) #14 mozilla::image::ClippedImage::DrawSingleTile(gfxContext*, mozilla::gfx::IntSizeTyped const&, mozilla::image::ImageRegion const&, unsigned int, GraphicsFilter, mozilla::Maybe const&, unsigned int) /home/froydnj/src/gecko-dev.git/image/src/ClippedImage.cpp:397:10 (libxul.so+0x000001af173b) #15 mozilla::image::ClippedImage::Draw(gfxContext*, mozilla::gfx::IntSizeTyped const&, mozilla::image::ImageRegion const&, unsigned int, GraphicsFilter, mozilla::Maybe const&, unsigned int) /home/froydnj/src/gecko-dev.git/image/src/ClippedImage.cpp:338:10 (libxul.so+0x000001af1185) #16 DrawImageInternal(gfxContext&, nsPresContext*, imgIContainer*, GraphicsFilter, nsRect const&, nsRect const&, nsPoint const&, nsRect const&, mozilla::SVGImageContext const*, unsigned int) /home/froydnj/src/gecko-dev.git/layout/base/nsLayoutUtils.cpp:6046:10 (libxul.so+0x0000037cb771) #17 nsLayoutUtils::DrawSingleImage(gfxContext&, nsPresContext*, imgIContainer*, GraphicsFilter, nsRect const&, nsRect const&, mozilla::SVGImageContext const*, unsigned int, nsPoint const*, nsRect const*) /home/froydnj/src/gecko-dev.git/layout/base/nsLayoutUtils.cpp:6135:10 (libxul.so+0x0000037cc846) #18 nsImageBoxFrame::PaintImage(nsRenderingContext&, nsRect const&, nsPoint, unsigned int) /home/froydnj/src/gecko-dev.git/layout/xul/nsImageBoxFrame.cpp:347:7 (libxul.so+0x000003a13f83) #19 nsDisplayXULImage::Paint(nsDisplayListBuilder*, nsRenderingContext*) /home/froydnj/src/gecko-dev.git/layout/xul/nsImageBoxFrame.cpp:366:23 (libxul.so+0x000003a14044) #20 mozilla::FrameLayerBuilder::PaintItems(nsTArray&, mozilla::gfx::IntRectTyped const&, gfxContext*, nsRenderingContext*, nsDisplayListBuilder*, nsPresContext*, mozilla::gfx::IntPointTyped const&, float, float, int) /home/froydnj/src/gecko-dev.git/layout/base/FrameLayerBuilder.cpp:5159:9 (libxul.so+0x0000036f9eb9) #21 mozilla::FrameLayerBuilder::DrawPaintedLayer(mozilla::layers::PaintedLayer*, gfxContext*, nsIntRegion const&, mozilla::layers::DrawRegionClip, nsIntRegion const&, void*) /home/froydnj/src/gecko-dev.git/layout/base/FrameLayerBuilder.cpp:5356:5 (libxul.so+0x0000036fb2a8) #22 mozilla::layers::ClientPaintedLayer::PaintThebes() /home/froydnj/src/gecko-dev.git/gfx/layers/client/ClientPaintedLayer.cpp:76:5 (libxul.so+0x000001984083) #23 mozilla::layers::ClientPaintedLayer::RenderLayerWithReadback(mozilla::layers::ReadbackProcessor*) /home/froydnj/src/gecko-dev.git/gfx/layers/client/ClientPaintedLayer.cpp:131:3 (libxul.so+0x0000019843d5) #24 non-virtual thunk to mozilla::layers::ClientPaintedLayer::RenderLayerWithReadback(mozilla::layers::ReadbackProcessor*) /home/froydnj/src/gecko-dev.git/gfx/layers/client/ClientPaintedLayer.cpp:107:21 (libxul.so+0x0000019848e5) #25 mozilla::layers::ClientContainerLayer::RenderLayer() /home/froydnj/src/gecko-dev.git/gfx/layers/client/ClientContainerLayer.h:68:7 (libxul.so+0x000001983223) #26 non-virtual thunk to mozilla::layers::ClientContainerLayer::RenderLayer() /home/froydnj/src/gecko-dev.git/gfx/layers/client/ClientContainerLayer.h:48:16 (libxul.so+0x00000198353c) #27 mozilla::layers::ClientLayerManager::EndTransactionInternal(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, nsIntRegion const&, mozilla::layers::DrawRegionClip, nsIntRegion const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags) /home/froydnj/src/gecko-dev.git/gfx/layers/client/ClientLayerManager.cpp:272:3 (libxul.so+0x00000197c501) #28 mozilla::layers::ClientLayerManager::EndTransaction(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, nsIntRegion const&, mozilla::layers::DrawRegionClip, nsIntRegion const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags) /home/froydnj/src/gecko-dev.git/gfx/layers/client/ClientLayerManager.cpp:315:3 (libxul.so+0x00000197c6e9) #29 nsDisplayList::PaintRoot(nsDisplayListBuilder*, nsRenderingContext*, unsigned int) /home/froydnj/src/gecko-dev.git/layout/base/nsDisplayList.cpp:1557:3 (libxul.so+0x00000377b5f7) #30 nsLayoutUtils::PaintFrame(nsRenderingContext*, nsIFrame*, nsRegion const&, unsigned int, unsigned int) /home/froydnj/src/gecko-dev.git/layout/base/nsLayoutUtils.cpp:3267:5 (libxul.so+0x0000037c21d9) #31 PresShell::Paint(nsView*, nsRegion const&, unsigned int) /home/froydnj/src/gecko-dev.git/layout/base/nsPresShell.cpp:6326:5 (libxul.so+0x0000037f982d) #32 nsViewManager::ProcessPendingUpdatesPaint(nsIWidget*) /home/froydnj/src/gecko-dev.git/view/nsViewManager.cpp:445:7 (libxul.so+0x0000033f7ec3) #33 nsViewManager::ProcessPendingUpdatesForView(nsView*, bool) /home/froydnj/src/gecko-dev.git/view/nsViewManager.cpp:385:9 (libxul.so+0x0000033f7b54) #34 nsViewManager::ProcessPendingUpdates() /home/froydnj/src/gecko-dev.git/view/nsViewManager.cpp:1075:5 (libxul.so+0x0000033f90bf) #35 nsRefreshDriver::Tick(long, mozilla::TimeStamp) /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:1791:5 (libxul.so+0x0000036d4b06) #36 mozilla::RefreshDriverTimer::TickDriver(nsRefreshDriver*, long, mozilla::TimeStamp) /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:198:5 (libxul.so+0x0000036d8697) #37 mozilla::RefreshDriverTimer::Tick(long, mozilla::TimeStamp) /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:189 (libxul.so+0x0000036d8697) #38 mozilla::VsyncRefreshDriverTimer::RunRefreshDrivers(mozilla::TimeStamp) /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:440:5 (libxul.so+0x0000036d9bd5) #39 mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::TimeStamp) /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:374:9 (libxul.so+0x0000036d97e7) #40 void nsRunnableMethodArguments::apply(mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver*, void (mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::*)(mozilla::TimeStamp)) /opt/build/froydnj/build-tsan/layout/base/../../dist/include/nsThreadUtils.h:615:5 (libxul.so+0x0000036d986a) #41 nsRunnableMethodImpl::Run() /opt/build/froydnj/build-tsan/layout/base/../../dist/include/nsThreadUtils.h:809 (libxul.so+0x0000036d986a) #42 nsThread::ProcessNextEvent(bool, bool*) /home/froydnj/src/gecko-dev.git/xpcom/threads/nsThread.cpp:868:7 (libxul.so+0x000000a0642d) #43 NS_ProcessNextEvent(nsIThread*, bool) /home/froydnj/src/gecko-dev.git/xpcom/glue/nsThreadUtils.cpp:265:10 (libxul.so+0x000000a35689) #44 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/froydnj/src/gecko-dev.git/ipc/glue/MessagePump.cpp:99:21 (libxul.so+0x000000eb6190) #45 MessageLoop::RunInternal() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:233:3 (libxul.so+0x000000e610de) #46 MessageLoop::RunHandler() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:226 (libxul.so+0x000000e610de) #47 MessageLoop::Run() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:200 (libxul.so+0x000000e610de) #48 nsBaseAppShell::Run() /home/froydnj/src/gecko-dev.git/widget/nsBaseAppShell.cpp:165:3 (libxul.so+0x0000034213e8) #49 nsAppStartup::Run() /home/froydnj/src/gecko-dev.git/toolkit/components/startup/nsAppStartup.cpp:280:19 (libxul.so+0x0000040954e9) #50 XREMain::XRE_mainRun() /home/froydnj/src/gecko-dev.git/toolkit/xre/nsAppRunner.cpp:4071:10 (libxul.so+0x0000041042e2) #51 XREMain::XRE_main(int, char**, nsXREAppData const*) /home/froydnj/src/gecko-dev.git/toolkit/xre/nsAppRunner.cpp:4151:8 (libxul.so+0x000004104808) #52 XRE_main /home/froydnj/src/gecko-dev.git/toolkit/xre/nsAppRunner.cpp:4240:16 (libxul.so+0x000004104d94) #53 do_main(int, char**, nsIFile*) /home/froydnj/src/gecko-dev.git/browser/app/nsBrowserApp.cpp:214:10 (firefox+0x0000000a6132) #54 main /home/froydnj/src/gecko-dev.git/browser/app/nsBrowserApp.cpp:478 (firefox+0x0000000a6132) Thread T38 'Compositor' (tid=13331, running) created by main thread at: #0 pthread_create /home/froydnj/src/llvm.git/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:927 (firefox+0x000000052173) #1 (anonymous namespace)::CreateThread(unsigned long, bool, PlatformThread::Delegate*, unsigned long*) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/platform_thread_posix.cc:144:14 (libxul.so+0x000000e76574) #2 PlatformThread::Create(unsigned long, PlatformThread::Delegate*, unsigned long*) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/platform_thread_posix.cc:155 (libxul.so+0x000000e76574) #3 base::Thread::StartWithOptions(base::Thread::Options const&) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/thread.cc:92 (libxul.so+0x000000e76574) #4 mozilla::layers::CompositorThreadHolder::CreateCompositorThread() /home/froydnj/src/gecko-dev.git/gfx/layers/ipc/CompositorParent.cpp:189:8 (libxul.so+0x0000019d3af7) #5 mozilla::layers::CompositorThreadHolder::CompositorThreadHolder() /home/froydnj/src/gecko-dev.git/gfx/layers/ipc/CompositorParent.cpp:141:23 (libxul.so+0x0000019d4eff) #6 mozilla::layers::CompositorParent::StartUp() /home/froydnj/src/gecko-dev.git/gfx/layers/ipc/CompositorParent.cpp:399 (libxul.so+0x0000019d4eff) #7 gfxPlatform::InitLayersIPC() /home/froydnj/src/gecko-dev.git/gfx/thebes/gfxPlatform.cpp:666:9 (libxul.so+0x000001a3edba) #8 gfxPlatform::Init() /home/froydnj/src/gecko-dev.git/gfx/thebes/gfxPlatform.cpp:502:5 (libxul.so+0x000001a3e0f8) #9 gfxPlatform::GetPlatform() /home/froydnj/src/gecko-dev.git/gfx/thebes/gfxPlatform.cpp:416:9 (libxul.so+0x000001a3d3d7) #10 CreateVsyncRefreshTimer() /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:866:5 (libxul.so+0x0000036d12ff) #11 nsRefreshDriver::ChooseTimer() const /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:1000 (libxul.so+0x0000036d12ff) #12 nsRefreshDriver::EnsureTimerStarted(nsRefreshDriver::EnsureTimerStartedFlags) /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:1207:34 (libxul.so+0x0000036d274a) #13 nsRefreshDriver::MostRecentRefresh() const /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:1096:3 (libxul.so+0x0000036d2907) #14 nsPresContext::Init(nsDeviceContext*) /home/froydnj/src/gecko-dev.git/layout/base/nsPresContext.cpp:1029:38 (libxul.so+0x0000037daa03) #15 nsDocumentViewer::InitInternal(nsIWidget*, nsISupports*, mozilla::gfx::IntRectTyped const&, bool, bool, bool) /home/froydnj/src/gecko-dev.git/layout/base/nsDocumentViewer.cpp:814:21 (libxul.so+0x0000037954ce) #16 nsDocumentViewer::Init(nsIWidget*, mozilla::gfx::IntRectTyped const&) /home/froydnj/src/gecko-dev.git/layout/base/nsDocumentViewer.cpp:626:10 (libxul.so+0x000003794d0e) #17 nsDocShell::SetupNewViewer(nsIContentViewer*) /home/froydnj/src/gecko-dev.git/docshell/base/nsDocShell.cpp:9295:7 (libxul.so+0x000003d7a9d2) #18 nsDocShell::Embed(nsIContentViewer*, char const*, nsISupports*) /home/froydnj/src/gecko-dev.git/docshell/base/nsDocShell.cpp:7200:17 (libxul.so+0x000003d7a03f) #19 nsDocShell::CreateAboutBlankContentViewer(nsIPrincipal*, nsIURI*, bool) /home/froydnj/src/gecko-dev.git/docshell/base/nsDocShell.cpp:8017:14 (libxul.so+0x000003d7f254) #20 nsDocShell::CreateAboutBlankContentViewer(nsIPrincipal*) /home/froydnj/src/gecko-dev.git/docshell/base/nsDocShell.cpp:8042:10 (libxul.so+0x000003d7f83c) #21 non-virtual thunk to nsDocShell::CreateAboutBlankContentViewer(nsIPrincipal*) /home/froydnj/src/gecko-dev.git/docshell/base/nsDocShell.cpp:8040 (libxul.so+0x000003d7f83c) #22 nsWebShellWindow::Initialize(nsIXULWindow*, nsIXULWindow*, nsIURI*, int, int, bool, nsITabParent*, nsWidgetInitData&) /home/froydnj/src/gecko-dev.git/xpfe/appshell/nsWebShellWindow.cpp:216:10 (libxul.so+0x000003dee25e) #23 nsAppShellService::JustCreateTopWindow(nsIXULWindow*, nsIURI*, unsigned int, int, int, bool, nsITabParent*, nsWebShellWindow**) /home/froydnj/src/gecko-dev.git/xpfe/appshell/nsAppShellService.cpp:603:17 (libxul.so+0x000003debc66) #24 nsAppShellService::CreateHiddenWindowHelper(bool) /home/froydnj/src/gecko-dev.git/xpfe/appshell/nsAppShellService.cpp:128:10 (libxul.so+0x000003deb801) #25 nsAppShellService::CreateHiddenWindow() /home/froydnj/src/gecko-dev.git/xpfe/appshell/nsAppShellService.cpp:90:10 (libxul.so+0x000003deb607) #26 nsAppStartup::CreateHiddenWindow() /home/froydnj/src/gecko-dev.git/toolkit/components/startup/nsAppStartup.cpp:244:10 (libxul.so+0x0000040953da) #27 XREMain::XRE_mainRun() /home/froydnj/src/gecko-dev.git/toolkit/xre/nsAppRunner.cpp:4004:10 (libxul.so+0x0000041040b3) #28 XREMain::XRE_main(int, char**, nsXREAppData const*) /home/froydnj/src/gecko-dev.git/toolkit/xre/nsAppRunner.cpp:4151:8 (libxul.so+0x000004104808) #29 XRE_main /home/froydnj/src/gecko-dev.git/toolkit/xre/nsAppRunner.cpp:4240:16 (libxul.so+0x000004104d94) #30 do_main(int, char**, nsIFile*) /home/froydnj/src/gecko-dev.git/browser/app/nsBrowserApp.cpp:214:10 (firefox+0x0000000a6132) #31 main /home/froydnj/src/gecko-dev.git/browser/app/nsBrowserApp.cpp:478 (firefox+0x0000000a6132) SUMMARY: ThreadSanitizer: data race /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo-freed-pool-private.h:80 _freed_pool_get ================== WARNING: ThreadSanitizer: data race (pid=13262) Read of size 4 at 0x7fa31b6b70f0 by thread T38: #0 _freed_pool_get /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo-freed-pool-private.h:80:15 (libxul.so+0x0000045af620) #1 _cairo_pattern_create_solid /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo-pattern.c:486 (libxul.so+0x0000045af620) #2 INT__moz_cairo_pattern_create_rgba /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo-pattern.c:592:12 (libxul.so+0x0000045af957) #3 mozilla::gfx::GfxPatternToCairoPattern(mozilla::gfx::Pattern const&, float) /home/froydnj/src/gecko-dev.git/gfx/2d/DrawTargetCairo.cpp:478:13 (libxul.so+0x00000183f1b8) #4 mozilla::gfx::DrawTargetCairo::DrawPattern(mozilla::gfx::Pattern const&, mozilla::gfx::StrokeOptions const&, mozilla::gfx::DrawOptions const&, mozilla::gfx::DrawTargetCairo::DrawPatternType, bool) /home/froydnj/src/gecko-dev.git/gfx/2d/DrawTargetCairo.cpp:876:26 (libxul.so+0x00000183ee3f) #5 mozilla::gfx::DrawTargetCairo::FillRect(mozilla::gfx::RectTyped const&, mozilla::gfx::Pattern const&, mozilla::gfx::DrawOptions const&) /home/froydnj/src/gecko-dev.git/gfx/2d/DrawTargetCairo.cpp:969:3 (libxul.so+0x00000183fffb) #6 mozilla::layers::FillRectWithMask(mozilla::gfx::DrawTarget*, mozilla::gfx::RectTyped const&, mozilla::gfx::Color const&, mozilla::gfx::DrawOptions const&, mozilla::gfx::SourceSurface*, mozilla::gfx::Matrix const*) /home/froydnj/src/gecko-dev.git/gfx/layers/basic/BasicLayersImpl.cpp:75:3 (libxul.so+0x00000196f052) #7 mozilla::layers::BasicCompositor::DrawQuad(mozilla::gfx::RectTyped const&, mozilla::gfx::RectTyped const&, mozilla::layers::EffectChain const&, float, mozilla::gfx::Matrix4x4 const&) /home/froydnj/src/gecko-dev.git/gfx/layers/basic/BasicCompositor.cpp:388 (libxul.so+0x00000196f052) #8 mozilla::layers::ColorLayerComposite::RenderLayer(mozilla::gfx::IntRectTyped const&) /home/froydnj/src/gecko-dev.git/gfx/layers/composite/ColorLayerComposite.cpp:43:3 (libxul.so+0x0000019a1370) #9 non-virtual thunk to mozilla::layers::ColorLayerComposite::RenderLayer(mozilla::gfx::IntRectTyped const&) /home/froydnj/src/gecko-dev.git/gfx/layers/composite/ColorLayerComposite.cpp:22:22 (libxul.so+0x0000019a1475) #10 void mozilla::layers::RenderLayers(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped const&) /home/froydnj/src/gecko-dev.git/gfx/layers/composite/ContainerLayerComposite.cpp:376:7 (libxul.so+0x0000019b9d85) #11 void mozilla::layers::ContainerRender(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped const&) /home/froydnj/src/gecko-dev.git/gfx/layers/composite/ContainerLayerComposite.cpp:545:5 (libxul.so+0x0000019ada49) #12 mozilla::layers::ContainerLayerComposite::RenderLayer(mozilla::gfx::IntRectTyped const&) /home/froydnj/src/gecko-dev.git/gfx/layers/composite/ContainerLayerComposite.cpp:619:3 (libxul.so+0x0000019a2b5f) #13 non-virtual thunk to mozilla::layers::ContainerLayerComposite::RenderLayer(mozilla::gfx::IntRectTyped const&) /home/froydnj/src/gecko-dev.git/gfx/layers/composite/ContainerLayerComposite.cpp:617 (libxul.so+0x0000019a2b5f) #14 void mozilla::layers::RenderLayers(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped const&) /home/froydnj/src/gecko-dev.git/gfx/layers/composite/ContainerLayerComposite.cpp:376:7 (libxul.so+0x0000019b9d85) #15 void mozilla::layers::ContainerRender(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped const&) /home/froydnj/src/gecko-dev.git/gfx/layers/composite/ContainerLayerComposite.cpp:545:5 (libxul.so+0x0000019ada49) #16 mozilla::layers::ContainerLayerComposite::RenderLayer(mozilla::gfx::IntRectTyped const&) /home/froydnj/src/gecko-dev.git/gfx/layers/composite/ContainerLayerComposite.cpp:619:3 (libxul.so+0x0000019a2b5f) #17 non-virtual thunk to mozilla::layers::ContainerLayerComposite::RenderLayer(mozilla::gfx::IntRectTyped const&) /home/froydnj/src/gecko-dev.git/gfx/layers/composite/ContainerLayerComposite.cpp:617 (libxul.so+0x0000019a2b5f) #18 mozilla::layers::LayerManagerComposite::Render() /home/froydnj/src/gecko-dev.git/gfx/layers/composite/LayerManagerComposite.cpp:741:3 (libxul.so+0x0000019c1304) #19 mozilla::layers::LayerManagerComposite::EndTransaction(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, nsIntRegion const&, mozilla::layers::DrawRegionClip, nsIntRegion const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags) /home/froydnj/src/gecko-dev.git/gfx/layers/composite/LayerManagerComposite.cpp:314:5 (libxul.so+0x0000019c033b) #20 mozilla::layers::LayerManagerComposite::EndEmptyTransaction(mozilla::layers::LayerManager::EndTransactionFlags) /home/froydnj/src/gecko-dev.git/gfx/layers/composite/LayerManagerComposite.cpp:261:3 (libxul.so+0x0000019d7d23) #21 mozilla::layers::CompositorParent::CompositeToTarget(mozilla::gfx::DrawTarget*, mozilla::gfx::IntRectTyped const*) /home/froydnj/src/gecko-dev.git/gfx/layers/ipc/CompositorParent.cpp:1040 (libxul.so+0x0000019d7d23) #22 mozilla::layers::CompositorParent::CompositeCallback(mozilla::TimeStamp) /home/froydnj/src/gecko-dev.git/gfx/layers/ipc/CompositorParent.cpp:952:3 (libxul.so+0x0000019d4cc0) #23 mozilla::layers::CompositorVsyncObserver::Composite(mozilla::TimeStamp) /home/froydnj/src/gecko-dev.git/gfx/layers/ipc/CompositorParent.cpp:339 (libxul.so+0x0000019d4cc0) #24 void DispatchToMethod(mozilla::layers::CompositorVsyncObserver*, void (mozilla::layers::CompositorVsyncObserver::*)(mozilla::TimeStamp), Tuple1 const&) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/tuple.h:393:3 (libxul.so+0x0000019ee6ba) #25 RunnableMethod >::Run() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/task.h:310 (libxul.so+0x0000019ee6ba) #26 MessageLoop::RunTask(Task*) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:361:3 (libxul.so+0x000000e61d87) #27 MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:369 (libxul.so+0x000000e61d87) #28 MessageLoop::DoWork() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:456:13 (libxul.so+0x000000e6233c) #29 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_pump_default.cc:34:21 (libxul.so+0x000000e63218) #30 MessageLoop::RunInternal() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:233:3 (libxul.so+0x000000e610de) #31 MessageLoop::RunHandler() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:226 (libxul.so+0x000000e610de) #32 MessageLoop::Run() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:200 (libxul.so+0x000000e610de) #33 base::Thread::ThreadMain() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/thread.cc:170:3 (libxul.so+0x000000e767c1) #34 ThreadFunc(void*) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/platform_thread_posix.cc:39:3 (libxul.so+0x000000e76b0e) Previous write of size 4 at 0x7fa31b6b70f0 by main thread: #0 _freed_pool_get /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo-freed-pool-private.h:86:12 (libxul.so+0x0000045af681) #1 _cairo_pattern_create_solid /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo-pattern.c:486 (libxul.so+0x0000045af681) #2 INT__moz_cairo_pattern_create_rgba /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo-pattern.c:592:12 (libxul.so+0x0000045af957) #3 mozilla::gfx::GfxPatternToCairoPattern(mozilla::gfx::Pattern const&, float) /home/froydnj/src/gecko-dev.git/gfx/2d/DrawTargetCairo.cpp:478:13 (libxul.so+0x00000183f1b8) #4 mozilla::gfx::DrawTargetCairo::DrawPattern(mozilla::gfx::Pattern const&, mozilla::gfx::StrokeOptions const&, mozilla::gfx::DrawOptions const&, mozilla::gfx::DrawTargetCairo::DrawPatternType, bool) /home/froydnj/src/gecko-dev.git/gfx/2d/DrawTargetCairo.cpp:876:26 (libxul.so+0x00000183ee3f) #5 mozilla::gfx::DrawTargetCairo::Stroke(mozilla::gfx::Path const*, mozilla::gfx::Pattern const&, mozilla::gfx::StrokeOptions const&, mozilla::gfx::DrawOptions const&) /home/froydnj/src/gecko-dev.git/gfx/2d/DrawTargetCairo.cpp:1117:3 (libxul.so+0x0000018413b4) #6 nsCSSBorderRenderer::DrawNoCompositeColorSolidBorder() /home/froydnj/src/gecko-dev.git/layout/base/nsCSSRenderingBorders.cpp:1199:5 (libxul.so+0x00000376f718) #7 nsCSSBorderRenderer::DrawBorders() /home/froydnj/src/gecko-dev.git/layout/base/nsCSSRenderingBorders.cpp:1502:5 (libxul.so+0x000003756f58) #8 nsCSSRendering::PaintBorderWithStyleBorder(nsPresContext*, nsRenderingContext&, nsIFrame*, nsRect const&, nsRect const&, nsStyleBorder const&, nsStyleContext*, mozilla::Sides) /home/froydnj/src/gecko-dev.git/layout/base/nsCSSRendering.cpp:788:3 (libxul.so+0x000003753d09) #9 nsCSSRendering::PaintBorder(nsPresContext*, nsRenderingContext&, nsIFrame*, nsRect const&, nsRect const&, nsStyleContext*, mozilla::Sides) /home/froydnj/src/gecko-dev.git/layout/base/nsCSSRendering.cpp:638:5 (libxul.so+0x0000037531cd) #10 nsDisplayBorder::Paint(nsDisplayListBuilder*, nsRenderingContext*) /home/froydnj/src/gecko-dev.git/layout/base/nsDisplayList.cpp:3162:3 (libxul.so+0x0000037852c4) #11 mozilla::FrameLayerBuilder::PaintItems(nsTArray&, mozilla::gfx::IntRectTyped const&, gfxContext*, nsRenderingContext*, nsDisplayListBuilder*, nsPresContext*, mozilla::gfx::IntPointTyped const&, float, float, int) /home/froydnj/src/gecko-dev.git/layout/base/FrameLayerBuilder.cpp:5159:9 (libxul.so+0x0000036f9eb9) #12 mozilla::FrameLayerBuilder::DrawPaintedLayer(mozilla::layers::PaintedLayer*, gfxContext*, nsIntRegion const&, mozilla::layers::DrawRegionClip, nsIntRegion const&, void*) /home/froydnj/src/gecko-dev.git/layout/base/FrameLayerBuilder.cpp:5356:5 (libxul.so+0x0000036fb2a8) #13 mozilla::layers::ClientPaintedLayer::PaintThebes() /home/froydnj/src/gecko-dev.git/gfx/layers/client/ClientPaintedLayer.cpp:76:5 (libxul.so+0x000001984083) #14 mozilla::layers::ClientPaintedLayer::RenderLayerWithReadback(mozilla::layers::ReadbackProcessor*) /home/froydnj/src/gecko-dev.git/gfx/layers/client/ClientPaintedLayer.cpp:131:3 (libxul.so+0x0000019843d5) #15 non-virtual thunk to mozilla::layers::ClientPaintedLayer::RenderLayerWithReadback(mozilla::layers::ReadbackProcessor*) /home/froydnj/src/gecko-dev.git/gfx/layers/client/ClientPaintedLayer.cpp:107:21 (libxul.so+0x0000019848e5) #16 mozilla::layers::ClientContainerLayer::RenderLayer() /home/froydnj/src/gecko-dev.git/gfx/layers/client/ClientContainerLayer.h:68:7 (libxul.so+0x000001983223) #17 non-virtual thunk to mozilla::layers::ClientContainerLayer::RenderLayer() /home/froydnj/src/gecko-dev.git/gfx/layers/client/ClientContainerLayer.h:48:16 (libxul.so+0x00000198353c) #18 mozilla::layers::ClientLayerManager::EndTransactionInternal(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, nsIntRegion const&, mozilla::layers::DrawRegionClip, nsIntRegion const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags) /home/froydnj/src/gecko-dev.git/gfx/layers/client/ClientLayerManager.cpp:272:3 (libxul.so+0x00000197c501) #19 mozilla::layers::ClientLayerManager::EndTransaction(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, nsIntRegion const&, mozilla::layers::DrawRegionClip, nsIntRegion const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags) /home/froydnj/src/gecko-dev.git/gfx/layers/client/ClientLayerManager.cpp:315:3 (libxul.so+0x00000197c6e9) #20 nsDisplayList::PaintRoot(nsDisplayListBuilder*, nsRenderingContext*, unsigned int) /home/froydnj/src/gecko-dev.git/layout/base/nsDisplayList.cpp:1557:3 (libxul.so+0x00000377b5f7) #21 nsLayoutUtils::PaintFrame(nsRenderingContext*, nsIFrame*, nsRegion const&, unsigned int, unsigned int) /home/froydnj/src/gecko-dev.git/layout/base/nsLayoutUtils.cpp:3267:5 (libxul.so+0x0000037c21d9) #22 PresShell::Paint(nsView*, nsRegion const&, unsigned int) /home/froydnj/src/gecko-dev.git/layout/base/nsPresShell.cpp:6326:5 (libxul.so+0x0000037f982d) #23 nsViewManager::ProcessPendingUpdatesPaint(nsIWidget*) /home/froydnj/src/gecko-dev.git/view/nsViewManager.cpp:445:7 (libxul.so+0x0000033f7ec3) #24 nsViewManager::ProcessPendingUpdatesForView(nsView*, bool) /home/froydnj/src/gecko-dev.git/view/nsViewManager.cpp:385:9 (libxul.so+0x0000033f7b54) #25 nsViewManager::ProcessPendingUpdates() /home/froydnj/src/gecko-dev.git/view/nsViewManager.cpp:1075:5 (libxul.so+0x0000033f90bf) #26 nsRefreshDriver::Tick(long, mozilla::TimeStamp) /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:1791:5 (libxul.so+0x0000036d4b06) #27 nsRefreshDriver::DoTick() /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:1391:5 (libxul.so+0x0000036d6497) #28 nsRefreshDriver::DoRefresh() /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:2069 (libxul.so+0x0000036d6497) #29 nsRefreshDriver::FinishedWaitingForTransaction() /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:1927 (libxul.so+0x0000036d6497) #30 nsRefreshDriver::NotifyTransactionCompleted(unsigned long) /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:1973:7 (libxul.so+0x0000036d6699) #31 mozilla::layers::ClientLayerManager::DidComposite(unsigned long) /home/froydnj/src/gecko-dev.git/gfx/layers/client/ClientLayerManager.cpp:395:3 (libxul.so+0x00000197bb04) #32 mozilla::layers::CompositorChild::RecvDidComposite(unsigned long const&, unsigned long const&) /home/froydnj/src/gecko-dev.git/gfx/layers/ipc/CompositorChild.cpp:348:5 (libxul.so+0x0000019d2892) #33 mozilla::layers::PCompositorChild::OnMessageReceived(IPC::Message const&) /opt/build/froydnj/build-tsan/ipc/ipdl/./PCompositorChild.cpp:820:20 (libxul.so+0x0000013094bb) #34 mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&) /home/froydnj/src/gecko-dev.git/ipc/glue/MessageChannel.cpp:1248:14 (libxul.so+0x000000eb2d68) #35 mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message const&) /home/froydnj/src/gecko-dev.git/ipc/glue/MessageChannel.cpp:1167:9 (libxul.so+0x000000eb1d24) #36 mozilla::ipc::MessageChannel::OnMaybeDequeueOne() /home/froydnj/src/gecko-dev.git/ipc/glue/MessageChannel.cpp:1151:9 (libxul.so+0x000000ead0ea) #37 void DispatchToMethod(mozilla::ipc::MessageChannel*, bool (mozilla::ipc::MessageChannel::*)(), Tuple0 const&) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/tuple.h:383:3 (libxul.so+0x000000ec081a) #38 RunnableMethod::Run() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/task.h:310 (libxul.so+0x000000ec081a) #39 mozilla::ipc::MessageChannel::RefCountedTask::Run() /opt/build/froydnj/build-tsan/ipc/glue/../../dist/include/mozilla/ipc/MessageChannel.h:446:22 (libxul.so+0x000000ec0478) #40 mozilla::ipc::MessageChannel::DequeueTask::Run() /opt/build/froydnj/build-tsan/ipc/glue/../../dist/include/mozilla/ipc/MessageChannel.h:463 (libxul.so+0x000000ec0478) #41 MessageLoop::RunTask(Task*) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:361:3 (libxul.so+0x000000e61d87) #42 MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:369 (libxul.so+0x000000e61d87) #43 MessageLoop::DoWork() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:456:13 (libxul.so+0x000000e6233c) #44 mozilla::ipc::DoWorkRunnable::Run() /home/froydnj/src/gecko-dev.git/ipc/glue/MessagePump.cpp:233:3 (libxul.so+0x000000eb665d) #45 nsThread::ProcessNextEvent(bool, bool*) /home/froydnj/src/gecko-dev.git/xpcom/threads/nsThread.cpp:868:7 (libxul.so+0x000000a0642d) #46 NS_ProcessNextEvent(nsIThread*, bool) /home/froydnj/src/gecko-dev.git/xpcom/glue/nsThreadUtils.cpp:265:10 (libxul.so+0x000000a35689) #47 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/froydnj/src/gecko-dev.git/ipc/glue/MessagePump.cpp:99:21 (libxul.so+0x000000eb6190) #48 MessageLoop::RunInternal() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:233:3 (libxul.so+0x000000e610de) #49 MessageLoop::RunHandler() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:226 (libxul.so+0x000000e610de) #50 MessageLoop::Run() /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/message_loop.cc:200 (libxul.so+0x000000e610de) #51 nsBaseAppShell::Run() /home/froydnj/src/gecko-dev.git/widget/nsBaseAppShell.cpp:165:3 (libxul.so+0x0000034213e8) #52 nsAppStartup::Run() /home/froydnj/src/gecko-dev.git/toolkit/components/startup/nsAppStartup.cpp:280:19 (libxul.so+0x0000040954e9) #53 XREMain::XRE_mainRun() /home/froydnj/src/gecko-dev.git/toolkit/xre/nsAppRunner.cpp:4071:10 (libxul.so+0x0000041042e2) #54 XREMain::XRE_main(int, char**, nsXREAppData const*) /home/froydnj/src/gecko-dev.git/toolkit/xre/nsAppRunner.cpp:4151:8 (libxul.so+0x000004104808) #55 XRE_main /home/froydnj/src/gecko-dev.git/toolkit/xre/nsAppRunner.cpp:4240:16 (libxul.so+0x000004104d94) #56 do_main(int, char**, nsIFile*) /home/froydnj/src/gecko-dev.git/browser/app/nsBrowserApp.cpp:214:10 (firefox+0x0000000a6132) #57 main /home/froydnj/src/gecko-dev.git/browser/app/nsBrowserApp.cpp:478 (firefox+0x0000000a6132) Location is global 'freed_pattern_pool' of size 160 at 0x7fa31b6b70d0 (libxul.so+0x0000068810f0) Thread T38 'Compositor' (tid=13331, running) created by main thread at: #0 pthread_create /home/froydnj/src/llvm.git/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:927 (firefox+0x000000052173) #1 (anonymous namespace)::CreateThread(unsigned long, bool, PlatformThread::Delegate*, unsigned long*) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/platform_thread_posix.cc:144:14 (libxul.so+0x000000e76574) #2 PlatformThread::Create(unsigned long, PlatformThread::Delegate*, unsigned long*) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/platform_thread_posix.cc:155 (libxul.so+0x000000e76574) #3 base::Thread::StartWithOptions(base::Thread::Options const&) /home/froydnj/src/gecko-dev.git/ipc/chromium/src/base/thread.cc:92 (libxul.so+0x000000e76574) #4 mozilla::layers::CompositorThreadHolder::CreateCompositorThread() /home/froydnj/src/gecko-dev.git/gfx/layers/ipc/CompositorParent.cpp:189:8 (libxul.so+0x0000019d3af7) #5 mozilla::layers::CompositorThreadHolder::CompositorThreadHolder() /home/froydnj/src/gecko-dev.git/gfx/layers/ipc/CompositorParent.cpp:141:23 (libxul.so+0x0000019d4eff) #6 mozilla::layers::CompositorParent::StartUp() /home/froydnj/src/gecko-dev.git/gfx/layers/ipc/CompositorParent.cpp:399 (libxul.so+0x0000019d4eff) #7 gfxPlatform::InitLayersIPC() /home/froydnj/src/gecko-dev.git/gfx/thebes/gfxPlatform.cpp:666:9 (libxul.so+0x000001a3edba) #8 gfxPlatform::Init() /home/froydnj/src/gecko-dev.git/gfx/thebes/gfxPlatform.cpp:502:5 (libxul.so+0x000001a3e0f8) #9 gfxPlatform::GetPlatform() /home/froydnj/src/gecko-dev.git/gfx/thebes/gfxPlatform.cpp:416:9 (libxul.so+0x000001a3d3d7) #10 CreateVsyncRefreshTimer() /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:866:5 (libxul.so+0x0000036d12ff) #11 nsRefreshDriver::ChooseTimer() const /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:1000 (libxul.so+0x0000036d12ff) #12 nsRefreshDriver::EnsureTimerStarted(nsRefreshDriver::EnsureTimerStartedFlags) /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:1207:34 (libxul.so+0x0000036d274a) #13 nsRefreshDriver::MostRecentRefresh() const /home/froydnj/src/gecko-dev.git/layout/base/nsRefreshDriver.cpp:1096:3 (libxul.so+0x0000036d2907) #14 nsPresContext::Init(nsDeviceContext*) /home/froydnj/src/gecko-dev.git/layout/base/nsPresContext.cpp:1029:38 (libxul.so+0x0000037daa03) #15 nsDocumentViewer::InitInternal(nsIWidget*, nsISupports*, mozilla::gfx::IntRectTyped const&, bool, bool, bool) /home/froydnj/src/gecko-dev.git/layout/base/nsDocumentViewer.cpp:814:21 (libxul.so+0x0000037954ce) #16 nsDocumentViewer::Init(nsIWidget*, mozilla::gfx::IntRectTyped const&) /home/froydnj/src/gecko-dev.git/layout/base/nsDocumentViewer.cpp:626:10 (libxul.so+0x000003794d0e) #17 nsDocShell::SetupNewViewer(nsIContentViewer*) /home/froydnj/src/gecko-dev.git/docshell/base/nsDocShell.cpp:9295:7 (libxul.so+0x000003d7a9d2) #18 nsDocShell::Embed(nsIContentViewer*, char const*, nsISupports*) /home/froydnj/src/gecko-dev.git/docshell/base/nsDocShell.cpp:7200:17 (libxul.so+0x000003d7a03f) #19 nsDocShell::CreateAboutBlankContentViewer(nsIPrincipal*, nsIURI*, bool) /home/froydnj/src/gecko-dev.git/docshell/base/nsDocShell.cpp:8017:14 (libxul.so+0x000003d7f254) #20 nsDocShell::CreateAboutBlankContentViewer(nsIPrincipal*) /home/froydnj/src/gecko-dev.git/docshell/base/nsDocShell.cpp:8042:10 (libxul.so+0x000003d7f83c) #21 non-virtual thunk to nsDocShell::CreateAboutBlankContentViewer(nsIPrincipal*) /home/froydnj/src/gecko-dev.git/docshell/base/nsDocShell.cpp:8040 (libxul.so+0x000003d7f83c) #22 nsWebShellWindow::Initialize(nsIXULWindow*, nsIXULWindow*, nsIURI*, int, int, bool, nsITabParent*, nsWidgetInitData&) /home/froydnj/src/gecko-dev.git/xpfe/appshell/nsWebShellWindow.cpp:216:10 (libxul.so+0x000003dee25e) #23 nsAppShellService::JustCreateTopWindow(nsIXULWindow*, nsIURI*, unsigned int, int, int, bool, nsITabParent*, nsWebShellWindow**) /home/froydnj/src/gecko-dev.git/xpfe/appshell/nsAppShellService.cpp:603:17 (libxul.so+0x000003debc66) #24 nsAppShellService::CreateHiddenWindowHelper(bool) /home/froydnj/src/gecko-dev.git/xpfe/appshell/nsAppShellService.cpp:128:10 (libxul.so+0x000003deb801) #25 nsAppShellService::CreateHiddenWindow() /home/froydnj/src/gecko-dev.git/xpfe/appshell/nsAppShellService.cpp:90:10 (libxul.so+0x000003deb607) #26 nsAppStartup::CreateHiddenWindow() /home/froydnj/src/gecko-dev.git/toolkit/components/startup/nsAppStartup.cpp:244:10 (libxul.so+0x0000040953da) #27 XREMain::XRE_mainRun() /home/froydnj/src/gecko-dev.git/toolkit/xre/nsAppRunner.cpp:4004:10 (libxul.so+0x0000041040b3) #28 XREMain::XRE_main(int, char**, nsXREAppData const*) /home/froydnj/src/gecko-dev.git/toolkit/xre/nsAppRunner.cpp:4151:8 (libxul.so+0x000004104808) #29 XRE_main /home/froydnj/src/gecko-dev.git/toolkit/xre/nsAppRunner.cpp:4240:16 (libxul.so+0x000004104d94) #30 do_main(int, char**, nsIFile*) /home/froydnj/src/gecko-dev.git/browser/app/nsBrowserApp.cpp:214:10 (firefox+0x0000000a6132) #31 main /home/froydnj/src/gecko-dev.git/browser/app/nsBrowserApp.cpp:478 (firefox+0x0000000a6132) SUMMARY: ThreadSanitizer: data race /home/froydnj/src/gecko-dev.git/gfx/cairo/cairo/src/cairo-freed-pool-private.h:80 _freed_pool_get