Crash when opening the web console while viewing a 3D CSS demo (ABORT: Framebuffer not complete)

RESOLVED FIXED in 1.1 QE5

Status

()

defect
--
critical
RESOLVED FIXED
7 years ago
6 years ago

People

(Reporter: jdm, Assigned: jerry)

Tracking

({crash, reproducible})

Trunk
1.1 QE5
x86
macOS
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(blocking-b2g:leo+, firefox25 unaffected, b2g18 fixed, b2g18-v1.0.0 wontfix, b2g18-v1.0.1 wontfix, b2g-v1.1hd fixed)

Details

(crash signature, )

Attachments

(2 attachments)

Posted file Backtrace
I hit this 100% of the time I follow these STR in nightly on OS X 10.6.8. The resulting crash reports don't seem to have any useful information: https://crash-stats.mozilla.com/report/index/bp-322b8ebd-a467-447d-91df-179382120728 and https://crash-stats.mozilla.com/report/index/bp-8e449790-8e53-4f8e-be65-d76bb2120728. I've attached the results of a debug build.

STR:
1. visit the demo linked in the URL field
2. open the web console
3. crash hard, crash fast
(In reply to Josh Matthews [:jdm] from comment #0)
> https://crash-stats.mozilla.com/report/index/bp-8e449790-8e53-4f8e-be65-
> d76bb2120728.
This one is bug 705641.
Severity: normal → critical
Keywords: crash
I cannot reproduce this. jdm, can you reproduce this anymore?
Flags: needinfo?(josh)
Interestingly enough, I now get an immediate crash when opening the link: https://crash-stats.mozilla.com/report/index/bp-d52f7d7f-828c-4a9b-b941-e2ba72121125
Flags: needinfo?(josh)
Crash Signature: [@ mozalloc_abort | NS_DebugBreak_P ] [@ mozalloc_abort | NS_DebugBreak_P | mozilla::layers::LayerManagerOGL::CreateFBOWithTexture ] → [@ mozalloc_abort | NS_DebugBreak_P ] [@ mozalloc_abort | NS_DebugBreak_P | mozilla::layers::LayerManagerOGL::CreateFBOWithTexture ] [@ mozalloc_abort | Abort]
I don't crash opening that link, either. Sounds like it's an intel opengl bug. Can anyone on 10.7+Intel and 10.6+non-Intel try to reproduce?

        User Agent
        Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:20.0) Gecko/20.0 Firefox/20.0

  Graphics

        Device ID
        0x6741

        GPU Accelerated Windows
        1/1 OpenGL

        Vendor ID
        0x1002

        WebGL Renderer
        ATI Technologies Inc. -- ATI Radeon HD 6630M OpenGL Engine
Depends on: 804936
I can reproduce this crash on the unagi 100%, using:

Gecko  http://hg.mozilla.org/releases/mozilla-b2g18/rev/7f6f4bc1a621
Gaia   f1d2e3fd806dc55f167c72ac8ef7a3b6baed915e
BuildID 20130718070206
Version 18.1

Loading the same site, it causes the entire OS to crash and the phone reboots every time.

https://crash-stats.mozilla.com/report/index/64d81727-18d9-4e0d-b4cd-194ef2130718
blocking-b2g: --- → leo?
Component: Graphics → Graphics: Layers
Just tested on leo now and it restarts instantly.

http://css-3d.org/flight-of-the-venturer.htm

Alan, can you take a first look?
blocking-b2g: leo? → leo+
Flags: needinfo?(ahuang)
Hello Peter,
I use v1-train/b2g18 latest code for this:

