Closed Bug 1986922 Opened 3 months ago Closed 1 month ago

Crash in [@ WasmTrapHandler] (magicdsfilterQuest3.dll)

Categories

(External Software Affecting Firefox :: Other, defect, P1)

Tracking

(firefox-esr128 wontfix, firefox-esr140 verified, firefox142 wontfix, firefox143 fixed, firefox144 fixed, firefox145 verified, firefox146 verified)

VERIFIED FIXED
145 Branch
Tracking Status
firefox-esr128 --- wontfix
firefox-esr140 --- verified
firefox142 --- wontfix
firefox143 --- fixed
firefox144 --- fixed
firefox145 --- verified
firefox146 --- verified

People

(Reporter: aryx, Assigned: rhunt)

References

Details

(Keywords: crash)

Crash Data

Attachments

(9 files, 1 obsolete file)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

Since early August, the crash volume for this signature has tripled. Both Windows and Android are affected, the crash stacks are corrupted. This is observed for all versions.

Ryan: Do you have better insights into this?

Crash report: https://crash-stats.mozilla.org/report/index/fa6d80c4-7c82-49f6-b398-052e60250904

Reason:

EXCEPTION_ACCESS_VIOLATION_EXEC

Top 2 frames:

0  xul.dll  WasmTrapHandler(_EXCEPTION_POINTERS*)  js/src/wasm/WasmSignalHandlers.cpp:564
1  ?  @0x000000ad47ec1aaf
Flags: needinfo?(rhunt)

This looks like it could be a duplicate of bug 1978000. The crash you linked to has "magicdsfilterQuest3.dll" loaded too. Looking at a bunch of the user comments on related crash reports, most of them seem to be the same "I was trying to open up a camera in web app and it crashed".

I'm not sure what we can do about this if the issue is coming from this DLL being injected into our processes. I'll think about it.

Flags: needinfo?(rhunt)

