Closed Bug 1839852 Opened 1 year ago Closed 1 year ago

Fails to find audio decoder for mp4a with media.allow-audio-non-utility = false

Categories

(Core :: Audio/Video, defect)

Firefox 116
Desktop
Linux
defect

Tracking

()

VERIFIED FIXED
116 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox-esr115 --- verified
firefox114 --- unaffected
firefox115 --- verified
firefox116 --- verified

People

(Reporter: ke5trel, Assigned: gerard-majax)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(1 file)

STR:

  1. Run the latest snap Nightly 116.0a1 (2818) on Ubuntu 23.04.
  2. Play a youtube video with h264ify.

Video fails with terminal error:

[Child 36581, MediaDecoderStateMachine #1] WARNING: Decoder=7f066ef1a500 Decode error: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005) - 
Error no decoder found for audio/mp4a-latm: file /root/parts/firefox/build/dom/media/MediaDecoderStateMachineBase.cpp:164

Works after changing media.allow-audio-non-utility = true. The tarball Nightly is not affected.

Regressed by Bug 1835804.

Assignee: nobody → lissyx+mozillians

Cool. It makes no sense because Snap was one of the things I looked for on telemetry for those decoding problem and yielded no result.

Can you install this https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/bGBJ5AsqRnWprmTn47rTFQ/runs/0/artifacts/public/build/firefox_116.0a1_amd64.snap ? It's a not-yet-finished but nightly build with debug enabled of the snap, and running this with MOZ_LOG=timestamp,PlatformDecoderModule:5 env set should help diagnose

Flags: needinfo?(ke5trel)

(you might need to gunzip it before snap install)

At least I can repro locally, that's good.

Can you confirm you also see:

2023-06-22 11:43:15.281193 UTC - [Utility 12114: Main Thread]: D/PlatformDecoderModule FFMPEG: H264/AAC codecs unsupported without [
2023-06-22 11:43:15.281206 UTC - [Utility 12114: Main Thread]: D/PlatformDecoderModule FFMPEG:   libavcodec.so.60
2023-06-22 11:43:15.281211 UTC - [Utility 12114: Main Thread]: D/PlatformDecoderModule FFMPEG: , libavcodec.so.59
2023-06-22 11:43:15.281213 UTC - [Utility 12114: Main Thread]: D/PlatformDecoderModule FFMPEG: , libavcodec.so.58
2023-06-22 11:43:15.281214 UTC - [Utility 12114: Main Thread]: D/PlatformDecoderModule FFMPEG: , libavcodec-ffmpeg.so.58
2023-06-22 11:43:15.281216 UTC - [Utility 12114: Main Thread]: D/PlatformDecoderModule FFMPEG: , libavcodec-ffmpeg.so.57
2023-06-22 11:43:15.281217 UTC - [Utility 12114: Main Thread]: D/PlatformDecoderModule FFMPEG: , libavcodec-ffmpeg.so.56
2023-06-22 11:43:15.281218 UTC - [Utility 12114: Main Thread]: D/PlatformDecoderModule FFMPEG: , libavcodec.so.57
2023-06-22 11:43:15.281219 UTC - [Utility 12114: Main Thread]: D/PlatformDecoderModule FFMPEG: , libavcodec.so.56
2023-06-22 11:43:15.281221 UTC - [Utility 12114: Main Thread]: D/PlatformDecoderModule FFMPEG: , libavcodec.so.55
2023-06-22 11:43:15.281222 UTC - [Utility 12114: Main Thread]: D/PlatformDecoderModule FFMPEG: , libavcodec.so.54
2023-06-22 11:43:15.281223 UTC - [Utility 12114: Main Thread]: D/PlatformDecoderModule FFMPEG: , libavcodec.so.53
2023-06-22 11:43:15.281225 UTC - [Utility 12114: Main Thread]: D/PlatformDecoderModule FFMPEG:  ]

Could the sandbox need changes?

user@ubuntu-2204-snap:~$ find /snap/firefox/current/usr/lib/x86_64-linux-gnu/|grep libavcodec
/snap/firefox/current/usr/lib/x86_64-linux-gnu/libavcodec.so.58
/snap/firefox/current/usr/lib/x86_64-linux-gnu/libavcodec.so.58.54.100
user@ubuntu-2204-snap:~$ grep libavcodec.so.58 snap_aac_sandbox_logging.log 
Sandbox: Failed errno -2 op open flags 02000000 path /snap/firefox/x9/usr/lib/firefox/libavcodec.so.58
Sandbox: SandboxBroker: denied op=open rflags=2000000 perms=1 path=/var/lib/snapd/lib/gl/libavcodec.so.58 for pid=14355
Sandbox: Failed errno -13 op open flags 02000000 path /var/lib/snapd/lib/gl/libavcodec.so.58
Sandbox: SandboxBroker: denied op=open rflags=2000000 perms=1 path=/var/lib/snapd/lib/gl32/libavcodec.so.58 for pid=14355
Sandbox: Failed errno -13 op open flags 02000000 path /var/lib/snapd/lib/gl32/libavcodec.so.58
Sandbox: SandboxBroker: denied op=open rflags=2000000 perms=1 path=/var/lib/snapd/void/libavcodec.so.58 for pid=14355
Sandbox: Failed errno -13 op open flags 02000000 path /var/lib/snapd/void/libavcodec.so.58
Sandbox: SandboxBroker: denied op=open rflags=2000000 perms=1 path=/snap/firefox/x9/usr/lib/libavcodec.so.58 for pid=14355
Sandbox: Failed errno -13 op open flags 02000000 path /snap/firefox/x9/usr/lib/libavcodec.so.58
Sandbox: SandboxBroker: denied op=open rflags=2000000 perms=1 path=/snap/firefox/x9/usr/lib/x86_64-linux-gnu/libavcodec.so.58 for pid=14355
Sandbox: Failed errno -13 op open flags 02000000 path /snap/firefox/x9/usr/lib/x86_64-linux-gnu/libavcodec.so.58
Sandbox: SandboxBroker: denied op=open rflags=2000000 perms=1 path=/snap/firefox/x9/gnome-platform/lib/x86_64-linux-gnu/libavcodec.so.58 for pid=14355
Sandbox: Failed errno -13 op open flags 02000000 path /snap/firefox/x9/gnome-platform/lib/x86_64-linux-gnu/libavcodec.so.58
Sandbox: SandboxBroker: denied op=open rflags=2000000 perms=1 path=/snap/firefox/x9/gnome-platform/usr/lib/x86_64-linux-gnu/libavcodec.so.58 for pid=14355
Sandbox: Failed errno -13 op open flags 02000000 path /snap/firefox/x9/gnome-platform/usr/lib/x86_64-linux-gnu/libavcodec.so.58
Sandbox: SandboxBroker: denied op=open rflags=2000000 perms=1 path=/snap/firefox/x9/gnome-platform/usr/lib/libavcodec.so.58 for pid=14355
Sandbox: Failed errno -13 op open flags 02000000 path /snap/firefox/x9/gnome-platform/usr/lib/libavcodec.so.58
Sandbox: SandboxBroker: denied op=open rflags=2000000 perms=1 path=/snap/firefox/x9/gnome-platform/lib/libavcodec.so.58 for pid=14355
Sandbox: Failed errno -13 op open flags 02000000 path /snap/firefox/x9/gnome-platform/lib/libavcodec.so.58
Sandbox: SandboxBroker: denied op=open rflags=2000000 perms=1 path=/snap/firefox/x9/gnome-platform/usr/lib/x86_64-linux-gnu/dri/libavcodec.so.58 for pid=14355
Sandbox: Failed errno -13 op open flags 02000000 path /snap/firefox/x9/gnome-platform/usr/lib/x86_64-linux-gnu/dri/libavcodec.so.58
Sandbox: SandboxBroker: denied op=open rflags=2000000 perms=1 path=/snap/firefox/x9/gnome-platform/usr/lib/x86_64-linux-gnu/libunity/libavcodec.so.58 for pid=14355
Sandbox: Failed errno -13 op open flags 02000000 path /snap/firefox/x9/gnome-platform/usr/lib/x86_64-linux-gnu/libunity/libavcodec.so.58
Sandbox: SandboxBroker: denied op=open rflags=2000000 perms=1 path=/snap/firefox/x9/gnome-platform/usr/lib/x86_64-linux-gnu/pulseaudio/libavcodec.so.58 for pid=14355
Sandbox: Failed errno -13 op open flags 02000000 path /snap/firefox/x9/gnome-platform/usr/lib/x86_64-linux-gnu/pulseaudio/libavcodec.so.58
Sandbox: Failed errno -2 op open flags 02000000 path /lib/x86_64-linux-gnu/libavcodec.so.58
Sandbox: Failed errno -2 op open flags 02000000 path /lib/x86_64-linux-gnu/libavcodec.so.58
Sandbox: Failed errno -2 op open flags 02000000 path /usr/lib/x86_64-linux-gnu/libavcodec.so.58
Sandbox: Failed errno -2 op open flags 02000000 path /lib/libavcodec.so.58
Sandbox: Failed errno -2 op open flags 02000000 path /usr/lib/libavcodec.so.58
2023-06-22 11:59:39.134460 UTC - [Utility 14355: Main Thread]: D/PlatformDecoderModule FFMPEG: , libavcodec.so.58
Summary: Snap package fails to find audio decoder for mp4a with media.allow-audio-non-utility = false → Fails to find audio decoder for mp4a with media.allow-audio-non-utility = false

I just for confirmation this is also hitting Nix package?

Pushed by alissy@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a997ca2d06bf Allow access to LD_LIBRARY_PATH from Utility process r=gcp
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 116 Branch
Blocks: 1840327
Blocks: 1840371

Comment on attachment 9340496 [details]
Bug 1839852 - Allow access to LD_LIBRARY_PATH from Utility process r?jld!

Beta/Release Uplift Approval Request

  • User impact if declined: Audio decoding done on the wrong process for AAC codec
  • Is this code covered by automated tests?: Yes
  • 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): We just add sandboxing rules to allow a bit more of loading, the code already exists we just dont use it on this process for now
  • String changes made/needed: N/A
  • Is Android affected?: No
Attachment #9340496 - Flags: approval-mozilla-beta?

Comment on attachment 9340496 [details]
Bug 1839852 - Allow access to LD_LIBRARY_PATH from Utility process r?jld!

115 is now in RC, moving uplift request to release

:gerard-majax, I don't understand why this is needed in Fx115 when the regressor only landed in Fx116?

Flags: needinfo?(lissyx+mozillians)
Attachment #9340496 - Flags: approval-mozilla-beta? → approval-mozilla-release?

the "regressor" is just a patch doing its work on nightly, but the underlying issue it exposed is on beta and release as well, and telemetry shows we have 99% of our audio decoding of AAC being done on the wrong process for Snap package at least

Flags: needinfo?(lissyx+mozillians)
Flags: needinfo?(ke5trel)

Comment on attachment 9340496 [details]
Bug 1839852 - Allow access to LD_LIBRARY_PATH from Utility process r?jld!

Approved for 115.0 RC2

Attachment #9340496 - Flags: approval-mozilla-release? → approval-mozilla-release+
QA Whiteboard: [qa-triaged]

This bug fix cannot be verified on our end due to multiple blockers: a proper "affected" Nightly build could not be found in Treeherder (to manually install and reproduce), the one that we found here would not reproduce it and/or the installation of the h264ify addon would not interfere with plying YT videos.

