Closed Bug 621699 Opened 14 years ago Closed 14 years ago

crash [@ linux-gate.so@0x416 ] starting webgl demos - X_FreeGC: BadGC (invalid GC parameter); X_CreateGC: BadDrawable (invalid Pixmap or Window parameter)

Categories

(Core :: Graphics: CanvasWebGL, defect)

All
Linux
defect
Not set
critical

Tracking

()

RESOLVED DUPLICATE of bug 589546
Tracking Status
blocking2.0 --- -

People

(Reporter: aja+bugzilla, Unassigned)

References

Details

(Keywords: crash, regression, Whiteboard: [mozmill])

Crash Data

We know that many OpenGL drivers on linux are crashy: that's one of the 2 reasons why WebGL isn't enabled by default yet on linux.
Please detail your hardware/config, that can be useful to know to build a blacklist.
(In reply to comment #1) > We know that many OpenGL drivers on linux are crashy: that's one of the 2 > reasons why WebGL isn't enabled by default yet on linux. If I can trust the lack of bolding on any of these about:config prefs, the following are all current defaults webgl.enabled_for_all_sites;true webgl.force_osmesa;false webgl.mochitest_native_gl;false webgl.osmesalib; webgl.shader_validator;true webgl.verbose;false (In reply to comment #2) > Please detail your hardware/config, that can be useful to know to build a > blacklist. lspci | grep VGA 01:00.0 VGA compatible controller: nVidia Corporation NV5M64 [RIVA TNT2 Model 64/Model 64 Pro] (rev 15) sudo lshw -C video *-display description: VGA compatible controller product: NV5M64 [RIVA TNT2 Model 64/Model 64 Pro] vendor: nVidia Corporation physical id: 0 bus info: pci@0000:01:00.0 version: 15 width: 32 bits clock: 66MHz capabilities: pm agp agp-2.0 vga_controller bus_master cap_list rom configuration: driver=nouveau latency=64 maxlatency=1 mingnt=5 resources: irq:16 memory:f4000000-f4ffffff memory:f6000000-f7ffffff memory:f5ff0000-f5ffffff This is on an updated Maverick Meerkat Ubuntu, which now reports as Natty Narwhal. Using Ubuntu-installed open source driver, not nVidia's.
Just installed libosmesa6 and mesa-utils packages: $ glxinfo |grep version server glx version string: 1.4 client glx version string: 1.4 GLX version: 1.4 OpenGL version string: 2.1 Mesa 7.9-devel OpenGL shading language version string: 1.20 but haven't tried using software rendering yet.
FWIW, no crashes with software rendering enabled webgl.force_osmesa;true webgl.osmesalib;/usr/lib/libOSMesa.so.6.5.3
Signature linux-gate.so@0x416 UUID 3cf42869-37f0-49fd-aa24-3f6362101228 Time 2010-12-28 07:20:50.901293 Uptime 1851 Last Crash 4665036 seconds (7.7 weeks) before submission Install Age 1851 seconds (30.9 minutes) since version was first installed. Product Firefox Version 4.0b9pre Build ID 20101228030339 Branch 2.0 OS Linux OS Version 0.0.0 Linux 2.6.35-24-generic #42-Ubuntu SMP Thu Dec 2 01:41:57 UTC 2010 i686 CPU x86 CPU Info GenuineIntel family 15 model 1 stepping 2 Crash Reason SIGABRT Crash Address 0x107a User Comments launching ray tracer webgl demo (ubuntu, h/w doesn't support acceleration) App Notes X_FreeGC: BadGC (invalid GC parameter); 3 requests ago Processor Notes EMCheckCompatibility False Related Bugs Frame Module Signature [Expand] Source 0 linux-gate.so linux-gate.so@0x416 1 libc-2.12.1.so libc-2.12.1.so@0x2de41 2 libmozalloc.so mozalloc_abort mozalloc_abort.cpp:75 3 libxul.so NS_DebugBreak_P nsDebugImpl.cpp:379 4 libxul.so X11Error nsX11ErrorHandler.cpp:190 5 libbonoboui-2.so.0.0.0 libbonoboui-2.so.0.0.0@0x20c73 6 libX11.so.6.3.0 libX11.so.6.3.0@0x3b2c8 7 libX11.so.6.3.0 libX11.so.6.3.0@0x4199e 8 libX11.so.6.3.0 libX11.so.6.3.0@0x42405 9 libX11.so.6.3.0 libX11.so.6.3.0@0x2aa97 10 libgdk-x11-2.0.so.0.2200.0 libgdk-x11-2.0.so.0.2200.0@0x538d7 11 libglib-2.0.so.0.2600.0 libglib-2.0.so.0.2600.0@0x40e69 12 libglib-2.0.so.0.2600.0 libglib-2.0.so.0.2600.0@0x41278 13 libglib-2.0.so.0.2600.0 libglib-2.0.so.0.2600.0@0x41847 14 libxul.so nsAppShell::ProcessNextNativeEvent nsAppShell.cpp:144 15 libxul.so nsBaseAppShell::DoProcessNextNativeEvent nsBaseAppShell.cpp:173 16 libxul.so nsBaseAppShell::OnProcessNextEvent nsBaseAppShell.cpp:315 17 libxul.so nsThread::ProcessNextEvent nsThread.cpp:590 18 libxul.so libxul.so@0xd60cb6 19 libxul.so XPCWrappedNative::CallMethod xpcwrappednative.cpp:3064 20 libxul.so XPC_WN_CallMethod xpcwrappednativejsops.cpp:1588 21 libxul.so js::Interpret jscntxtinlines.h:684 22 libxul.so js::mjit::stubs::UncachedCallHelper InvokeHelpers.cpp:389 23 libxul.so js::mjit::ic::Call MonoIC.cpp:831 24 @0x2aa9924 25 libxul.so js::mjit::JaegerShot MethodJIT.cpp:745 26 libxul.so js::Invoke jsinterp.cpp:654 27 libxul.so js::ExternalInvoke jsinterp.cpp:858 28 libxul.so JS_CallFunctionValue jsinterp.h:962 29 libxul.so nsXPCWrappedJSClass::CallMethod xpcwrappedjsclass.cpp:1697 30 libxul.so nsXPCWrappedJS::CallMethod xpcwrappedjs.cpp:588 31 libxul.so PrepareAndDispatch xptcstubs_gcc_x86_unix.cpp:95 32 libxul.so nsGlobalWindow::Alert nsGlobalWindow.cpp:4638 33 libxul.so nsGlobalWindow::Alert nsGlobalWindow.cpp:4580 34 libxul.so libxul.so@0xd60cb6 35 libxul.so XPCWrappedNative::CallMethod xpcwrappednative.cpp:3064 36 libxul.so XPC_WN_CallMethod xpcwrappednativejsops.cpp:1588 37 libxul.so CallCompiler::generateNativeStub jscntxtinlines.h:684 38 libxul.so js::mjit::ic::NativeCall MonoIC.cpp:898 39 @0x37a678b 40 libxul.so js::mjit::JaegerShot MethodJIT.cpp:745 41 libxul.so js::Invoke jsinterp.cpp:654 42 libxul.so js::ExternalInvoke jsinterp.cpp:858 43 libxul.so JS_CallFunctionValue jsinterp.h:962 44 libxul.so nsJSContext::CallEventHandler nsJSEnvironment.cpp:2177 45 libxul.so nsJSEventListener::HandleEvent nsJSEventListener.cpp:228 46 libxul.so nsEventListenerManager::HandleEventSubType nsEventListenerManager.cpp:1114 47 libxul.so nsEventListenerManager::HandleEventInternal nsEventListenerManager.cpp:1209 48 libxul.so nsEventTargetChainItem::HandleEvent nsEventListenerManager.h:146 49 libxul.so nsEventTargetChainItem::HandleEventTargetChain nsEventDispatcher.cpp:341 50 libxul.so nsEventDispatcher::Dispatch nsEventDispatcher.cpp:628 51 libxul.so DocumentViewerImpl::LoadComplete nsDocumentViewer.cpp:1034 52 libxul.so nsDocShell::EndPageLoad nsDocShell.cpp:6040 53 libxul.so nsDocShell::OnStateChange nsDocShell.cpp:5894 54 libxul.so nsDocLoader::FireOnStateChange nsDocLoader.cpp:1334 55 libxul.so nsDocLoader::doStopDocumentLoad nsDocLoader.cpp:942 56 libxul.so nsDocLoader::DocLoaderIsEmpty nsDocLoader.cpp:818 57 libxul.so nsDocLoader::OnStopRequest nsDocLoader.cpp:702 58 libxul.so nsLoadGroup::RemoveRequest nsLoadGroup.cpp:680 59 libxul.so nsDocument::DoUnblockOnload nsDocument.cpp:7265 60 libxul.so nsDocument::DispatchContentLoadedEvents nsDocument.cpp:4181 61 libxul.so nsRunnableMethodImpl<void , true>::Run nsThreadUtils.h:345 62 libxul.so nsThread::ProcessNextEvent nsThread.cpp:626 63 libxul.so libxul.so@0xd60cb6 64 libxul.so XPCWrappedNative::CallMethod xpcwrappednative.cpp:3064 65 libxul.so XPC_WN_CallMethod xpcwrappednativejsops.cpp:1588 66 libxul.so js::Interpret jscntxtinlines.h:684 67 libxul.so js::Invoke jsinterp.cpp:657 68 libxul.so js::ExternalInvoke jsinterp.cpp:858 69 libxul.so JS_CallFunctionValue jsinterp.h:962 70 libxul.so nsXPCWrappedJSClass::CallMethod xpcwrappedjsclass.cpp:1697 71 libxul.so nsXPCWrappedJS::CallMethod xpcwrappedjs.cpp:588 72 libxul.so PrepareAndDispatch xptcstubs_gcc_x86_unix.cpp:95 73 libxul.so nsNavHistory::NotifyOnVisit nsNavHistory.cpp:2112 74 libxul.so mozilla::places::::NotifyVisitObservers::Run History.cpp:247 75 libxul.so nsThread::ProcessNextEvent nsThread.cpp:626 76 libxul.so NS_ProcessNextEvent_P nsThreadUtils.cpp:250 77 libxul.so mozilla::ipc::MessagePump::Run MessagePump.cpp:110 78 libxul.so MessageLoop::RunInternal message_loop.cc:219 79 libxul.so MessageLoop::Run message_loop.cc:202 80 libxul.so nsBaseAppShell::Run nsBaseAppShell.cpp:192 81 libxul.so nsAppStartup::Run nsAppStartup.cpp:191 82 @0x22c0ecf 83 libxul.so XRE_main nsAppRunner.cpp:3694 84 firefox-bin main nsBrowserApp.cpp:158 85 libc-2.12.1.so libc-2.12.1.so@0x16ce6 86 firefox-bin firefox-bin@0x1390 87 firefox-bin Output nsBrowserApp.cpp:77 88 @0x3
Summary: crash [@ linux-gate.so@0x416 ] starting webgl demos → crash [@ linux-gate.so@0x416 ] starting webgl demos - X_FreeGC: BadGC (invalid GC parameter); 3 requests ago
(In reply to comment #3) > (In reply to comment #1) > > We know that many OpenGL drivers on linux are crashy: that's one of the 2 > > reasons why WebGL isn't enabled by default yet on linux. > > If I can trust the lack of bolding on any of these about:config prefs, the > following are all current defaults > > webgl.enabled_for_all_sites;true Sorry, I was out of date. WebGL has been re-enabled on linux in bug 578877. So it is *really* urgent to implement a linux blacklist, and the present bug must be a blocker.
blocking2.0: --- → ?
(In reply to comment #5) > FWIW, no crashes with software rendering enabled > > webgl.force_osmesa;true > webgl.osmesalib;/usr/lib/libOSMesa.so.6.5.3 Thanks, this further confirms that the crash is a driver crash.
(In reply to comment #3) > lspci | grep VGA > 01:00.0 VGA compatible controller: nVidia Corporation NV5M64 [RIVA TNT2 Model > 64/Model 64 Pro] (rev 15) Can you please paste the output of this command: glxinfo | egrep -i vendor\|renderer\|version My hope is that the GLX strings are enough to distinguish your driver from the proprietary NVIDIA driver, so that we won't have to create a GL context at all.
(In reply to comment #10) > Can you please paste the output of this command: > > glxinfo | egrep -i vendor\|renderer\|version > > My hope is that the GLX strings are enough to distinguish your driver from the > proprietary NVIDIA driver, so that we won't have to create a GL context at all. $ glxinfo | egrep -i vendor\|renderer\|version server glx vendor string: SGI server glx version string: 1.4 client glx vendor string: Mesa Project and SGI client glx version string: 1.4 GLX version: 1.4 OpenGL vendor string: Mesa Project OpenGL renderer string: Software Rasterizer OpenGL version string: 2.1 Mesa 7.9-devel OpenGL shading language version string: 1.20 Will uninstall libosmesa6 package next and repost.
Uninstalled libosmesa6 package and rebooted, glxinfo shows same as in comment 10. /me scratches head.
libosmesa won't affect this; instead, you need to look at your Xorg configuration and logs to find out why your accelerated GL isn't picked up.
Oh, bug 622152 rings a bell, the X error there is something we should catch and fail to, this could be related to bug 616416 so I should finish the work on that bug first.
Severity: normal → critical
Keywords: crash, regression
Hardware: x86 → All
Whiteboard: [mozmill]
Might be a dupe of bug 589546
from bug 622039 comment 10: Signature linux-gate.so@0x430 bp-4a7024b1-1eb1-4645-8493-f5fbe2110102 Time 2011-01-02 19:04:48.247187 Uptime 17 Last Crash 242463 seconds (2.8 days) before submission Install Age 338274 seconds (3.9 days) since version was first installed. Product Firefox Version 4.0b7 Build ID 20101104125541 Branch 2.0 OS Linux OS Version 0.0.0 Linux 2.6.37-rc7+ #8 SMP Wed Dec 22 16:55:22 CST 2010 i686 CPU x86 CPU Info GenuineIntel family 6 model 23 stepping 10 Crash Reason SIGABRT Crash Address 0xd3a User Comments regenerate use correct --sync, not -sync. App Notes X_FreeGC: BadGC (invalid GC parameter); sync Processor Notes EMCheckCompatibility False Related Bugs Crashing Thread Frame Module Signature [Expand] Source 0 linux-gate.so linux-gate.so@0x430 1 libc-2.12.1.so libc-2.12.1.so@0x2de41 2 libmozalloc.so mozalloc_abort mozalloc_abort.cpp:75 3 libxul.so NS_DebugBreak_P xpcom/base/nsDebugImpl.cpp:379 4 libxul.so X11Error toolkit/xre/nsX11ErrorHandler.cpp:190 5 libbonoboui-2.so.0.0.0 libbonoboui-2.so.0.0.0@0x20c73 6 libX11.so.6.3.0 libX11.so.6.3.0@0x3b2c8 7 libX11.so.6.3.0 libX11.so.6.3.0@0x4199e 8 libX11.so.6.3.0 libX11.so.6.3.0@0x42035 9 libX11.so.6.3.0 libX11.so.6.3.0@0x35866 10 libX11.so.6.3.0 libX11.so.6.3.0@0x359f4 11 libX11.so.6.3.0 libX11.so.6.3.0@0x1c283 12 libGL.so.1.2 libGL.so.1.2@0x376c0 13 libGL.so.1.2 libGL.so.1.2@0x3798b 14 libGL.so.1.2 libGL.so.1.2@0x37b04 15 libGL.so.1.2 libGL.so.1.2@0x37213 16 libGL.so.1.2 libGL.so.1.2@0x156c5 17 libGL.so.1.2 libGL.so.1.2@0x158a2 18 libxul.so mozilla::gl::GLContextGLX::MakeCurrentImpl gfx/thebes/GLContextProviderGLX.cpp:264 19 libxul.so mozilla::gl::GLContextGLX::CreateGLContext gfx/thebes/GLContext.h:409 20 libxul.so mozilla::gl::CreateOffscreenPixmapContext gfx/thebes/GLContextProviderGLX.cpp:624 21 libxul.so mozilla::gl::GLContextProviderGLX::CreateOffscreen gfx/thebes/GLContextProviderGLX.cpp:635 22 libxul.so mozilla::WebGLContext::SetDimensions content/canvas/src/WebGLContext.cpp:395 23 libxul.so nsHTMLCanvasElement::UpdateContext content/html/content/src/nsHTMLCanvasElement.cpp:514 24 libxul.so nsHTMLCanvasElement::GetContext content/html/content/src/nsHTMLCanvasElement.cpp:447 25 libxul.so nsIDOMHTMLCanvasElement_GetContext dom_quickstubs.cpp:20968 26 libxul.so CallCompiler::generateNativeStub js/src/jscntxtinlines.h:684 27 libxul.so js::mjit::ic::NativeCall js/src/methodjit/MonoIC.cpp:851 28 @0xa76e2549 29 libxul.so js::mjit::JaegerShot js/src/methodjit/MethodJIT.cpp:739 30 libxul.so js::Execute js/src/jsinterp.cpp:662 31 libxul.so JS_EvaluateUCScriptForPrincipals js/src/jsapi.cpp:4819 32 libxul.so JS_EvaluateUCScriptForPrincipalsVersion js/src/jsapi.cpp:4795 33 libxul.so nsJSContext::EvaluateString dom/base/nsJSEnvironment.cpp:1731 34 libxul.so nsScriptLoader::EvaluateScript content/base/src/nsScriptLoader.cpp:845 35 libxul.so nsScriptLoader::ProcessRequest content/base/src/nsScriptLoader.cpp:748 36 libxul.so nsScriptLoader::ProcessPendingRequests content/base/src/nsScriptLoader.cpp:888 37 libxul.so nsScriptLoader::OnStreamComplete content/base/src/nsScriptLoader.cpp:1109 it *sounds* like it could be a dupe of bug 616416, but i can't find a reference to BadGC there.
> 5 libbonoboui-2.so.0.0.0 libbonoboui-2.so.0.0.0@0x20c73 libbonoboui suppresses BadDrawable errors, so BadGC is likely not the first error. (Bug 589546 comment 52.)
App Notes X_CreateGC: BadDrawable (invalid Pixmap or Window parameter); sync Frame Module Signature [Expand] Source 0 linux-gate.so linux-gate.so@0x430 1 libc-2.12.1.so libc-2.12.1.so@0x2de41 2 libmozalloc.so mozalloc_abort mozalloc_abort.cpp:75 3 libxul.so NS_DebugBreak_P xpcom/base/nsDebugImpl.cpp:379 4 libxul.so X11Error toolkit/xre/nsX11ErrorHandler.cpp:190 5 libX11.so.6.3.0 libX11.so.6.3.0@0x3b2c8 6 libX11.so.6.3.0 libX11.so.6.3.0@0x4199e 7 libX11.so.6.3.0 libX11.so.6.3.0@0x42035 8 libX11.so.6.3.0 libX11.so.6.3.0@0x35866 9 libX11.so.6.3.0 libX11.so.6.3.0@0x359f4 10 libX11.so.6.3.0 libX11.so.6.3.0@0x3a79e 11 libX11.so.6.3.0 libX11.so.6.3.0@0x16a7b 12 libGL.so.1.2 libGL.so.1.2@0x37790 13 libGL.so.1.2 libGL.so.1.2@0x37bb5 14 libGL.so.1.2 libGL.so.1.2@0x37251 15 libGL.so.1.2 libGL.so.1.2@0x1573f 16 libGL.so.1.2 libGL.so.1.2@0x158a2 17 libxul.so mozilla::gl::GLContextGLX::MakeCurrentImpl gfx/thebes/GLContextProviderGLX.cpp:264 18 libxul.so mozilla::gl::GLContextGLX::CreateGLContext gfx/thebes/GLContext.h:409 19 libxul.so mozilla::gl::CreateOffscreenPixmapContext gfx/thebes/GLContextProviderGLX.cpp:624 20 libxul.so mozilla::gl::GLContextProviderGLX::GetGlobalContext gfx/thebes/GLContextProviderGLX.cpp:723 21 libxul.so mozilla::gl::CreateOffscreenPixmapContext gfx/thebes/GLContextProviderGLX.cpp:399 22 libxul.so mozilla::gl::GLContextProviderGLX::CreateOffscreen gfx/thebes/GLContextProviderGLX.cpp:635 23 libxul.so mozilla::WebGLContext::SetDimensions content/canvas/src/WebGLContext.cpp:395 24 libxul.so nsHTMLCanvasElement::UpdateContext content/html/content/src/nsHTMLCanvasElement.cpp:514 25 libxul.so nsHTMLCanvasElement::GetContext content/html/content/src/nsHTMLCanvasElement.cpp:447 26 libxul.so nsIDOMHTMLCanvasElement_GetContext dom_quickstubs.cpp:20968 27 libxul.so CallCompiler::generateNativeStub js/src/jscntxtinlines.h:684 28 libxul.so js::mjit::ic::NativeCall js/src/methodjit/MonoIC.cpp:851 29 @0xadad1549 30 libxul.so js::mjit::JaegerShot js/src/methodjit/MethodJIT.cpp:739
Summary: crash [@ linux-gate.so@0x416 ] starting webgl demos - X_FreeGC: BadGC (invalid GC parameter); 3 requests ago → crash [@ linux-gate.so@0x416 ] starting webgl demos - X_FreeGC: BadGC (invalid GC parameter); X_CreateGC: BadDrawable (invalid Pixmap or Window parameter)
Blocks: 622850
(In reply to comment #22) > Can you please try this build and let me know if it's still crashing: > Linux x86: > http://ftp.mozilla.org/pub/mozilla.org/firefox/tryserver-builds/bjacob@mozilla.com-1ac107d4163e/try-lnx/ linux 32 opt and dbug either didn't built or didn't get FTP'ed. opt build log looked like it might have just been a network issue during ftp.
Apparently these builds were not properly uploaded, please try again with these builds, which also have a greater chance of working (I added more error checking): http://ftp.mozilla.org/pub/mozilla.org/firefox/tryserver-builds/bjacob@mozilla.com-1adffb67558a/
Got "Could not initialize WebGL, sorry :-{" alert on 1st display of ray tracer page. Reloading that page, or back/forward to it again crashes: http://crash-stats.mozilla.com/report/index/bp-9b745ed9-fc86-4e23-9db4-f85c92110105
The Riva TNT2 is a *really* old card. I wonder if we just fail to create a particular resource because it can't handle it. We probably need to implement a blocklist for Linux that doesn't allow cards that old to be used for WebGL, but this particular bug doesn't need to block.
blocking2.0: ? → -
This is successfully worked around by: Bug 624390 - With GLX, blacklist everything but NVIDIA proprietary driver http://hg.mozilla.org/mozilla-central/rev/f9f48079910f
Great, thanks for the confirmation. Everyone here --- we're looking forward to un-blacklisting any driver that may eventually be shown to be non-crashy. And also working on bug 616416 to be less prone to triggering driver crashes.
Status: NEW → RESOLVED
Closed: 14 years ago
No longer depends on: 589546
Resolution: --- → DUPLICATE
No longer blocks: 622850
This doesn't need anymore to block WebGL on linux since buggy drivers are now blacklisted (bug 624390).
No longer blocks: 578877
(In reply to comment #29) > > *** This bug has been marked as a duplicate of bug 589546 *** FWIW, the title of bug 589546 indicates it's about crashes with software mesa. This bug's about crashes withOUT software mesa (as indicated in comment 6) using nouveau driver (which is default on recent Ubuntu releases) with an nvidia TNT2. Perhaps same base issue though, I dunno.
I'm failing to find anything in comment 6 indicating what GL version was used. Comment 12 seems to suggest this is with Mesa's Software Rasterizer. Using nouveau DDX doesn't necessarily mean that GL is accelerated.
Crash Signature: [@ linux-gate.so@0x416 ]
You need to log in before you can comment on or make changes to this bug.