Bug 253638
| Summary: | [GTK] Minibrowser in flatpak crashes with http://get.webgl.org/ | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Przemyslaw Gorszkowski <pgorszkowski> |
| Component: | New Bugs | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | Normal | CC: | mcatanzaro, zan |
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | PC | ||
| OS: | Linux | ||
Przemyslaw Gorszkowski
There is a crash when I start:
Tools/Scripts/run-minibrowser --gtk --debug http://get.webgl.org/
Log from console:
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Stack trace:
#0 0x00007f43317d7f54 in ()
#1 0x00007f434b2fec53 in WebCore::GBMBufferSwapchain::getBuffer(WebCore::GBMBufferSwapchain::BufferDescription const&) (this=0x7f43271ac0e0, description=...) at /app/webkit/Source/WebCore/platform/graphics/gbm/GBMBufferSwapchain.cpp:109
#2 0x00007f434b30879b in WebCore::GraphicsContextGLGBM::allocateDrawBufferObject() (this=0x7f432705ccb0) at /app/webkit/Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.cpp:294
#3 0x00007f434b30846a in WebCore::GraphicsContextGLGBM::reshapeDisplayBufferBacking() (this=0x7f432705ccb0) at /app/webkit/Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.cpp:275
#4 0x00007f43470a92cb in WebCore::GraphicsContextGLANGLE::reshapeFBOs(WebCore::IntSize const&) (this=0x7f432705ccb0, size=...) at /app/webkit/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp:268
#5 0x00007f43470aad13 in WebCore::GraphicsContextGLANGLE::reshape(int, int) (this=0x7f432705ccb0, width=140, height=150) at /app/webkit/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp:636
#6 0x00007f434a5bf0b0 in WebCore::WebGLRenderingContextBase::initializeNewContext() (this=0x7f42c6009d80) at /app/webkit/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:749
#7 0x00007f434a5b8d9b in WebCore::WebGLRenderingContext::create(WebCore::CanvasBase&, WTF::Ref<WebCore::GraphicsContextGL, WTF::RawPtrTraits<WebCore::GraphicsContextGL> >&&, WebCore::GraphicsContextGLAttributes) (canvas=..., context=..., attributes=...)
at /app/webkit/Source/WebCore/html/canvas/WebGLRenderingContext.cpp:108
#8 0x00007f434a5bd982 in WebCore::WebGLRenderingContextBase::create(WebCore::CanvasBase&, WebCore::GraphicsContextGLAttributes&, WebCore::GraphicsContextGLWebGLVersion) (canvas=..., attributes=..., type=WebCore::GraphicsContextGLWebGLVersion::WebGL1)
at /app/webkit/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:566
#9 0x00007f434a2eece6 in WebCore::HTMLCanvasElement::createContextWebGL(WebCore::GraphicsContextGLWebGLVersion, WebCore::GraphicsContextGLAttributes&&) (this=0x7f42c6005730, type=WebCore::GraphicsContextGLWebGLVersion::WebGL1, attrs=...)
at /app/webkit/Source/WebCore/html/HTMLCanvasElement.cpp:443
#10 0x00007f434a2ee280 in WebCore::HTMLCanvasElement::getContext(JSC::JSGlobalObject&, WTF::String const&, WTF::FixedVector<JSC::Strong<JSC::Unknown, (JSC::ShouldStrongDestructorGrabLock)0> >&&) (this=0x7f42c6005730, state=..., contextId=..., arguments=...)
at /app/webkit/Source/WebCore/html/HTMLCanvasElement.cpp:293
#11 0x00007f4347d313ab in WebCore::jsHTMLCanvasElementPrototypeFunction_getContextBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::IDLOperation<WebCore::JSHTMLCanvasElement>::ClassParameter)
(lexicalGlobalObject=0x7f42d61ce068, callFrame=0x7ffc77391b30, castedThis=0x7f432700f708) at /app/webkit/WebKitBuild/Debug/WebCore/DerivedSources/JSHTMLCanvasElement.cpp:320
#12 0x00007f4347d42d3e in WebCore::IDLOperation<WebCore::JSHTMLCanvasElement>::call<WebCore::jsHTMLCanvasElementPrototypeFunction_getContextBody>(JSC::JSGlobalObject&, JSC::CallFrame&, char const*)
(lexicalGlobalObject=..., callFrame=..., operationName=0x7f433f1c0a01 "getContext") at /app/webkit/Source/WebCore/bindings/js/JSDOMOperation.h:63
#13 0x00007f4347d3146e in WebCore::jsHTMLCanvasElementPrototypeFunction_getContext(JSC::JSGlobalObject*, JSC::CallFrame*) (lexicalGlobalObject=0x7f42d61ce068, callFrame=0x7ffc77391b30) at /app/webkit/WebKitBuild/Debug/WebCore/DerivedSources/JSHTMLCanvasElement.cpp:325
#14 0x00007f42e5cf8038 in ()
#15 0x00007ffc77391bc0 in ()
#16 0x00007f433970a3a8 in op_call_slow_return_location () at /app/webkit/Source/JavaScriptCore/llint/LowLevelInterpreter.asm:1191
#17 0x0000000000000000 in ()
It seems that: https://github.com/WebKit/WebKit/blob/main/Source/WebCore/platform/graphics/gbm/GBMBufferSwapchain.cpp#L108, gbm_bo_create returns nullptr
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Zan Dobersek
I cannot reproduce on my system, inside flatpak.
Any additional information about your environment? Wayland, X11? Which graphics driver?
I think DRM_IOCTL_MODE_CREATE_DUMB message is relevant. It's failing to create a dumb buffer (i.e. something that's supposedly used for software rasterization), and the EPERM error indicates it's not allowed. So I think the underlying issue could be something permissions-related, but it would also be interesting to understand why non-dumb buffers are not being allocated.
Przemyslaw Gorszkowski
I run it on Ubuntu 20.04, X11, NVidia driver 525.
Zan Dobersek
I can get a crash on WebGL content in Ubuntu 22.10, X11, NVIDIA 525, outside flatpak.
Michael Catanzaro
I think this is probably a duplicate of bug #258831. It's not still happening, is it?
*** This bug has been marked as a duplicate of bug 258831 ***