Crash in [@ mozilla::layers::AndroidHardwareBuffer::FromFileDescriptor]
Categories
(Core :: Graphics, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr91 | --- | unaffected |
firefox97 | --- | wontfix |
firefox98 | --- | fixed |
firefox99 | --- | fixed |
People
(Reporter: jnicol, Assigned: jnicol)
References
Details
(Keywords: crash)
Crash Data
Attachments
(1 file)
48 bytes,
text/x-phabricator-request
|
pascalc
:
approval-mozilla-beta+
|
Details | Review |
Crash report: https://crash-stats.mozilla.org/report/index/de965ffb-531a-4891-9f49-8844d0220208
Reason: SIGSEGV / SEGV_MAPERR
Top 10 frames of crashing thread:
0 libxul.so mozilla::layers::AndroidHardwareBuffer::FromFileDescriptor gfx/layers/AndroidHardwareBuffer.cpp:195
1 libxul.so mozilla::layers::CreateTextureHostOGL gfx/layers/opengl/TextureHostOGL.cpp:78
2 libxul.so mozilla::layers::TextureHost::Create gfx/layers/composite/TextureHost.cpp:186
3 libxul.so mozilla::layers::TextureHost::CreateIPDLActor gfx/layers/composite/TextureHost.cpp:119
4 libxul.so mozilla::layers::CompositorBridgeParent::AllocPTextureParent gfx/layers/ipc/ContentCompositorBridgeParent.cpp:403
5 libxul.so mozilla::layers::PCompositorBridgeParent::OnMessageReceived ipc/ipdl/PCompositorBridgeParent.cpp:1065
6 libxul.so mozilla::layers::PCompositorManagerParent::OnMessageReceived ipc/ipdl/PCompositorManagerParent.cpp:188
7 libxul.so mozilla::ipc::MessageChannel::MessageTask::Run ipc/glue/MessageChannel.cpp:1480
8 libxul.so nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:1189
9 libxul.so mozilla::ipc::MessagePumpForNonMainThreads::Run ipc/glue/MessagePump.cpp:300
Assignee | ||
Comment 1•3 years ago
|
||
This is currently the top GPU process crash since enabling the GPU process in bug 1331109 (and for some adventurous users who manually enabled it earlier). It only occurs for users who have also enabled the off-by-default webgl.enable-ahardwarebuffer
pref.
The problem is that we haven't initialized the AndroidHardwareBufferApi
instance in the GPU process. In content/parent processes this is done in gfxAndroidPlatform, but that isn't initialized in the GPU process. The corresponding place in the GPU process is GPUParent::RecvInit
Assignee | ||
Comment 2•3 years ago
|
||
When the (off-by-default) pref webgl.enable-ahardwarebuffer is
enabled, we use AHardwareBuffers rather than SurfaceTextures for webgl
on Android. Some users have enabled this pref and their browser is now
crashing since the GPU process was enabled.
The crash occurs because we have not initialized the
AndroidHardwareBufferApi instance to load the NDK function
pointers. This is performed in gfxPlatform in the parent process, but
because the GPU process does not have a gfxPlatform we must do this in
GPUParent as well. We must also initialize the
AndroidHardwareBufferManager, as is done by gfxPlatform.
Comment 4•3 years ago
|
||
bugherder |
Assignee | ||
Comment 5•3 years ago
|
||
Comment on attachment 9263338 [details]
Bug 1754766 - Ensure AndroidHardwareBuffer is initialized in GPU process. r?#gfx-reviewers
Beta/Release Uplift Approval Request
- User impact if declined: Crashes for beta users who have manually enabled the GPU process and hardware-buffer backed webgl
- Is this code covered by automated tests?: No
- Has the fix been verified in Nightly?: Yes
- Needs manual test from QE?: No
- If yes, steps to reproduce:
- List of other uplifts needed: None
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): Off by default configuration, but this prevents guaranteed crash for those users who have flipped the prefs
- String changes made/needed:
Assignee | ||
Comment 6•3 years ago
|
||
The GPU process isn't enabled by default on current beta, nor is hardware buffer webgl. But it seems a number of users have manually enabled both, so it may be worthwhile uplifting the fix anyway.
Comment 7•3 years ago
|
||
Comment on attachment 9263338 [details]
Bug 1754766 - Ensure AndroidHardwareBuffer is initialized in GPU process. r?#gfx-reviewers
Approved for 98 beta 5, thanks.
Comment 8•3 years ago
|
||
bugherder uplift |
Updated•3 years ago
|
Description
•