You are not logged in.

#1 2022-02-11 22:37:31

perkunos
Member
Registered: 2022-02-11
Posts: 3

Processes that use pulse(audio/pipewire) become zombies (can't kill)

I updated with pacman -Syu today. Rebooted because of the kernel and now my pulse audio won't work. And any application that calls it like vlc gets frozen turning into a zombie that can't be killed with kill.  I tried regular kill and kill -9 with sudo obviously. When I reboot the computer gets stuck trying to close all the zombie processes created that way when it's turning off and I have to force it to shut down. I can't downgrade either because it says it has a depedency of libpulse 14 which if I try to downgrade too says it needs me to downgrade pulseaudio to 14 first. A user at reddit suggested switching to pipewire-pulse. But the issue persists. At least the service and socket form pipewire-pulse from systemd is active now. And for this maybe the problem goes deeper than the pulse server.


The processes look something like this in ps. They all have this D stat (uninterruptible sleep (usually IO)) including the alsa ones.

$ps -aux | grep vlc
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
perkunos     912  0.0  0.2 140744 16324 ?        D    17:47   0:00 vlc
perkunos    1551  0.0  0.2 140744 16172 ?        D    17:49   0:00 vlc
perkunos    2429  0.0  0.2 140744 16316 ?        D    17:54   0:00 vlc

Is there like a "shot to the head" command to kill this kind of thing?

Some of the outputs I get

$systemctl --user status pulseaudio
× pulseaudio.service - Sound Service
     Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Fri 2022-02-11 15:52:02 -03; 1h 9min ago
TriggeredBy: ○ pulseaudio.socket
    Process: 2669 ExecStart=/usr/bin/pulseaudio --daemonize=no --log-target=journal (code=exited, status=1/FAILURE)
   Main PID: 2669 (code=exited, status=1/FAILURE)
      Tasks: 1 (limit: 9406)
     Memory: 8.1M
        CPU: 21ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pulseaudio.service
             └─607 /usr/bin/pulseaudio --daemonize=no --log-target=journal

Feb 11 15:49:01 perkunos pulseaudio[2669]: Daemon already running.
Feb 11 15:49:01 perkunos pulseaudio[2669]: pa_pid_file_create() failed.
Feb 11 15:49:01 perkunos systemd[486]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Feb 11 15:50:31 perkunos systemd[486]: pulseaudio.service: State 'stop-sigterm' timed out. Killing.
Feb 11 15:50:31 perkunos systemd[486]: pulseaudio.service: Killing process 607 (pulseaudio) with signal SIGKILL.
Feb 11 15:52:02 perkunos systemd[486]: pulseaudio.service: State 'final-sigterm' timed out. Killing.
Feb 11 15:52:02 perkunos systemd[486]: pulseaudio.service: Killing process 607 (pulseaudio) with signal SIGKILL.
Feb 11 15:52:02 perkunos systemd[486]: pulseaudio.service: Failed with result 'exit-code'.
Feb 11 15:52:02 perkunos systemd[486]: pulseaudio.service: Unit process 607 (pulseaudio) remains running after unit stopped.
Feb 11 15:52:02 perkunos systemd[486]: Stopped Sound Service.
$pulseaudio -v
I: [pulseaudio] main.c: setrlimit(RLIMIT_NICE, (31, 31)) failed: Operation not permitted
I: [pulseaudio] main.c: setrlimit(RLIMIT_RTPRIO, (9, 9)) failed: Operation not permitted
I: [pulseaudio] core-util.c: Successfully gained nice level -11.
I: [pulseaudio] main.c: This is PulseAudio 15.0
I: [pulseaudio] main.c: Page size is 4096 bytes
I: [pulseaudio] main.c: Machine ID is 0439e07636f44f078f72c2dd42985431.
I: [pulseaudio] main.c: Session ID is 1.
I: [pulseaudio] main.c: Using runtime directory /run/user/1000/pulse.
I: [pulseaudio] main.c: Using state directory /home/perkunos/.config/pulse.
I: [pulseaudio] main.c: Using modules directory /usr/lib/pulse-15.0/modules.
I: [pulseaudio] main.c: Running in system mode: no
E: [pulseaudio] pid.c: Daemon already running.
E: [pulseaudio] main.c: pa_pid_file_create() failed.
#pulseaudio vlc
$vlc
[0000560d1b833e10] vlcpulse audio output error: PulseAudio server connection failure: Connection refused
[code]
_
[/code]
#pipewire-pulse vlc
$vlc
[00005586ef1db490] vlcpulse audio output error: PulseAudio server connection failure: Timeout
$ systemctl --user status pipewire-pulse.service 
● pipewire-pulse.service - PipeWire PulseAudio
     Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-02-11 17:46:24 -03; 1h 44min ago
TriggeredBy: ● pipewire-pulse.socket
   Main PID: 804 (pipewire-pulse)
      Tasks: 2 (limit: 9406)
     Memory: 5.9M
        CPU: 109ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire-pulse.service
             └─804 /usr/bin/pipewire-pulse

Feb 11 17:46:24 perkunos systemd[466]: Started PipeWire PulseAudio.
$ systemctl --user status pipewire-pulse.socket 
● pipewire-pulse.socket - PipeWire PulseAudio
     Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.socket; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-02-11 17:45:11 -03; 1h 45min ago
      Until: Fri 2022-02-11 17:45:11 -03; 1h 45min ago
   Triggers: ● pipewire-pulse.service
     Listen: /run/user/1000/pulse/native (Stream)
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/pipewire-pulse.socket

Feb 11 17:45:11 perkunos systemd[466]: Listening on PipeWire PulseAudio.

Any better way to diagnose that? Maybe something at kernel level?

Edit: Reddit posts
https://www.reddit.com/r/archlinux/comm … opipewire/
https://www.reddit.com/r/archlinux/comm … ulseaudio/

Edit 2:
Found this in dmesg:

[  491.255373] INFO: task alsactl:357 blocked for more than 368 seconds.
[  491.255379]       Not tainted 5.16.8-arch1-1 #1
[  491.255384] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  491.255387] task:alsactl         state:D stack:    0 pid:  357 ppid:     1 flags:0x00004004

There's one for the other zombie D stat processes. I am guessing it's really the kernel. Will updating/downgrading solve it?

Please!!! I need this working for Monday

Last edited by perkunos (2022-02-12 00:17:46)

Offline

#2 2022-02-12 01:47:23

perkunos
Member
Registered: 2022-02-11
Posts: 3

Re: Processes that use pulse(audio/pipewire) become zombies (can't kill)

Its the kernel. I changed to 5.16.8-arch1-2 instead of 5.16.8-arch1-1 and it worked...

Offline

Board footer

Powered by FluxBB