[Bug 1221150] New: TW 20240306: gstreamer-plugins-bad-1.24.0-1.1 ( or rather included libgstva.so ) causes pulseaudio crash (no audio devices found)
https://bugzilla.suse.com/show_bug.cgi?id=1221150 Bug ID: 1221150 Summary: TW 20240306: gstreamer-plugins-bad-1.24.0-1.1 ( or rather included libgstva.so ) causes pulseaudio crash (no audio devices found) Classification: openSUSE Product: openSUSE Tumbleweed Version: Current Hardware: Other OS: Other Status: NEW Severity: Normal Priority: P5 - None Component: Sound Assignee: tiwai@suse.com Reporter: nik.kaiser87@gmail.com QA Contact: qa-bugs@suse.de Target Milestone: --- Found By: --- Blocker: --- Created attachment 873321 --> https://bugzilla.suse.com/attachment.cgi?id=873321&action=edit Empty sound systray Sorry for the lenghty title, but I wanted to include all relevant package/file names so the bug can be found easier. Here's what happened: After installing today's update, that included gstreamer-plugins-bad from OpenSuse's servers, I didn't have sound after a restart. Opened Firefox to google the issue, an old tab had Youtube open which started to autoplay, causing a complete(!) system lockup. Pressed the reset button on my PC, repeated the whole thing, still complete crash. Started pavucontrol to diagnose which said: Waiting for connection to PulseAudio. Indefinitely. Went to terminal and simply entered "pulseaudio" to see if something came up, sure did: (pulseaudio:3475): GStreamer-WARNING **: 23:24:03.512: External plugin loader failed. This most likely means that the plugin loader helper binary was not found or could not be run. You might need to set the GST_PLUGIN_SCANNER environment variable if your setup is unusual. This should normally not be required though. libva info: VA-API version 1.20.0 libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_20 libva info: va_openDriver() returns 0 ** (pulseaudio:3475): CRITICAL **: 23:24:03.566: gst_va_encoder_new: assertion 'GST_IS_VA_DISPLAY (display)' failed ** (pulseaudio:3475): CRITICAL **: 23:24:03.566: gst_va_encoder_get_rate_control_enum: assertion 'GST_IS_VA_ENCODER (self)' failed (pulseaudio:3475): GStreamer-CRITICAL **: 23:24:03.566: gst_object_unref: assertion 'object != NULL' failed (pulseaudio:3475): GStreamer-CRITICAL **: 23:24:03.566: gst_object_unref: assertion 'object != NULL' failed (pulseaudio:3475): GLib-GObject-CRITICAL **: 23:24:03.566: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed (pulseaudio:3475): GLib-GObject-CRITICAL **: 23:24:03.566: g_param_spec_ref_sink: assertion 'G_IS_PARAM_SPEC (pspec)' failed (pulseaudio:3475): GLib-GObject-CRITICAL **: 23:24:03.566: g_param_spec_unref: assertion 'G_IS_PARAM_SPEC (pspec)' failed ERROR: Caught a segmentation fault while loading plugin file: /lib64/gstreamer-1.0/libgstva.so Please either: - remove it and restart. - run with --gst-disable-segtrap --gst-disable-registry-fork and debug. ------------------------------------ So we have a segfault in the /lib64/gstreamer-1.0/libgstva.so file, thats included with gstreamer-plugins-bad. After removing gstreamer-plugins-bad via Yast including dependencies and another restart, my audio devices started working again. I tested the current update on my partner's PC as well, only difference to my setup is that she runs Pipewire, this bug does not affect her, so it's only relevant to people still running Pulseaudio. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1221150 Nik Kai <nik.kaiser87@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- OS|Other |openSUSE Tumbleweed Hardware|Other |x86-64 Priority|P5 - None |P3 - Medium -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1221150 https://bugzilla.suse.com/show_bug.cgi?id=1221150#c5 --- Comment #5 from Nik Kai <nik.kaiser87@gmail.com> --- (In reply to Antonio Larrosa from comment #4)
There seems to be a way to "fix it" manually. Can you try installing the gstreamer-plugins-bad package again and then run the next command?
rm ~/.cache/gstreamer-1.0/registry.x86_64.bin ; gst-inspect-1.0 foo
After doing that, pulseaudio seems to start correctly every time. It would be nice if you could verify if that works for you too.
Hey Antonio, thanks for the speedy responses (and Takashi for pinging)! About the two commands, I will absolutely run them for you when I get home, but until then (couple hours), could you please tell me what I'm actually doing by running them? I'm always bit hesitant to copy/paste commands that I don't know from somewhere :) Doesn't mean that I don't trust you, I just would like to know what I'm doing. I googled the "registry.x86_64.bin" file, I assume it .. registers .. things? In this case the plugin? And gst-inspect checks its status? Thanks in advance, as I said I'll reinstall the plugin and verify your command soon. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1221150 https://bugzilla.suse.com/show_bug.cgi?id=1221150#c6 --- Comment #6 from Nik Kai <nik.kaiser87@gmail.com> --- (In reply to Antonio Larrosa from comment #4)
There seems to be a way to "fix it" manually. Can you try installing the gstreamer-plugins-bad package again and then run the next command?
rm ~/.cache/gstreamer-1.0/registry.x86_64.bin ; gst-inspect-1.0 foo
After doing that, pulseaudio seems to start correctly every time. It would be nice if you could verify if that works for you too.
Did as instructed, but sadly, your solution does not have any effect. The error still pops up, segfault. I will leave the gstreamer-plugins-bad package uninstalled for now. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1221150 https://bugzilla.suse.com/show_bug.cgi?id=1221150#c7 hui <sturm-fr@web.de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |monkeyboyted@yahoo.com --- Comment #7 from hui <sturm-fr@web.de> --- *** Bug 1221203 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1221150 https://bugzilla.suse.com/show_bug.cgi?id=1221150#c8 --- Comment #8 from ted chang <monkeyboyted@yahoo.com> --- (In reply to hui from comment #7)
*** Bug 1221203 has been marked as a duplicate of this bug. ***
I am not sure why my bug is marked as a duplicated of this bug because removing gstreams-plugins-bad didn't fix my issue. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1221150 Karl Ove Hufthammer <karl@huftis.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |karl@huftis.org -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1221150 https://bugzilla.suse.com/show_bug.cgi?id=1221150#c12 --- Comment #12 from Nik Kai <nik.kaiser87@gmail.com> --- (In reply to Antonio Larrosa from comment #10)
(In reply to Nik Kai from comment #5)
Hey Antonio, thanks for the speedy responses (and Takashi for pinging)! About the two commands, I will absolutely run them for you when I get home, but until then (couple hours), could you please tell me what I'm actually doing by running them? I'm always bit hesitant to copy/paste commands that I don't know from somewhere :) Doesn't mean that I don't trust you, I just would like to know what I'm doing. I googled the "registry.x86_64.bin" file, I assume it .. registers .. things? In this case the plugin? And gst-inspect checks its status?
Hi, you're right I should have explained it a bit better, sorry about that. From what I debugged last Friday it seems the problem is caused by two different issues. First, the scanning of available plugins is failing with a segmentation fault while loading the libgstva.so plugin. And second, gstreamer is failing to find the gst-plugin-scanner-x86_64 helper binary.
When pulseaudio starts, it tries to find the helper binary to do the plugin scan, and since it can't find it, it does the scanning in the own pulseaudio process. So when it tries to load the libgstva plugin the segfaults makes pulseaudio crash leaving the desktop without audio.
I've just submitted https://build.opensuse.org/request/show/1156870 which fixes the second issue. By making it find the helper binary, pulseaudio (and any other app using gstreamer) doesn't do the plugin scanning itself, but leaves that task to the gst-plugin-scanner-x86_64 helper binary, and when it crashes, it doesn't make pulseaudio crash, keeping it running and providing audio for the desktop.
Once the cache file in ~/.cache/gstreamer-1.0/registry.x86_64.bin is regenerated, plugins aren't rescanned again (at least, for a time). It seems when pulseaudio crashed doing it, the cache file wasn't written but when gst-plugin-scanner-x86_64 crashes, it does write it anyway. So after removing it, if you run pulseaudio manually, you'll still see a crash on your terminal (from gst-plugin-scanner-x86_64) but pulseaudio will keep running and if you stop and run it again, you won't see the segfault anymore (until the cache needs to be regenerated).
The commands I asked you to run (rm ~/.cache/gstreamer-1.0/registry.x86_64.bin ; gst-inspect-1.0 foo) was trying to do this "manually" by first removing the cache file and then running "gst-inspect-1.0 foo" which fails (there's no foo plugin) but regenerates the cache file manually, so the next time you run pulseaudio, it should run fine. At least in my tests, but I see that it didn't work for you.
In any case, https://build.opensuse.org/request/show/1156870 is a first step to fix this by at least reducing the most severe effects of the gstva segfault but the segfault itself still needs to be addressed.
Thanks so much for your detailed explanation and effort! As said, I will just leave the package uninstalled for now and check back on its status later. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1221150 https://bugzilla.suse.com/show_bug.cgi?id=1221150#c13 Jan Kohoutek <jkohoutek@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jkohoutek@suse.com --- Comment #13 from Jan Kohoutek <jkohoutek@suse.com> --- Segfault in another gstreamer plugin too: Mar 12 09:02:47 pascal pulseaudio[4958]: External plugin loader failed. This most likely means that the plugin loader helper binary was not found or could not be run. You might need to set the GST_PLUGIN_SCANNER environment variable if your setup is unusual. This should normally not be required though. Mar 12 09:02:47 pascal pulseaudio[4958]: ERROR: Caught a segmentation fault while loading plugin file: Mar 12 09:02:47 pascal pulseaudio[4958]: /lib64/gstreamer-1.0/libgstges.so Mar 12 09:02:47 pascal pulseaudio[4958]: Please either: Mar 12 09:02:47 pascal pulseaudio[4958]: - remove it and restart. Mar 12 09:02:47 pascal pulseaudio[4958]: - run with --gst-disable-segtrap --gst-disable-registry-fork and debug. Mar 12 09:02:47 pascal systemd[3637]: pulseaudio.service: Main process exited, code=exited, status=255/EXCEPTION Mar 12 09:02:47 pascal systemd[3637]: pulseaudio.service: Failed with result 'exit-code'. Mar 12 09:02:47 pascal systemd[3637]: pulseaudio.service: Scheduled restart job, restart counter is at 1. Mar 12 09:02:47 pascal pulseaudio[5280]: Stale PID file, overwriting. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1221150 https://bugzilla.suse.com/show_bug.cgi?id=1221150#c20 Nathan Wolf <me@cubiclenate.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |me@cubiclenate.com --- Comment #20 from Nathan Wolf <me@cubiclenate.com> --- I am not sure if this is the same problem or not, but I recently stumbled upon this issue too. My current mitigation to get the devices to repopulate was to run this, from the wiki on troubleshooting sound. sudo udevadm trigger This doesn't seem to be happening to a separate account that I created AFTER I upgraded to Plasma 6. What sort of log files can I provide for this? -- You are receiving this mail because: You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@suse.com