Closed
Bug 904658
Opened 11 years ago
Closed 11 years ago
Assertion in mozilla::layers::DeprecatedTextureClientShmem::SetDescriptor
Categories
(Core :: Graphics: Layers, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 904343
People
(Reporter: tzimmermann, Assigned: nrc)
References
Details
(Keywords: crash)
An assertion in mozilla::layers::DeprecatedTextureClientShmem::SetDescriptor fails. This happens almost always when I try to unlock the home screen. The stack trace is shown below. STR: - build with debugging enabled, - flash image to the device, - unlock the home screen by tapping the unlock symbol in the lock screen Expected result: - the home screen gets displayed Actual result: - Gecko crashes. >>>>> mozilla@barney:~/Projects/mozilla/src/B2G-master-unagi$ ./run-gdb.sh attach 504 Attached; pid = 504 Listening on port 11506 prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gdb -x /tmp/b2g.gdbinit.mozilla.14789 /home/mozilla/Projects/mozilla/src/B2G-master-unagi/objdir-gecko-debug/dist/bin/b2g GNU gdb (GDB) 7.1-android-gg2 Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=i686-linux-gnu --target=arm-elf-linux". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /home/mozilla/Projects/mozilla/src/B2G-master-unagi/objdir-gecko-debug/dist/bin/b2g...done. Remote debugging from host 127.0.0.1 c 0x4210be52 in NewGCThing<js::BaseShape, (js::AllowGC)1> (cx=0x404d2960, base=...) at /home/mozilla/Projects/mozilla/src/mozilla-central/js/src/jscntxt.h:155 155 return contextKind_ == Context_JS; (gdb) c Continuing. [New Thread 504.533] Program received signal SIGSEGV, Segmentation fault. 0x41ce367c in mozilla::layers::DeprecatedTextureClientShmem::SetDescriptor (this=0x455c15f0, aDescriptor=...) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/TextureClient.cpp:346 346 MOZ_ASSERT(!mSurface); (gdb) bt #0 0x41ce367c in mozilla::layers::DeprecatedTextureClientShmem::SetDescriptor (this=0x455c15f0, aDescriptor=...) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/TextureClient.cpp:346 #1 0x41cc2ed4 in ~ContentClientDoubleBuffered (this=0x4ab8a6e0, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ContentClient.cpp:309 #2 0x41cc2fa8 in ~ContentClientDoubleBuffered (this=0x4286edbd, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ContentClient.cpp:317 #3 0x41cb3b50 in mozilla::detail::RefCounted<mozilla::layers::CompositableClient, (mozilla::detail::RefCountAtomicity)1>::Release (t=0x4286edbd) at ../../dist/include/mozilla/RefPtr.h:82 #4 mozilla::RefPtr<mozilla::layers::ContentClient>::unref (t=0x4286edbd) at ../../dist/include/mozilla/RefPtr.h:203 #5 0x41cb488e in mozilla::RefPtr<mozilla::layers::ContentClient>::assign (this=0x4aca3dc0, __in_chrg=<value optimized out>) at ../../dist/include/mozilla/RefPtr.h:189 #6 mozilla::RefPtr<mozilla::layers::ContentClient>::operator= (this=0x4aca3dc0, __in_chrg=<value optimized out>) at ../../dist/include/mozilla/RefPtr.h:164 #7 ~ClientThebesLayer (this=0x4aca3dc0, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientThebesLayer.h:32 #8 0x41cb48ec in ~ClientThebesLayer (this=0x4ab8a6e0, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientThebesLayer.h:35 #9 0x40e5b29a in mozilla::layers::Layer::Release (this=0x4aca3dc0) at ../../dist/include/Layers.h:608 #10 0x41cb2006 in ContainerRemoveChild<ClientContainerLayer> (aChild=0x4aca3dc0, aContainer=0x47906800) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientContainerLayer.h:72 #11 0x41cb20a0 in ~ClientContainerLayer (this=0x47906800, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientContainerLayer.h:150 #12 0x41cb20e0 in ~ClientContainerLayer (this=0x4aca3dc0, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientContainerLayer.h:154 #13 0x40e5b29a in mozilla::layers::Layer::Release (this=0x47906800) at ../../dist/include/Layers.h:608 #14 0x41cb2006 in ContainerRemoveChild<ClientContainerLayer> (aChild=0x47906800, aContainer=0x47905000) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientContainerLayer.h:72 #15 0x41cb20a0 in ~ClientContainerLayer (this=0x47905000, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientContainerLayer.h:150 #16 0x41cb20e0 in ~ClientContainerLayer (this=0x47906800, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientContainerLayer.h:154 #17 0x41cd8864 in mozilla::layers::Layer::Release (this=0x45aa3b34, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/Layers.h:608 #18 ~nsRefPtr (this=0x45aa3b34, __in_chrg=<value optimized out>) at ../../dist/include/nsAutoPtr.h:880 #19 0x41cd88d8 in ~LayerPropertiesBase (this=0x45aa3b30, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:116 #20 0x41cd9b28 in ~ContainerLayerProperties (this=0x45aa3b30, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #21 0x41cd9b60 in ~ContainerLayerProperties (this=0x45aa3b34, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #22 0x40c82cfa in ~nsAutoPtr (this=0x4786c16c, __in_chrg=<value optimized out>) at ../../../dist/include/nsAutoPtr.h:77 #23 0x41cd9a60 in nsTArrayElementTraits<nsAutoPtr<mozilla::layers::LayerPropertiesBase> >::Destruct (this=0x45aa37c0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:534 #24 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::DestructRange (this=0x45aa37c0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1549 ---Type <return> to continue, or q <return> to quit--- #25 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::RemoveElementsAt (this=0x45aa37c0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1266 #26 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::Clear (this=0x45aa37c0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1277 #27 ~nsTArray_Impl (this=0x45aa37c0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:748 #28 ~nsTArray (this=0x45aa37c0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1623 #29 ~nsAutoArrayBase (this=0x45aa37c0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1662 #30 ~nsAutoTArray (this=0x45aa37c0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1733 #31 ~ContainerLayerProperties (this=0x45aa37c0, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #32 0x41cd9b60 in ~ContainerLayerProperties (this=0x45aa3b34, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #33 0x40c82cfa in ~nsAutoPtr (this=0x4787fbbc, __in_chrg=<value optimized out>) at ../../../dist/include/nsAutoPtr.h:77 #34 0x41cd9a60 in nsTArrayElementTraits<nsAutoPtr<mozilla::layers::LayerPropertiesBase> >::Destruct (this=0x45aa3500, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:534 #35 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::DestructRange (this=0x45aa3500, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1549 #36 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::RemoveElementsAt (this=0x45aa3500, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1266 #37 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::Clear (this=0x45aa3500, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1277 #38 ~nsTArray_Impl (this=0x45aa3500, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:748 #39 ~nsTArray (this=0x45aa3500, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1623 #40 ~nsAutoArrayBase (this=0x45aa3500, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1662 #41 ~nsAutoTArray (this=0x45aa3500, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1733 #42 ~ContainerLayerProperties (this=0x45aa3500, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #43 0x41cd9b60 in ~ContainerLayerProperties (this=0x45aa3b34, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #44 0x40c82cfa in ~nsAutoPtr (this=0x479c1ef0, __in_chrg=<value optimized out>) at ../../../dist/include/nsAutoPtr.h:77 #45 0x41cd9a60 in nsTArrayElementTraits<nsAutoPtr<mozilla::layers::LayerPropertiesBase> >::Destruct (this=0x45aa30e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:534 #46 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::DestructRange (this=0x45aa30e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1549 #47 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::RemoveElementsAt (this=0x45aa30e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1266 #48 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::Clear (this=0x45aa30e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1277 #49 ~nsTArray_Impl (this=0x45aa30e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:748 #50 ~nsTArray (this=0x45aa30e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1623 #51 ~nsAutoArrayBase (this=0x45aa30e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1662 #52 ~nsAutoTArray (this=0x45aa30e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1733 ---Type <return> to continue, or q <return> to quit--- #53 ~ContainerLayerProperties (this=0x45aa30e0, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #54 0x41cd9b60 in ~ContainerLayerProperties (this=0x45aa3b34, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #55 0x40e95ff0 in ~nsAutoPtr (this=<value optimized out>, aBuilder=0xbeac9c84, aCtx=<value optimized out>, aForFrame=0x5334, aFlags=13) at ../../dist/include/nsAutoPtr.h:77 #56 nsDisplayList::PaintForFrame (this=<value optimized out>, aBuilder=0xbeac9c84, aCtx=<value optimized out>, aForFrame=0x5334, aFlags=13) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsDisplayList.cpp:1224 #57 0x40e960c8 in nsDisplayList::PaintRoot (this=0xbeaca118, aBuilder=0xbeac9d80, aCtx=0x0, aFlags=13) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsDisplayList.cpp:1051 #58 0x40eb0526 in nsLayoutUtils::PaintFrame (aRenderingContext=<value optimized out>, aFrame=0x46e91298, aDirtyRegion=<value optimized out>, aBackstop=<value optimized out>, aFlags=772) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsLayoutUtils.cpp:2126 #59 0x40ec4a94 in PresShell::Paint (this=0x4515d690, aViewToPaint=<value optimized out>, aDirtyRegion=<value optimized out>, aFlags=1) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsPresShell.cpp:5605 #60 0x412bb0fe in nsViewManager::ProcessPendingUpdatesForView (this=0x46b8ffd0, aView=0x46e60970, aFlushDirtyRegion=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/view/src/nsViewManager.cpp:410 #61 0x412bb1b4 in nsViewManager::ProcessPendingUpdates (this=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/view/src/nsViewManager.cpp:1031 #62 0x40ecf77e in nsRefreshDriver::Tick (this=0x17c3f47, aNowEpoch=1583102851, aNowTime=...) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsRefreshDriver.cpp:1233 #63 0x40ecfcf2 in mozilla::RefreshDriverTimer::TickDriver (aTimer=<value optimized out>, aClosure=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsRefreshDriver.cpp:171 #64 mozilla::RefreshDriverTimer::Tick (aTimer=<value optimized out>, aClosure=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsRefreshDriver.cpp:163 #65 mozilla::RefreshDriverTimer::TimerTick (aTimer=<value optimized out>, aClosure=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsRefreshDriver.cpp:188 #66 0x41c3847c in nsTimerImpl::Fire (this=0x45c8abf0) at /home/mozilla/Projects/mozilla/src/mozilla-central/xpcom/threads/nsTimerImpl.cpp:544 #67 0x41c3866a in nsTimerEvent::Run (this=0x45ca54d0) at /home/mozilla/Projects/mozilla/src/mozilla-central/xpcom/threads/nsTimerImpl.cpp:628 #68 0x41c34988 in nsThread::ProcessNextEvent (this=0x40402550, mayWait=<value optimized out>, result=0xbeaca727) at /home/mozilla/Projects/mozilla/src/mozilla-central/xpcom/threads/nsThread.cpp:622 #69 0x41bfc42a in NS_ProcessNextEvent (thread=0x40402550, mayWait=false) at /home/mozilla/Projects/mozilla/src/B2G-master-unagi/objdir-gecko-debug/xpcom/build/nsThreadUtils.cpp:238 #70 0x41841f58 in mozilla::ipc::MessagePump::Run (this=0x40401d90, aDelegate=0x4043e0c0) at /home/mozilla/Projects/mozilla/src/mozilla-central/ipc/glue/MessagePump.cpp:81 #71 0x41c61a5e in MessageLoop::RunInternal (this=0x4043e0c0) at /home/mozilla/Projects/mozilla/src/mozilla-central/ipc/chromium/src/base/message_loop.cc:220 #72 0x41c61a76 in MessageLoop::RunHandler (this=0x4043e0c0) at /home/mozilla/Projects/mozilla/src/mozilla-central/ipc/chromium/src/base/message_loop.cc:213 #73 MessageLoop::Run (this=0x4043e0c0) at /home/mozilla/Projects/mozilla/src/mozilla-central/ipc/chromium/src/base/message_loop.cc:187 #74 0x417c8a66 in nsBaseAppShell::Run (this=0x441483a0) at /home/mozilla/Projects/mozilla/src/mozilla-central/widget/xpwidgets/nsBaseAppShell.cpp:163 #75 0x416d9dc6 in nsAppStartup::Run (this=0x442f26a0) at /home/mozilla/Projects/mozilla/src/mozilla-central/toolkit/components/startup/nsAppStartup.cpp:269 #76 0x40c43340 in XREMain::XRE_mainRun (this=0xbeaca994) at /home/mozilla/Projects/mozilla/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:3855 #77 0x40c45d5a in XREMain::XRE_main (this=0xbeaca994, argc=<value optimized out>, argv=<value optimized out>, aAppData=0x217c0) at /home/mozilla/Projects/mozilla/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:3923 #78 0x40c45ef0 in XRE_main (argc=1, argv=0xbeaccb84, aAppData=0x217c0, aFlags=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:4125 #79 0x00009b34 in do_main (argc=1, argv=0xbeaccb84) at /home/mozilla/Projects/mozilla/src/mozilla-central/b2g/app/nsBrowserApp.cpp:168 ---Type <return> to continue, or q <return> to quit--- #80 main (argc=1, argv=0xbeaccb84) at /home/mozilla/Projects/mozilla/src/mozilla-central/b2g/app/nsBrowserApp.cpp:261 (gdb)
Reporter | ||
Comment 1•11 years ago
|
||
Nick, I bisected this problem to the commit https://hg.mozilla.org/mozilla-central/rev/cead6eb63964 and I suspect that it's caused by the patches of bug 902330.
Flags: needinfo?(ncameron)
Reporter | ||
Comment 2•11 years ago
|
||
I guess SetDescriptor calls ReleaseResources, which clears mSurface.
Assignee | ||
Comment 3•11 years ago
|
||
(In reply to Thomas Zimmermann [:tzimmermann] [:tdz] from comment #1) > Nick, > > I bisected this problem to the commit > > https://hg.mozilla.org/mozilla-central/rev/cead6eb63964 > > and I suspect that it's caused by the patches of bug 902330. I'll take a look at this tomorrow. There has been a lot of churn in texture client code recently. I suspect I have already fixed this in one of the patches in my queue, but not sure which.
Assignee: nobody → ncameron
Flags: needinfo?(ncameron)
Reporter | ||
Comment 4•11 years ago
|
||
Thanks. I just built with the more recent version a8daa428ccbc and the bug is still there. >>>>> mozilla@barney:~/Projects/mozilla/src/B2G-master-unagi$ ./run-gdb.sh attach 489 Attached; pid = 489 Listening on port 11491 prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gdb -x /tmp/b2g.gdbinit.mozilla.17371 /home/mozilla/Projects/mozilla/src/B2G-master-unagi/objdir-gecko-debug/dist/bin/b2g GNU gdb (GDB) 7.1-android-gg2 Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=i686-linux-gnu --target=arm-elf-linux". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /home/mozilla/Projects/mozilla/src/B2G-master-unagi/objdir-gecko-debug/dist/bin/b2g...done. Remote debugging from host 127.0.0.1 0x41bdf142 in SearchTable (table=0x44524494, key=0x3, keyHash=3668340010, op=PL_DHASH_LOOKUP) at /home/mozilla/Projects/mozilla/src/B2G-master-unagi/objdir-gecko-debug/xpcom/build/pldhash.cpp:400 400 if (MATCH_ENTRY_KEYHASH(entry, keyHash) && matchEntry(table, entry, key)) { (gdb) c Continuing. [New Thread 489.521] Program received signal SIGSEGV, Segmentation fault. 0x41cc2e48 in mozilla::layers::DeprecatedTextureClientShmem::SetDescriptor (this=0x45e8ae80, aDescriptor=...) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/TextureClient.cpp:342 342 MOZ_ASSERT(!mSurface); (gdb) bt #0 0x41cc2e48 in mozilla::layers::DeprecatedTextureClientShmem::SetDescriptor (this=0x45e8ae80, aDescriptor=...) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/TextureClient.cpp:342 #1 0x41ca25f4 in ~ContentClientDoubleBuffered (this=0x481f7350, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ContentClient.cpp:309 #2 0x41ca26c8 in ~ContentClientDoubleBuffered (this=0x4283e579, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ContentClient.cpp:317 #3 0x41c931ec in mozilla::detail::RefCounted<mozilla::layers::CompositableClient, (mozilla::detail::RefCountAtomicity)1>::Release (t=0x4283e579) at ../../dist/include/mozilla/RefPtr.h:82 #4 mozilla::RefPtr<mozilla::layers::ContentClient>::unref (t=0x4283e579) at ../../dist/include/mozilla/RefPtr.h:203 #5 0x41c93ec6 in mozilla::RefPtr<mozilla::layers::ContentClient>::assign (this=0x4ad1d9c0, __in_chrg=<value optimized out>) at ../../dist/include/mozilla/RefPtr.h:189 #6 mozilla::RefPtr<mozilla::layers::ContentClient>::operator= (this=0x4ad1d9c0, __in_chrg=<value optimized out>) at ../../dist/include/mozilla/RefPtr.h:164 #7 ~ClientThebesLayer (this=0x4ad1d9c0, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientThebesLayer.h:32 #8 0x41c93f24 in ~ClientThebesLayer (this=0x481f7350, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientThebesLayer.h:35 #9 0x40e500d0 in mozilla::layers::Layer::Release (this=0x4ad1d9c0) at ../../dist/include/Layers.h:608 #10 0x41c916de in ContainerRemoveChild<ClientContainerLayer> (aChild=0x4ad1d9c0, aContainer=0x4aedec00) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientContainerLayer.h:72 #11 0x41c91778 in ~ClientContainerLayer (this=0x4aedec00, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientContainerLayer.h:150 #12 0x41c917b8 in ~ClientContainerLayer (this=0x4ad1d9c0, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientContainerLayer.h:154 #13 0x40e500d0 in mozilla::layers::Layer::Release (this=0x4aedec00) at ../../dist/include/Layers.h:608 #14 0x41c916de in ContainerRemoveChild<ClientContainerLayer> (aChild=0x4aedec00, aContainer=0x4aede000) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientContainerLayer.h:72 #15 0x41c91778 in ~ClientContainerLayer (this=0x4aede000, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientContainerLayer.h:150 #16 0x41c917b8 in ~ClientContainerLayer (this=0x4aedec00, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/client/ClientContainerLayer.h:154 #17 0x41cb7eba in mozilla::layers::Layer::Release (this=0x4b0fb194, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/Layers.h:608 #18 ~nsRefPtr (this=0x4b0fb194, __in_chrg=<value optimized out>) at ../../dist/include/nsAutoPtr.h:880 #19 0x41cb7f20 in ~LayerPropertiesBase (this=0x4b0fb190, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:116 #20 0x41cb9170 in ~ContainerLayerProperties (this=0x4b0fb190, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #21 0x41cb91a8 in ~ContainerLayerProperties (this=0x4b0fb194, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #22 0x40c7c66a in ~nsAutoPtr (this=0x44e414ec, __in_chrg=<value optimized out>) at ../../../dist/include/nsAutoPtr.h:77 #23 0x41cb90a8 in nsTArrayElementTraits<nsAutoPtr<mozilla::layers::LayerPropertiesBase> >::Destruct (this=0x4b0fb0e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:534 #24 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::DestructRange (this=0x4b0fb0e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1549 ---Type <return> to continue, or q <return> to quit--- #25 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::RemoveElementsAt (this=0x4b0fb0e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1266 #26 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::Clear (this=0x4b0fb0e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1277 #27 ~nsTArray_Impl (this=0x4b0fb0e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:748 #28 ~nsTArray (this=0x4b0fb0e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1623 #29 ~nsAutoArrayBase (this=0x4b0fb0e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1662 #30 ~nsAutoTArray (this=0x4b0fb0e0, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1733 #31 ~ContainerLayerProperties (this=0x4b0fb0e0, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #32 0x41cb91a8 in ~ContainerLayerProperties (this=0x4b0fb194, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #33 0x40c7c66a in ~nsAutoPtr (this=0x490cb8cc, __in_chrg=<value optimized out>) at ../../../dist/include/nsAutoPtr.h:77 #34 0x41cb90a8 in nsTArrayElementTraits<nsAutoPtr<mozilla::layers::LayerPropertiesBase> >::Destruct (this=0x4b0fb030, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:534 #35 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::DestructRange (this=0x4b0fb030, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1549 #36 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::RemoveElementsAt (this=0x4b0fb030, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1266 #37 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::Clear (this=0x4b0fb030, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1277 #38 ~nsTArray_Impl (this=0x4b0fb030, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:748 #39 ~nsTArray (this=0x4b0fb030, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1623 #40 ~nsAutoArrayBase (this=0x4b0fb030, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1662 #41 ~nsAutoTArray (this=0x4b0fb030, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1733 #42 ~ContainerLayerProperties (this=0x4b0fb030, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #43 0x41cb91a8 in ~ContainerLayerProperties (this=0x4b0fb194, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #44 0x40c7c66a in ~nsAutoPtr (this=0x44e415f0, __in_chrg=<value optimized out>) at ../../../dist/include/nsAutoPtr.h:77 #45 0x41cb90a8 in nsTArrayElementTraits<nsAutoPtr<mozilla::layers::LayerPropertiesBase> >::Destruct (this=0x4b0faf80, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:534 #46 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::DestructRange (this=0x4b0faf80, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1549 #47 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::RemoveElementsAt (this=0x4b0faf80, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1266 #48 nsTArray_Impl<nsAutoPtr<mozilla::layers::LayerPropertiesBase>, nsTArrayInfallibleAllocator>::Clear (this=0x4b0faf80, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1277 #49 ~nsTArray_Impl (this=0x4b0faf80, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:748 #50 ~nsTArray (this=0x4b0faf80, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1623 #51 ~nsAutoArrayBase (this=0x4b0faf80, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1662 #52 ~nsAutoTArray (this=0x4b0faf80, __in_chrg=<value optimized out>) at ../../dist/include/nsTArray.h:1733 ---Type <return> to continue, or q <return> to quit--- #53 ~ContainerLayerProperties (this=0x4b0faf80, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #54 0x41cb91a8 in ~ContainerLayerProperties (this=0x4b0fb194, __in_chrg=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/gfx/layers/LayerTreeInvalidation.cpp:193 #55 0x40e8a796 in ~nsAutoPtr (this=<value optimized out>, aBuilder=0xbe830c7c, aCtx=<value optimized out>, aForFrame=0x5460, aFlags=13) at ../../dist/include/nsAutoPtr.h:77 #56 nsDisplayList::PaintForFrame (this=<value optimized out>, aBuilder=0xbe830c7c, aCtx=<value optimized out>, aForFrame=0x5460, aFlags=13) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsDisplayList.cpp:1225 #57 0x40e8a870 in nsDisplayList::PaintRoot (this=0xbe831110, aBuilder=0xbe830d78, aCtx=0x0, aFlags=13) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsDisplayList.cpp:1052 #58 0x40ea468c in nsLayoutUtils::PaintFrame (aRenderingContext=<value optimized out>, aFrame=0x46a2b298, aDirtyRegion=<value optimized out>, aBackstop=<value optimized out>, aFlags=772) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsLayoutUtils.cpp:2125 #59 0x40ebdbce in PresShell::Paint (this=0x4505a690, aViewToPaint=<value optimized out>, aDirtyRegion=<value optimized out>, aFlags=1) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsPresShell.cpp:5647 #60 0x412a72a6 in nsViewManager::ProcessPendingUpdatesForView (this=0x46d59850, aView=0x46a2aa10, aFlushDirtyRegion=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/view/src/nsViewManager.cpp:410 #61 0x412a735c in nsViewManager::ProcessPendingUpdates (this=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/view/src/nsViewManager.cpp:1031 #62 0x40ec3ab6 in nsRefreshDriver::Tick (this=0x17af173, aNowEpoch=1322001537, aNowTime=...) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsRefreshDriver.cpp:1233 #63 0x40ec3fea in mozilla::RefreshDriverTimer::TickDriver (aTimer=<value optimized out>, aClosure=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsRefreshDriver.cpp:171 #64 mozilla::RefreshDriverTimer::Tick (aTimer=<value optimized out>, aClosure=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsRefreshDriver.cpp:163 #65 mozilla::RefreshDriverTimer::TimerTick (aTimer=<value optimized out>, aClosure=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/layout/base/nsRefreshDriver.cpp:188 #66 0x41c18f94 in nsTimerImpl::Fire (this=0x45ea0c90) at /home/mozilla/Projects/mozilla/src/mozilla-central/xpcom/threads/nsTimerImpl.cpp:544 #67 0x41c19182 in nsTimerEvent::Run (this=0x45eba4f0) at /home/mozilla/Projects/mozilla/src/mozilla-central/xpcom/threads/nsTimerImpl.cpp:628 #68 0x41c154b0 in nsThread::ProcessNextEvent (this=0x40402550, mayWait=<value optimized out>, result=0xbe831727) at /home/mozilla/Projects/mozilla/src/mozilla-central/xpcom/threads/nsThread.cpp:622 #69 0x41bde2b6 in NS_ProcessNextEvent (thread=0x40402550, mayWait=false) at /home/mozilla/Projects/mozilla/src/B2G-master-unagi/objdir-gecko-debug/xpcom/build/nsThreadUtils.cpp:238 #70 0x4181de60 in mozilla::ipc::MessagePump::Run (this=0x40401d90, aDelegate=0x4043e0c0) at /home/mozilla/Projects/mozilla/src/mozilla-central/ipc/glue/MessagePump.cpp:81 #71 0x41c4161e in MessageLoop::RunInternal (this=0x4043e0c0) at /home/mozilla/Projects/mozilla/src/mozilla-central/ipc/chromium/src/base/message_loop.cc:220 #72 0x41c41636 in MessageLoop::RunHandler (this=0x4043e0c0) at /home/mozilla/Projects/mozilla/src/mozilla-central/ipc/chromium/src/base/message_loop.cc:213 #73 MessageLoop::Run (this=0x4043e0c0) at /home/mozilla/Projects/mozilla/src/mozilla-central/ipc/chromium/src/base/message_loop.cc:187 #74 0x417a5dc6 in nsBaseAppShell::Run (this=0x44247340) at /home/mozilla/Projects/mozilla/src/mozilla-central/widget/xpwidgets/nsBaseAppShell.cpp:163 #75 0x416ba3da in nsAppStartup::Run (this=0x443f2640) at /home/mozilla/Projects/mozilla/src/mozilla-central/toolkit/components/startup/nsAppStartup.cpp:269 #76 0x40c3d4c0 in XREMain::XRE_mainRun (this=0xbe831994) at /home/mozilla/Projects/mozilla/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:3855 #77 0x40c3feda in XREMain::XRE_main (this=0xbe831994, argc=<value optimized out>, argv=<value optimized out>, aAppData=0x217c0) at /home/mozilla/Projects/mozilla/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:3923 #78 0x40c40070 in XRE_main (argc=1, argv=0xbe833b84, aAppData=0x217c0, aFlags=<value optimized out>) at /home/mozilla/Projects/mozilla/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:4125 #79 0x00009b34 in do_main (argc=1, argv=0xbe833b84) at /home/mozilla/Projects/mozilla/src/mozilla-central/b2g/app/nsBrowserApp.cpp:168 ---Type <return> to continue, or q <return> to quit--- #80 main (argc=1, argv=0xbe833b84) at /home/mozilla/Projects/mozilla/src/mozilla-central/b2g/app/nsBrowserApp.cpp:261 (gdb)
Assignee | ||
Comment 5•11 years ago
|
||
(In reply to Thomas Zimmermann [:tzimmermann] [:tdz] from comment #1) > Nick, > > I bisected this problem to the commit > > https://hg.mozilla.org/mozilla-central/rev/cead6eb63964 > > and I suspect that it's caused by the patches of bug 902330. The assert was added in those patches.
Assignee | ||
Comment 6•11 years ago
|
||
This is extremely weird. We should (as you point out) null out mSurface in ReleaseResources and there is no way for it to be reset (that I can see) before the assertion. Nothing inherits from this class, so it shouldn't be a virtual method issue. Is this from a clobber build? Its possible (but unlikely that this could be caused by a compiler error). Can you catch this in a debugger and step through to ReleaseResources and verify that we are calling the implementation in DeprecatedTextureClientShmem and that it is clearing mSurface? Thanks!
Flags: needinfo?(tzimmermann)
Assignee | ||
Updated•11 years ago
|
Component: General → Graphics: Layers
Product: Boot2Gecko → Core
Version: unspecified → Trunk
Reporter | ||
Comment 7•11 years ago
|
||
I debugged this problem a bit further. The SurfaceDescriptor aDescriptor that is passed to SetDescriptor is invalid because it has type 0 (== T__None). So SetDescriptor takes the else branch and enters EnsureAllocated on line 339 with mSize and mContent as arguments. In EnsureAllocated (mSize == aSize), (aContent == mContent) and mDescriptor is valid with type 9 (== TSurfaceDescriptorGralloc). Consequently EnsureAllocated skips ReleaseResources, and mSurface never gets cleared.
Flags: needinfo?(tzimmermann)
Assignee | ||
Comment 8•11 years ago
|
||
AH! That is why I didn't see the problem locally - it is fixed by the patch in bug 904343, which I had applied. I have just had a successful try run, but need to do a little more local testing. Should land in the next couple of days. Thanks for doing the debugging!
Depends on: 904343
Reporter | ||
Comment 9•11 years ago
|
||
Just tried with the latest rev bb025b6949e8 and the problem is gone. Thanks a lot.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•