0x4182ce92 in mozalloc_abort (msg=<value optimized out>) at /home/alan/git/B2G/gecko/memory/mozalloc/mozalloc_abort.cpp:30
30	    MOZ_CRASH();
(gdb) bt
> #0  0x4182ce92 in mozalloc_abort (msg=<value optimized out>) at /home/alan/git/B2G/gecko/memory/mozalloc/mozalloc_abort.cpp:30
> #1  0x413b5eb4 in Abort (aSeverity=<value optimized out>, aStr=0x482aa5e8 "Framebuffer not complete -- error 0x0, mFBOTextureTarget 0xde1, aRect.width 4133, aRect.height 1000", 
>     aExpr=<value optimized out>, aFile=<value optimized out>, aLine=1449) at /home/alan/git/B2G/gecko/xpcom/base/nsDebugImpl.cpp:423
> #2  NS_DebugBreak_P (aSeverity=<value optimized out>, aStr=0x482aa5e8 "Framebuffer not complete -- error 0x0, mFBOTextureTarget 0xde1, aRect.width 4133, aRect.height 1000", 
>     aExpr=<value optimized out>, aFile=<value optimized out>, aLine=1449) at /home/alan/git/B2G/gecko/xpcom/base/nsDebugImpl.cpp:380
> #3  0x41423e6a in mozilla::layers::LayerManagerOGL::CreateFBOWithTexture (this=0x4838fe00, aRect=..., aInit=mozilla::layers::LayerManagerOGL::InitModeNone, 
>     aCurrentFrameBuffer=<value optimized out>, aFBO=0x43eff260, aTexture=0x43eff264) at /home/alan/git/B2G/gecko/gfx/layers/opengl/LayerManagerOGL.cpp:1449
> #4  0x4141f7ce in ContainerRender<mozilla::layers::ShadowContainerLayerOGL> (this=0x4b074000, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:225
> #5  mozilla::layers::ShadowContainerLayerOGL::RenderLayer (this=0x4b074000, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:449
> #6  0x4141f9ee in ContainerRender<mozilla::layers::ShadowContainerLayerOGL> (this=0x48c6e800, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:263
> #7  mozilla::layers::ShadowContainerLayerOGL::RenderLayer (this=0x48c6e800, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:449
> #8  0x4141fd62 in ContainerRender<mozilla::layers::ShadowRefLayerOGL> (this=0x4b3e5400, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:263
> #9  mozilla::layers::ShadowRefLayerOGL::RenderLayer (this=0x4b3e5400, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:490
> #10 0x4141f9ee in ContainerRender<mozilla::layers::ShadowContainerLayerOGL> (this=0x4b04fc00, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:263
> #11 mozilla::layers::ShadowContainerLayerOGL::RenderLayer (this=0x4b04fc00, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:449
> #12 0x4141f9ee in ContainerRender<mozilla::layers::ShadowContainerLayerOGL> (this=0x49497c00, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:263
> #13 mozilla::layers::ShadowContainerLayerOGL::RenderLayer (this=0x49497c00, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:449
> #14 0x4141f9ee in ContainerRender<mozilla::layers::ShadowContainerLayerOGL> (this=0x4b3e3800, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:263
> #15 mozilla::layers::ShadowContainerLayerOGL::RenderLayer (this=0x4b3e3800, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:449
> #16 0x4141f9ee in ContainerRender<mozilla::layers::ShadowContainerLayerOGL> (this=0x49433800, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:263
> #17 mozilla::layers::ShadowContainerLayerOGL::RenderLayer (this=0x49433800, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:449
> #18 0x4141f9ee in ContainerRender<mozilla::layers::ShadowContainerLayerOGL> (this=0x49433000, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:263
> #19 mozilla::layers::ShadowContainerLayerOGL::RenderLayer (this=0x49433000, aPreviousFrameBuffer=0, aOffset=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/ContainerLayerOGL.cpp:449
> #20 0x414241f8 in mozilla::layers::LayerManagerOGL::Render (this=0x4838fe00) at /home/alan/git/B2G/gecko/gfx/layers/opengl/LayerManagerOGL.cpp:1035
> #21 0x4142466a in mozilla::layers::LayerManagerOGL::EndTransaction (this=0x4838fe00, aCallback=<value optimized out>, aCallbackData=0x0, aFlags=<value optimized out>)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/LayerManagerOGL.cpp:702
> #22 0x4142219e in mozilla::layers::LayerManagerOGL::EndEmptyTransaction (this=0xe6, aFlags=mozilla::layers::LayerManager::END_DEFAULT)
>     at /home/alan/git/B2G/gecko/gfx/layers/opengl/LayerManagerOGL.cpp:641
> #23 0x4142fc5e in mozilla::layers::CompositorParent::Composite (this=<value optimized out>) at /home/alan/git/B2G/gecko/gfx/layers/ipc/CompositorParent.cpp:555
> #24 0x4102bc26 in DispatchToMethod<mozilla::system::AutoMounter, void (mozilla::system::AutoMounter::*)()> (this=<value optimized out>)
>     at /home/alan/git/B2G/gecko/ipc/chromium/src/base/tuple.h:383
> #25 RunnableMethod<mozilla::system::AutoMounter, void (mozilla::system::AutoMounter::*)(), Tuple0>::Run (this=<value optimized out>)
>     at /home/alan/git/B2G/gecko/ipc/chromium/src/base/task.h:307
> #26 0x413d3bb4 in MessageLoop::RunTask (this=0x43effdec, task=0x43efe830) at /home/alan/git/B2G/gecko/ipc/chromium/src/base/message_loop.cc:337
> #27 0x413d49e6 in MessageLoop::DeferOrRunPendingTask (this=0xe6, pending_task=<value optimized out>) at /home/alan/git/B2G/gecko/ipc/chromium/src/base/message_loop.cc:345
> #28 0x413d55c4 in MessageLoop::DoWork (this=0x43effdec) at /home/alan/git/B2G/gecko/ipc/chromium/src/base/message_loop.cc:445
> #29 0x413d5854 in base::MessagePumpDefault::Run (this=0x42d884c0, delegate=0x43effdec) at /home/alan/git/B2G/gecko/ipc/chromium/src/base/message_pump_default.cc:23
> #30 0x413d3b70 in MessageLoop::RunInternal (this=0x0) at /home/alan/git/B2G/gecko/ipc/chromium/src/base/message_loop.cc:219
> #31 0x413d3c1a in MessageLoop::RunHandler (this=0x43effdec) at /home/alan/git/B2G/gecko/ipc/chromium/src/base/message_loop.cc:212
> #32 MessageLoop::Run (this=0x43effdec) at /home/alan/git/B2G/gecko/ipc/chromium/src/base/message_loop.cc:186
> #33 0x413dbf34 in base::Thread::ThreadMain (this=0x43fafa00) at /home/alan/git/B2G/gecko/ipc/chromium/src/base/thread.cc:156
> #34 0x413e5efc in ThreadFunc (closure=0x1) at /home/alan/git/B2G/gecko/ipc/chromium/src/base/platform_thread_posix.cc:39
> #35 0x400f1e18 in __thread_entry (func=0x413e5ef5 <ThreadFunc>, arg=0x43fafa00, tls=<value optimized out>) at bionic/libc/bionic/pthread.c:217
> #36 0x400f196c in pthread_create (thread_out=<value optimized out>, attr=0xbecaf2b8, start_routine=0x413e5ef5 <ThreadFunc>, arg=0x43fafa00) at bionic/libc/bionic/pthread.c:357
> #37 0x00000000 in ?? ()
Flags: needinfo?(ahuang) → needinfo?(pchang)
I though the website was trying to create a very big area for rendering and the maximum texture size supported by QCT GPU is about 4096. Therefore, b2g sent out abort signal.

