Crash in mozilla::wr::RenderThread::RegisterExternalImage

VERIFIED FIXED in Firefox 60

Status

()

defect
P2
critical
VERIFIED FIXED
Last year
Last year

People

(Reporter: calixte, Assigned: aosmond)

Tracking

(Blocks 1 bug, {crash, regression})

Trunk
mozilla60
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox-esr52 unaffected, firefox58 unaffected, firefox59 unaffected, firefox60 fixed)

Details

(crash signature)

Attachments

(1 attachment, 1 obsolete attachment)

This bug was filed from the Socorro interface and is
report bp-bda472fd-03c5-4f49-8507-d89a80180213.
=============================================================

Top 10 frames of crashing thread:

0 libc.so libc.so@0x47f4e 
1 libxul.so mozilla::wr::RenderThread::RegisterExternalImage xpcom/threads/Mutex.h:65
2 libxul.so mozilla::detail::RunnableFunction<>::Run gfx/layers/ipc/SharedSurfacesParent.cpp:125
3 libxul.so nsTHashtable<nsBaseHashtableET<nsUint64HashKey, RefPtr<mozilla::gfx::SourceSurfaceSharedDataWrapper> > >::s_InitEntry xpcom/ds/nsTHashtable.h:474
4 libxul.so MessageLoop::RunTask ipc/chromium/src/base/message_loop.cc:452
5 libxul.so MessageLoop::DeferOrRunPendingTask ipc/chromium/src/base/message_loop.cc:460
6 libxul.so MessageLoop::DoWork ipc/chromium/src/base/message_loop.cc:535
7 libxul.so base::MessagePumpDefault::Run ipc/chromium/src/base/message_pump_default.cc:36
8 libxul.so base::MessagePumpDefault::MessagePumpDefault ipc/chromium/src/base/message_pump_default.cc
9 libxul.so std::__ndk1::__vector_base<MessageLoop::PendingTask, std::__ndk1::allocator<MessageLoop::PendingTask> >::__destruct_at_end xpcom/base/nsCOMPtr.h:313

=============================================================

There 33 crashes from 8 installations in nightly 60 starting with buildid 20180213100129.
It could be a consequence of patch for bug 1432375.
:aosmond, could you investigate please ?
Flags: needinfo?(aosmond)
Duplicate of this bug: 1437888
Crash Signature: [@ mozilla::wr::RenderThread::RegisterExternalImage] → [@ mozilla::wr::RenderThread::RegisterExternalImage] [@ RtlEnterCriticalSection | mozilla::wr::RenderThread::RegisterExternalImage] [@ mozilla::detail::MutexImpl::lock | mozilla::wr::RenderThread::RegisterExternalImage]
It looks like image.mem.shared is enabled, while WebRender is disabled. That isn't a supported combination. I need to make sure nothing went wrong with the override pref though.
It may be possible that it refused to enable WebRender, but since gfx.webrender.all was set, image.mem.shared was also set. I may need to check gfxVars::UseWebRender as well.
Assignee: nobody → aosmond
Priority: -- → P2
Flags: needinfo?(aosmond)
Attachment #8950966 - Flags: review?(nical.bugzilla)
Adding a few desktop signatures, Windows and Mac.
Crash Signature: [@ mozilla::wr::RenderThread::RegisterExternalImage] [@ RtlEnterCriticalSection | mozilla::wr::RenderThread::RegisterExternalImage] [@ mozilla::detail::MutexImpl::lock | mozilla::wr::RenderThread::RegisterExternalImage] → [@ mozilla::wr::RenderThread::RegisterExternalImage] [@ RtlEnterCriticalSection | mozilla::wr::RenderThread::RegisterExternalImage] [@ mozilla::detail::MutexImpl::lock | mozilla::wr::RenderThread::RegisterExternalImage] [@ RtlEnterCriticalSection | moz…
OS: Android → All
Hardware: Unspecified → All
Attachment #8950966 - Flags: review?(nical.bugzilla) → review+
Pushed by aosmond@gmail.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/2ffed9c081fa
Prevent shared surfaces from being used without WebRender. r=nical
Backout by aosmond@gmail.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/cff37914d625
Backed out changeset 2ffed9c081fa for test bustage on a CLOSED TREE. r=backout
Very annoying. I can't trust gfxVars will be initialized on all code paths. As an alternative, I added a gfxVars var alternative method GetXXXOrDefault, which will return the default if it isn't initialized. For the purposes of checking if WebRender is enabled or not, this is fine in imagelib, even if we get it wrong at the beginning (we lose some optimizations at worst). No evidence this happens in normal builds though.

https://treeherder.mozilla.org/#/jobs?repo=try&revision=88c97ec9bbf45d8d31dbb7c80fe587c80702f7d4
Attachment #8950966 - Attachment is obsolete: true
Attachment #8951576 - Flags: review+
Pushed by aosmond@gmail.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/fa3b9f40e77b
Prevent shared surfaces from being used without WebRender. r=nical
https://hg.mozilla.org/mozilla-central/rev/fa3b9f40e77b
Status: NEW → RESOLVED
Closed: Last year
Resolution: --- → FIXED
Target Milestone: --- → mozilla60
This is present in Nightly 20180216104033, but not present in the subsequent Nightly builds that have the fix. Thanks!
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.