I believe there are three avenues here:

  1. Reproduce this locally and see if we can change something in our code to resolve this
  2. Reach out to Facebook and see if they can fix it on their end (if #1 fails)
  3. Add them to our DLL block list
Summary: Crash in [@ WasmTrapHandler] → Crash in [@ WasmTrapHandler] (magicdsfilterQuest3.dll)
Severity: -- → S2
Priority: -- → P1

I can reproduce this crash locally. Will start debugging it.

STR:

It is crashing for me in the parent process, and even if I disable WebAssembly. Attaching a debugger leads to a stack in WebRTC code without any wasm involved. I'm not sure how the other reporter was seeing WasmTrap in the crash signatures. Will need to look into some of the crash reports closer.

I sampled a bunch of crash reports and they all contain 'magicdsfilterQuest3' as a loaded module. I don't know how to get an exact % of crash reports that contain it using filters/search, but it seems very likely that it's causing this issue.

I haven't made any progress in debugging what's going on here with the DLL. So far I wasn't able to get it to crash with the WasmTrapHandler on the stack. It seems to just be trapping in WebRTC code.

Assignee: nobody → rhunt

I've reached out to Meta about this and they said they would look into it. No updates beyond that yet.

Duplicate of this bug: 1989518

This is crashing common web apps like Google Meet. Can we go ahead and push this block fix?

Duplicate of this bug: 1977739

(just to answer the question posted in the other bug report: yes both my colleague and I have Meta Quest Link installed. )

Copying crash signatures from duplicate bugs.

Crash Signature: [@ WasmTrapHandler] → [@ WasmTrapHandler] [@ RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLook…

I just tested to add the Meta dlls in the dynamic block list and it indeed solves the crash 100%.
On a sidenote, as a Meta Quest user I don't see why Meta would be legit to inject itself in Firefox when I'm in a online conference on my privacy friendly browser. As a user, I find that adding these dlls to the static block list is a perfectly fine solution.
Of course I may not understand everything underneath this kind of decision, but just wanted to share my pov.

Not to hijack the bug or anything, but as you mention the root cause is an external DirectShow filter DLL unrelated to wasm. Moving components. Also needinfoing Greg for his take on comment 9 as this crash rate is pretty high for video capture.

I'll note it was reported on Meta's community forums a month ago: https://communityforums.atmeta.com/discussions/OtherTroubleshooting/meta-quest-link-app-causes-firefox-to-crash/1341972
And some more technical details in the later thread https://communityforums.atmeta.com/discussions/dev-quest/meta-quest-links-virtual-camera-causes-third-party-applications-to-crash-windows/1343668:

The crash occurs when DirectShow enumerates the Meta Quest virtual camera. The IBaseFilter object (the fourth parameter) is obtained through the IMoniker::BindToObject() interface, and the crash occurs when releasing this object.

We use libwebrtc's DirectShow-based backend for camera capture on Windows. Our BindToObject call is here.

Crash Signature: [@ WasmTrapHandler] [@ RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | → [@ WasmTrapHandler] [@ RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry | RtlLookupFunctionEntry |
Component: JavaScript: WebAssembly → Other
Flags: needinfo?(gstoll)
Product: Core → External Software Affecting Firefox

(In reply to JN from comment #13)

On a sidenote, as a Meta Quest user I don't see why Meta would be legit to inject itself in Firefox when I'm in a online conference on my privacy friendly browser.

I'll just add that this is a DirectShow filter installed by a user. The DLL gets loaded automatically when accessing DirectShow APIs. These filters are often used to expose various non-standard video input sources as cameras. Think network cameras, virtual cameras, etc.

Yes, you can see on the correlations tab for WasmTrapHandler that 100% of the reports have "magicdsfilterQuest3.dll" loaded. There are a significant number in the other signature too but there's also a lot of "magicdsfilterQuest3s.dll" loaded; could we block that as well?

Anyway, yes, I think we should block this and I can review the change if y'all would like. Thanks!

Flags: needinfo?(gstoll)

Thanks for the clarification Andreas!
I don't know if it can help, but this crash does not happen with a built-in laptop camera.
I crash only if I plug-in an external USB camera.

Just to add to the comments regarding Meta Quest devices. I am experiencing this bug and have a Quest 2 with Oculus software installed.

Attachment #9513468 - Attachment description: WIP: Bug 1986922 - Add magicdsfilterQuest3.dll to block list. → Bug 1986922 - Add magicdsfilterQuest3.dll to block list. r?gstoll

Given the crash volume and the fact that we can reproduce and know that the block is safe, I think we should consider uplifting to beta (and maybe release?).

For users running into this problem: you may be able to go to about:third-party and block this DLL to make the crashes stop in the meantime. There are instructions at SUMO here.

Status: NEW → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 145 Branch

The patch landed in nightly and beta is affected.
:rhunt, is this bug important enough to require an uplift?

For more information, please visit BugBot documentation.

Flags: needinfo?(rhunt)

firefox-beta Uplift Approval Request

  • User impact if declined: Crashes when Meta Link App installed and using any web conferencing (WebRTC) application.
  • Code covered by automated testing: no
  • Fix verified in Nightly: yes
  • Needs manual QE test: no
  • Steps to reproduce for manual QE testing:
  • Risk associated with taking this patch: low
  • Explanation of risk level: Just an entry in a DLL block list.
  • String changes made/needed: None
  • Is Android affected?: no
Attachment #9516459 - Flags: approval-mozilla-beta?

firefox-release Uplift Approval Request

  • User impact if declined: Crashes when Meta Link App installed and using any web conferencing (WebRTC) application.
  • Code covered by automated testing: no
  • Fix verified in Nightly: yes
  • Needs manual QE test: no
  • Steps to reproduce for manual QE testing:
  • Risk associated with taking this patch: low
  • Explanation of risk level: Just an entry in a DLL block list.
  • String changes made/needed: None
  • Is Android affected?: no
Attachment #9516460 - Flags: approval-mozilla-release?

firefox-esr140 Uplift Approval Request

  • User impact if declined: Crashes when Meta Link App installed and using any web conferencing (WebRTC) application.
  • Code covered by automated testing: no
  • Fix verified in Nightly: yes
  • Needs manual QE test: no
  • Steps to reproduce for manual QE testing:
  • Risk associated with taking this patch: low
  • Explanation of risk level: Just an entry in a DLL block list.
  • String changes made/needed: None
  • Is Android affected?: no
Attachment #9516461 - Flags: approval-mozilla-esr140?
Flags: needinfo?(rhunt)
Attachment #9516459 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Attachment #9516461 - Flags: approval-mozilla-esr140? → approval-mozilla-esr140+
Attachment #9516460 - Flags: approval-mozilla-release? → approval-mozilla-release+
QA Whiteboard: [qa-triage-done-c145/b144] [qa-ver-needed-c145/b144]
Flags: qe-verify+

Hi @Ryan,
Firefox still crashes on my end when the Meta Link App is installed and a WebRTC site is accessed - I hit the crashes on: https://mozilla.github.io/webrtc-landing/gum_test.html and https://webcammictest.com/. I tested on Windows 11 using the latest Nightly 145.0a1 (Build ID: 20251006155229), Firefox RC 144 (Build ID: 20251006164343) and Firefox 140.4.0 ESR (Build ID: 20251006114430).

The main difference I observed compared to pre-fix builds (tested on Nightly 145.0a2, Build ID: 20250922211053) is that the crash reporter dialog now appears in the latest versions mentioned above. However, please note that it is incomplete, as the Restart button is missing.

Here are some crash reports:

Flags: needinfo?(rhunt)
QA Contact: sbadau

All of those crash reports have a different DLL loaded now 'magicdsfilterQuest2.dll'. I'm guessing we should probably block that one now too.

Flags: needinfo?(rhunt)
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Status: REOPENED → RESOLVED
Closed: 3 months ago2 months ago
Resolution: --- → FIXED

Sorry I missed this comment until now. We should block this DLL too.

Status: RESOLVED → REOPENED
Flags: needinfo?(rhunt)
Resolution: FIXED → ---
Crash Signature: RtlLookupFunctionEntry | Rt...] → RtlLookupFunctionEntry | Rt...] [ @ xul.dll | RtlpCallVectoredHandlers | xul.dll | RtlpCallVectoredHandlers | xul.dll | RtlpCallVectoredHandlers | xul.dll | RtlpCallVectoredHandlers | xul.dll | RtlpCallVectoredHandlers | xul.dll | RtlpCallVectoredHandle…
Crash Signature: RtlLookupFunctionEntry | Rt...] [ @ xul.dll | RtlpCallVectoredHandlers | xul.dll | RtlpCallVectoredHandlers | xul.dll | RtlpCallVectoredHandlers | xul.dll | RtlpCallVectoredHandlers | xul.dll | RtlpCallVectoredHandlers | xul.dll | → RtlLookupFunctionEntry | Rt...] [@ xul.dll | RtlpCallVectoredHandlers | xul.dll | RtlpCallVectoredHandlers | xul.dll | RtlpCallVectoredHandlers | xul.dll | RtlpCallVectoredHandlers | xul.dll | RtlpCallVectoredHandlers | xul.dll |
Status: REOPENED → RESOLVED
Closed: 2 months ago1 month ago
Resolution: --- → FIXED

Verified as fixed on the latest Nightly 146.0a1 - no crashes occurred when following the same steps as in Comment 32.

@Ryan - will all patches be uplifted to the current versions (Release, Beta, and ESR)?

Flags: needinfo?(rhunt)
Attachment #9524842 - Flags: approval-mozilla-esr140?

firefox-esr140 Uplift Approval Request

  • User impact if declined: Crash when video conferencing with the meta quest driver installed.
  • Code covered by automated testing: no
  • Fix verified in Nightly: yes
  • Needs manual QE test: no
  • Steps to reproduce for manual QE testing:
  • Risk associated with taking this patch: low
  • Explanation of risk level: DLL block list update, tested on nightly.
  • String changes made/needed: None
  • Is Android affected?: no
Attachment #9524843 - Flags: approval-mozilla-esr140?

firefox-beta Uplift Approval Request

  • User impact if declined: Crash when video conferencing with the meta quest driver installed.
  • Code covered by automated testing: no
  • Fix verified in Nightly: yes
  • Needs manual QE test: no
  • Steps to reproduce for manual QE testing:
  • Risk associated with taking this patch: low
  • Explanation of risk level: DLL block list update, tested on nightly.
  • String changes made/needed: None
  • Is Android affected?: no
Attachment #9524887 - Flags: approval-mozilla-beta?

firefox-release Uplift Approval Request

  • User impact if declined: Crash when video conferencing with the meta quest driver installed.
  • Code covered by automated testing: no
  • Fix verified in Nightly: yes
  • Needs manual QE test: no
  • Steps to reproduce for manual QE testing:
  • Risk associated with taking this patch: low
  • Explanation of risk level: DLL block list update, tested on nightly.
  • String changes made/needed: None
  • Is Android affected?: no
Attachment #9524889 - Flags: approval-mozilla-release?
Flags: needinfo?(rhunt)
Attachment #9524887 - Attachment is obsolete: true
Attachment #9524887 - Flags: approval-mozilla-beta?
Attachment #9524889 - Flags: approval-mozilla-release? → approval-mozilla-release+

Verified as fixed using Firefox 145 (Build ID: 20251106194447) on Windows 11 x64 - no crashes occurred when following the same steps as in Comment 32.

Attachment #9524842 - Flags: approval-mozilla-esr140? → approval-mozilla-esr140+
Attachment #9524843 - Flags: approval-mozilla-esr140? → approval-mozilla-esr140+

Verified as fixed using Firefox 140.6.0 ESR (Build ID: 20251201132345) on Windows 11 x64 - no crashes occurred when following the same steps as in Comment 32.

Status: RESOLVED → VERIFIED
QA Whiteboard: [qa-triage-done-c145/b144] [qa-ver-needed-c145/b144] → [qa-triage-done-c145/b144] [qa-ver-done-c147/b146]
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: