Closed Bug 1117338 Opened 11 years ago Closed 11 years ago

Assert when CairoFormatToGfxFormat can't figure out what to use

Categories

(Core :: Graphics: Layers, defect)

35 Branch
All
Android
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla39
Tracking Status
firefox35 - ---
firefox39 --- fixed
fennec + ---

People

(Reporter: djc, Assigned: snorp)

Details

(Keywords: crash, Whiteboard: gfx-noted)

Crash Data

Attachments

(1 file)

This bug was filed from the Socorro interface and is report bp-7c28a6aa-c8f1-4432-bc8b-700e32150103. ============================================================= This reproducibly crashes for me by visiting http://178.175.135.122/ (Pirate Bay countdown), on the Dec 29 Firefox Beta distributed from the Play Store. Nexus 4 running Android 5.0.1. Here's another crash: https://crash-stats.mozilla.com/report/index/d4067360-84b0-4a6d-943b-441022150103 This bug was requested in bug 1049138 comment 75.
snorp, if we put gfxCriticalError into CairoFormatToGfxFormat, instead of gfxWarning, we can get rid of MOZ_ASSERT, but more to the point, we will see these errors in the crash reports (though only in 36 and later.)
Whiteboard: gfx-noted
The reasoning here is that we're going to blow up anyway by returning a SurfaceFormat::UNKNOWN, so just do it here where the problem occurred.
Assignee: nobody → snorp
Attachment #8544132 - Flags: review?(milan)
tracking-fennec: --- → ?
Attachment #8544132 - Flags: review?(milan) → review+
Flags: needinfo?(nhirata.bugzilla)
tracking-fennec: ? → 35+
tracking-fennec: 35+ → +
(Not tracking for 35+ because this bug is just for the additional assert/diagnostic)
Summary: crash in VisitNextEdgeBetweenRect → Assert when CairoFormatToGfxFormat can't figure out what to use
Placing in the stack as Socorro doesn't keep records past a certain time. Build: 20141229214551 Stack: 0 libc.so libc.so@0x124b2 1 libxul.so VisitNextEdgeBetweenRect gfx/src/nsRegion.cpp 2 libxul.so nsRegion::VisitEdges(void (*)(void*, VisitSide, int, int, int, int), void*) gfx/src/nsRegion.cpp 3 libxul.so mozilla::layers::PadDrawTargetOutFromRegion(mozilla::RefPtr<mozilla::gfx::DrawTarget>, nsIntRegion&) gfx/src/nsRegion.h 4 libxul.so mozilla::layers::ClientTiledLayerBuffer::ValidateTile(mozilla::layers::TileClient, nsIntPoint const&, nsIntRegion const&) gfx/layers/client/TiledContentClient.cpp 5 libxul.so mozilla::layers::TiledLayerBuffer<mozilla::layers::ClientTiledLayerBuffer, mozilla::layers::TileClient>::Update(nsIntRegion const&, nsIntRegion const&) gfx/layers/TiledLayerBuffer.h 6 libxul.so mozilla::layers::ClientTiledLayerBuffer::PaintThebes(nsIntRegion const&, nsIntRegion const&, void (*)(mozilla::layers::PaintedLayer*, gfxContext*, nsIntRegion const&, mozilla::layers::DrawRegionClip, nsIntRegion const&, void*), void*) gfx/layers/client/TiledContentClient.cpp 7 libxul.so mozilla::layers::ClientTiledLayerBuffer::ProgressiveUpdate(nsIntRegion&, nsIntRegion&, nsIntRegion const&, mozilla::layers::BasicTiledLayerPaintData*, void (*)(mozilla::layers::PaintedLayer*, gfxContext*, nsIntRegion const&, mozilla::layers::DrawRegionClip, nsIntRegion const&, void*), void*) gfx/layers/client/TiledContentClient.cpp 8 libxul.so mozilla::layers::ClientTiledPaintedLayer::RenderHighPrecision(nsIntRegion&, nsIntRegion const&, void (*)(mozilla::layers::PaintedLayer*, gfxContext*, nsIntRegion const&, mozilla::layers::DrawRegionClip, nsIntRegion const&, void*), void*) gfx/layers/client/ClientTiledPaintedLayer.cpp 9 libxul.so mozilla::layers::ClientTiledPaintedLayer::RenderLayer() gfx/layers/client/ClientTiledPaintedLayer.cpp 10 libxul.so RunnableMethodTraits<FdWatcher>::RetainCallee(FdWatcher*) ipc/chromium/src/base/task.h 11 libxul.so mozilla::layers::ClientContainerLayer::RenderLayer() gfx/layers/client/ClientContainerLayer.h 12 libxul.so RunnableMethodTraits<FdWatcher>::RetainCallee(FdWatcher*) ipc/chromium/src/base/task.h 13 libxul.so mozilla::layers::ClientContainerLayer::RenderLayer() gfx/layers/client/ClientContainerLayer.h 14 libxul.so mozilla::layers::ClientLayerManager::EndTransactionInternal(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, nsIntRegion const&, mozilla::layers::DrawRegionClip, nsIntRegion const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags) gfx/layers/client/ClientLayerManager.cpp 15 libxul.so mozilla::layers::ClientLayerManager::EndTransaction(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, nsIntRegion const&, mozilla::layers::DrawRegionClip, nsIntRegion const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags) gfx/layers/client/ClientLayerManager.cpp 16 libxul.so nsDisplayList::PaintForFrame(nsDisplayListBuilder*, nsRenderingContext*, nsIFrame*, unsigned int) layout/base/nsDisplayList.cpp 17 libxul.so nsDisplayList::PaintRoot(nsDisplayListBuilder*, nsRenderingContext*, unsigned int) layout/base/nsDisplayList.cpp 18 libxul.so nsLayoutUtils::PaintFrame(nsRenderingContext*, nsIFrame*, nsRegion const&, unsigned int, unsigned int) layout/base/nsLayoutUtils.cpp 19 libxul.so PresShell::Paint(nsView*, nsRegion const&, unsigned int) layout/base/nsPresShell.cpp 20 libxul.so nsViewManager::ProcessPendingUpdatesPaint(nsIWidget*) view/nsViewManager.cpp 21 libxul.so nsViewManager::ProcessPendingUpdatesForView(nsView*, bool) view/nsViewManager.cpp 22 libxul.so nsRefreshDriver::Tick(long long, mozilla::TimeStamp) layout/base/nsRefreshDriver.cpp 23 libxul.so nsRefreshDriver::DoTick() layout/base/nsRefreshDriver.cpp 24 libxul.so nsRefreshDriver::FinishedWaitingForTransaction() layout/base/nsRefreshDriver.cpp 25 libxul.so mozilla::layers::ClientLayerManager::DidComposite(unsigned long long) gfx/layers/client/ClientLayerManager.cpp 26 libxul.so mozilla::layers::CompositorChild::RecvDidComposite(unsigned long long const&, unsigned long long const&) gfx/layers/ipc/CompositorChild.cpp 27 libxul.so mozilla::layers::PCompositorChild::OnMessageReceived(IPC::Message const&) obj-firefox/ipc/ipdl/PCompositorChild.cpp 28 libxul.so mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&) ipc/glue/MessageChannel.cpp 29 libxul.so mozilla::ipc::MessageChannel::OnMaybeDequeueOne() ipc/glue/MessageChannel.cpp 30 libxul.so RunnableMethod<FdWatcher, void (FdWatcher::*)(), Tuple0>::Run() ipc/chromium/src/base/tuple.h 31 libxul.so mozilla::ipc::MessageChannel::DequeueTask::Run() ipc/glue/MessageChannel.h 32 libxul.so MessageLoop::RunTask(Task*) ipc/chromium/src/base/message_loop.cc 33 libxul.so MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&) ipc/chromium/src/base/message_loop.cc 34 libxul.so MessageLoop::DoWork() ipc/chromium/src/base/message_loop.cc 35 libxul.so mozilla::ipc::DoWorkRunnable::Run() ipc/glue/MessagePump.cpp 36 libxul.so nsThread::ProcessNextEvent(bool, bool*) xpcom/threads/nsThread.cpp 37 libxul.so NS_ProcessNextEvent(nsIThread*, bool) xpcom/glue/nsThreadUtils.cpp 38 libxul.so mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) ipc/glue/MessagePump.cpp 39 libxul.so MessageLoop::RunInternal() ipc/chromium/src/base/message_loop.cc 40 libxul.so MessageLoop::Run() ipc/chromium/src/base/message_loop.cc 41 libxul.so nsBaseAppShell::Run() widget/xpwidgets/nsBaseAppShell.cpp 42 libxul.so nsAppStartup::Run() toolkit/components/startup/nsAppStartup.cpp 43 libxul.so XREMain::XRE_mainRun() toolkit/xre/nsAppRunner.cpp 44 libxul.so XREMain::XRE_main(int, char**, nsXREAppData const*) toolkit/xre/nsAppRunner.cpp 45 libxul.so XRE_main toolkit/xre/nsAppRunner.cpp 46 libxul.so GeckoStart toolkit/xre/nsAndroidStartup.cpp 47 libmozglue.so Java_org_mozilla_gecko_mozglue_GeckoLoader_nativeRun mozglue/android/APKOpen.cpp Ø 48 data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex@0x844845 Ø 49 dalvik-alloc space (deleted) dalvik-alloc space (deleted)@0x8fce Ø 50 dalvik-main space (deleted) dalvik-main space (deleted)@0xfd57e Ø 51 dalvik-main space (deleted) dalvik-main space (deleted)@0x2ff57e Ø 52 dalvik-main space (deleted) dalvik-main space (deleted)@0x2ff57e Ø 53 dalvik-allocation stack (deleted) dalvik-allocation stack (deleted)@0x1e906e Ø 54 dalvik-alloc space (deleted) dalvik-alloc space (deleted)@0x18f6e Ø 55 dalvik-main space (deleted) dalvik-main space (deleted)@0x2ff57e Ø 56 dalvik-main space (deleted) dalvik-main space (deleted)@0x2ff55e Ø 57 dalvik-main space (deleted) dalvik-main space (deleted)@0x19e2ce Ø 58 dalvik-main space (deleted) dalvik-main space (deleted)@0x2c1de Ø 59 data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex@0x84dde7 Ø 60 dalvik-alloc space (deleted) dalvik-alloc space (deleted)@0x18f6e Ø 61 dalvik-main space (deleted) dalvik-main space (deleted)@0x2ff57e Ø 62 dalvik-main space (deleted) dalvik-main space (deleted)@0x2c1de Ø 63 libart.so libart.so@0xa2e9d Ø 64 dalvik-alloc space (deleted) dalvik-alloc space (deleted)@0x18f6e Ø 65 dalvik-main space (deleted) dalvik-main space (deleted)@0x2c1de Ø 66 dalvik-main space (deleted) dalvik-main space (deleted)@0x1a8d5e Ø 67 dalvik-alloc space (deleted) dalvik-alloc space (deleted)@0x1a1de Ø 68 dalvik-main space (deleted) dalvik-main space (deleted)@0x1a8d5e Ø 69 dalvik-main space (deleted) dalvik-main space (deleted)@0x16fe7e Ø 70 dalvik-main space (deleted) dalvik-main space (deleted)@0x2c1de Ø 71 data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex@0x86a331 Ø 72 dalvik-alloc space (deleted) dalvik-alloc space (deleted)@0x1a1de 73 @0xb3d50ffe Ø 74 dalvik-main space (deleted) dalvik-main space (deleted)@0x1a8d5e Ø 75 libart.so libart.so@0x2c77f2 Ø 76 libart.so libart.so@0xa1b07 Ø 77 dalvik-main space (deleted) dalvik-main space (deleted)@0x16fe7e Ø 78 dalvik-alloc space (deleted) dalvik-alloc space (deleted)@0x1a1de Ø 79 dalvik-alloc space (deleted) dalvik-alloc space (deleted)@0x1a1de Ø 80 libart.so libart.so@0x1e5507 Ø 81 data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex@0x3ab91a Ø 82 data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex@0x3ab91a Ø 83 dalvik-main space (deleted) dalvik-main space (deleted)@0x16fe7e Ø 84 data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex@0x3ab91a Ø 85 libart.so libart.so@0x222647 Ø 86 data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex@0x3ab91a Ø 87 libc.so libc.so@0x11d7b Ø 88 data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex data@app@org.mozilla.firefox_beta-1@base.apk@classes.dex@0x3ab91a Ø 89 dalvik-main space (deleted) dalvik-main space (deleted)@0x16fe7e Ø 94 libart.so libart.so@0x2c77f2 Ø 95 libart.so libart.so@0x2c7f26 Ø 96 libart.so libart.so@0x2c7712 Ø 97 libart.so libart.so@0x2c7726 Ø 98 libc.so libc.so@0x18b03 Ø 99 libc.so libc.so@0x15887 Ø 100 libc.so libc.so@0x158a7 Ø 101 libc.so libc.so@0x15887 Ø 102 libc.so libc.so@0x15887 Ø 103 libc.so libc.so@0x1387b
Flags: needinfo?(nhirata.bugzilla)
Not tracking for 35 due to comment 3
Gonna land the patch?
Flags: needinfo?(snorp)
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla39
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: