Bug 1960890

Summary: After Logging out/crashing gnome-shell, and logging back in, sound is broken
Product: [Fedora] Fedora Reporter: Alan Jenkins <alan.christopher.jenkins>
Component: pipewireAssignee: Wim Taymans <wtaymans>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 34CC: brunovern.a, hujq, joepesco2020, wtaymans
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pipewire-0.3.28-1.fc34 Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-05-20 01:12:31 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Alan Jenkins 2021-05-15 20:50:08 UTC
Description of problem:

If I log out/crash gnome-shell and log back in, I have no sound and no volume controls.

Currently gnome-shell seems to crashi every time I log out (bug #1944152).  But don't worry about that.  I should be able to choose to kill or crash gnome-shell, then log back in, and my sound should work.

Version-Release number of selected component (if applicable):
pipewire-0.3.27-2.fc34.x86_64

How reproducible: always

Steps to Reproduce:
1. boot/reboot Fedora Workstation
2. log in to gnome
3. click on the gnome top bar on the right. Notice I have a brightness slider, and a volume slider.
4. killall -9 gnome-shell
5. log in to gnome again
6. click on the gnome top bar on the right and look for the volume slider

Actual results:
There is no volume slider and I cannot play sound e.g. Youtube.

Expected results:
There is a volume slider and I can play sound.

Additional info:
"pactl list" still seems able to connect to pipewire-pulseaudio.

You might see some errors in the log if you try to use sound:

May 15 21:30:20 alan-laptop pipewire-pulse[2114]: pulse-server 0x563578f444a0: [PulseAudio Volume Control] ERROR command:87 (EXTENSION) tag:12 error:19 (Operation not supported)
May 15 21:30:20 alan-laptop pipewire-pulse[2114]: pulse-server 0x563578f444a0: [PulseAudio Volume Control] ERROR command:87 (EXTENSION) tag:13 error:19 (Operation not supported)
May 15 21:30:20 alan-laptop pipewire-pulse[2114]: pulse-server 0x563578f444a0: [PulseAudio Volume Control] ERROR command:87 (EXTENSION) tag:14 error:19 (Operation not supported)
May 15 21:30:20 alan-laptop pipewire-pulse[2114]: pulse-server 0x563578f444a0: [PulseAudio Volume Control] ERROR command:87 (EXTENSION) tag:15 error:19 (Operation not supported)
May 15 21:30:50 alan-laptop pipewire-pulse[2114]: stream 0x563578ff41c0: error no node available
May 15 21:30:50 alan-laptop pipewire-pulse[2114]: pulse-server 0x563578f448a0: [Mutter] ERROR command:-1 (invalid) tag:10 error:25 (Input/output error)
May 15 21:30:59 alan-laptop pipewire-pulse[2114]: stream 0x563578fa3fc0: error no node available
May 15 21:30:59 alan-laptop pipewire-pulse[2114]: pulse-server 0x563578f448a0: [Mutter] ERROR command:-1 (invalid) tag:18 error:25 (Input/output error)


It seems a bit weird that pipewire stayed alive even after logging out of gnome-shell.  That is, after performing the above steps, I notice the pipewire instance was started long before the current gnome-shell instance:


$ systemctl status --user pipewire org.gnome.Shell@wayland -n0
● pipewire.service - Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; vendor preset: disabled)
     Active: active (running) since Sat 2021-05-15 21:23:57 BST; 16min ago
TriggeredBy: ● pipewire.socket
   Main PID: 2113 (pipewire)
      Tasks: 4 (limit: 9290)
     Memory: 6.7M
        CPU: 199ms
     CGroup: /user.slice/user-1000.slice/user/session.slice/pipewire.service
             ├─2113 /usr/bin/pipewire
             └─2119 /usr/bin/pipewire-media-session

● org.gnome.Shell - GNOME Shell on Wayland
     Loaded: loaded (/usr/lib/systemd/user/org.gnome.Shell; static)
     Active: active (running) since Sat 2021-05-15 21:24:42 BST; 15min ago
    Process: 3491 ExecCondition=/bin/sh -c test "$XDG_SESSION_TYPE" = "wayland" || exit 2 (code=exited, status=0/SUCCESS)
   Main PID: 3493 (gnome-shell)
      Tasks: 32 (limit: 9290)
     Memory: 225.7M
        CPU: 1min 12.530s
     CGroup: /user.slice/user-1000.slice/user/session.slice/org.gnome.Shell
             ├─3493 /usr/bin/gnome-shell
             ├─3573 ibus-daemon --panel disable
             ├─3584 /usr/libexec/ibus-dconf
             ├─3585 /usr/libexec/ibus-extension-gtk3
             └─3890 /usr/libexec/ibus-engine-simple

Comment 1 Alan Jenkins 2021-05-16 13:20:20 UTC
Sound starts working again if I run the command:

    systemctl --user restart pipewire pipewire-pulse

I checked, and I have to restart both services in order to fix sound fully:

* If I only restart pipewire, it lets me go to the Sound section in gnome Settings app and play test sounds etc.
* If I restart pipewire-pulse as well, that's what gets the volume control back in gnome-shell.

Restarting pipewire gives a huge diff in the output of "pactl list".  Before the restart, no lines contain "alsa".  After the restart, I can see alsa objects.  (I think this happened after just restarting pipewire? Don't think I needed to restart pipewire-pulse for this to happen).

Comment 2 Fedora Update System 2021-05-19 08:48:28 UTC
FEDORA-2021-28d7b1f215 has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-28d7b1f215

Comment 3 Fedora Update System 2021-05-20 01:12:31 UTC
FEDORA-2021-28d7b1f215 has been pushed to the Fedora 34 stable repository.
If problem still persists, please make note of it in this bug report.