[Err]
Framebuffer not complete -- error 0x0, mFBOTextureTarget 0xde1, aRect.width 4133, aRect.height 1000

[Src]
void 
LayerManagerOGL::SetupBackBuffer(int aWidth, int aHeight)
...
  GLenum result = mGLContext->fCheckFramebufferStatus(LOCAL_GL_FRAMEBUFFER);
  if (result != LOCAL_GL_FRAMEBUFFER_COMPLETE) {
    nsAutoCString msg;
    msg.Append("Framebuffer not complete -- error 0x");
    msg.AppendInt(result, 16);
    NS_RUNTIMEABORT(msg.get());
  }
Flags: needinfo?(pchang)
I couldn't reproduce it on m-c and found it was fixed at bug 696768.

Jerry, please help to merge patch to b2g18.
Flags: needinfo?(hshih)
checking the difference between b2g18 and mozilla-central
Flags: needinfo?(hshih)
Trying to prevent crash if allocate FBO failed as in mozilla-central
Assignee: nobody → hshih
merge

bug 867226
return failed instead of abort when create texture failed

bug 827170
clamp the texture size to fit the GPU limitation
Attachment #782971 - Flags: review?(bjacob)
Attachment #782971 - Flags: review?(bgirard)
(In reply to Jerry Shih[:jerry] from comment #12)
> Created attachment 782971 [details] [diff] [review]
> limit framebuffer rect size
> 
> merge
> 
> bug 867226
> return failed instead of abort when create texture failed
> 
> bug 827170
> clamp the texture size to fit the GPU limitation

for b2g18 leo
Comment on attachment 782971 [details] [diff] [review]
limit framebuffer rect size

This patch is already in tree and working fine. My review is enough.
Attachment #782971 - Flags: review?(bjacob)
Attachment #782971 - Flags: review?(bgirard)
Attachment #782971 - Flags: review+
https://hg.mozilla.org/releases/mozilla-b2g18/rev/aff662053ee8
Status: NEW → RESOLVED
Closed: 6 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Target Milestone: --- → 1.1 QE5
You need to log in before you can comment on or make changes to this bug.