This being said we cannot verify this fix.

Flags: qe-verify+

(In reply to Daniel Bodea [:danibodea] from comment #17)

This bug fix cannot be verified on our end due to multiple blockers: a proper "affected" Nightly build could not be found in Treeherder (to manually install and reproduce), the one that we found here would not reproduce it and/or the installation of the h264ify addon would not interfere with plying YT videos.

This being said we cannot verify this fix.

You need to install previous version from the edge channel on Snap or treeherder.

The linked build above already contains the fix.

With the build from comment 1, I have managed to reproduce the issue: if the user would install the h264ify addon, youtube videos would not play anymore, unless the pref media.allow-audio-non-utility was flipped to TRUE.
I have verified this fix in the latest Nightly and Beta SNAP builds. The ESR115 build is not yet available with SNAP, but I managed to install it manually from here but, unfortunately, the latest available snap build in treeherder does not contain the fix. If there is a snap build containing the fix that I can use to manually install and verify, please provide it here for us.

The ESR channel remains to be verified. Thank you for the help, Alexandre LISSY :gerard-majax!

(In reply to Daniel Bodea [:danibodea] from comment #19)

With the build from comment 1, I have managed to reproduce the issue: if the user would install the h264ify addon, youtube videos would not play anymore, unless the pref media.allow-audio-non-utility was flipped to TRUE.
I have verified this fix in the latest Nightly and Beta SNAP builds. The ESR115 build is not yet available with SNAP, but I managed to install it manually from here but, unfortunately, the latest available snap build in treeherder does not contain the fix. If there is a snap build containing the fix that I can use to manually install and verify, please provide it here for us.

Your link is after the uplift, so unless I'm misreading something, it should contain the fix. When you say "the latest available snap build in treeherder does not contain the fix" do you mean you assume it does not, or you verified it still repro the issue ?

Because this push https://treeherder.mozilla.org/jobs?repo=mozilla-esr115&searchStr=snap&revision=24630fd6a7af697c27f1394308eeb3b91a6618b0 contains the present fix and you are linking the very next push: https://treeherder.mozilla.org/jobs?repo=mozilla-esr115&searchStr=snap&revision=4a8666238269bba3dcccc95812d13d2c8abd9252

So the fix should be there.

Please note on non nightly channels, the pref default value is different, so we block audio decoding only on nightly (for now): https://searchfox.org/mozilla-central/rev/3b707c8fd7e978eebf24279ee51ccf07895cfbcb/modules/libpref/init/StaticPrefList.yaml#10113,10115 ; on those channels you might want to set it to false before checking with h264ify

And if the pref is not there, it means the fix is missing.

Flags: needinfo?(dbodea)

You are correct, the changeset I linked in comment 19 technically does contain the fix as it is 1-2 days after pushing the fix, however, after manually installing it on Ubuntu22, the sound in Youtube videos would NOT be heard, with either having h264ify addon installed or not AND the pref mentioned was NOT found in about:config. This would suggest that there is another exposed issue on this build OR that the installation I performed is incorrect (command: snap install --dangerous target.snap).

Fortunately, the latest ESR v115.0esr (build ID: 20230702062700) is now available for installation (with the command: sudo snap install firefox --channel=esr/candidate ) and the fix could be verified correctly.

Status: RESOLVED → VERIFIED
Flags: needinfo?(dbodea)
Hardware: Unspecified → Desktop

Could you provide us with the correct commands to manually install a snap build to re-verify fix on ESR channel? Thanks.

Flags: needinfo?(lissyx+mozillians)

no pref means no patch (the one to disable audio)

Flags: needinfo?(lissyx+mozillians)

(In reply to Daniel Bodea [:danibodea] from comment #22)

Could you provide us with the correct commands to manually install a snap build to re-verify fix on ESR channel? Thanks.

this should be the right one, but manually installing can sometime behave badly. If it's working well from upstream ESR then we are fine.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: