Mumble SIGKILL by rtkit on newer versions of pipewire #2982

Open
opened 2026-02-20 22:16:05 -05:00 by deekerman · 13 comments
Owner

Originally created by @eyJhb on GitHub (Apr 12, 2025).

Description

When starting Mumble when using PipeWire, it crashes immediately (shows window for a brief second, then crashes).

Steps to reproduce

  1. Launch Mumble
  2. See window open quickly
  3. Then it gets SIGKILL

Mumble version

1.5.735

Mumble component

Client

OS

Linux

Reproducible?

Yes

Additional information

I've narrowed it down to being a PipeWire update. It worked fine on PipeWire 1.2.7, when upgrading to 1.4.0 it stopped working. I've bisected PipeWire, and it seems like it's this commit here in client.conf.in gitlab.freedesktop.org/pipewire/pipewire/-@24bcacc619 (ddf944f7b061f49f98c4de932a59d8238e538c2d) , causing the issue. I'm unsure what needs to be changed in Mumble, even though I did try :)

Including git bisect of pipewire just for completeness.

git bisect start
# status: waiting for both good and bad commits
# good: [cc7439187f61dd73b81ca69f5dbccbb52ce970b2] 1.2.7
git bisect good cc7439187f61dd73b81ca69f5dbccbb52ce970b2
# status: waiting for bad commit, 1 good commit known
# bad: [df1c36aec2aaf9e2eb1596b6b55e72c15fb2088a] 1.4.0
git bisect bad df1c36aec2aaf9e2eb1596b6b55e72c15fb2088a
# good: [7b4c0dd5ecb40e4d2c153699a85c51e1460361e1] 1.2
git bisect good 7b4c0dd5ecb40e4d2c153699a85c51e1460361e1
# good: [9c19284f7f062a50e059b0593068429b345acf34] support: make the loop queue handling lockfree
git bisect good 9c19284f7f062a50e059b0593068429b345acf34
# good: [509e769aa5d04a025393f287dfc912a0e9f72978] core: inherit the default.clock.quantum-limit from the server
git bisect good 509e769aa5d04a025393f287dfc912a0e9f72978
# skip: [f60fe6d6e48e0e86e0e0c98bee8b68ad2dc662fc] docs: add more docs for the SPA modules
git bisect skip f60fe6d6e48e0e86e0e0c98bee8b68ad2dc662fc
# skip: [8b761ccb78a760027e9ace23a77a0edc820e1cf6] doc: try to add SPA modules
git bisect skip 8b761ccb78a760027e9ace23a77a0edc820e1cf6
# bad: [ffb19547b07ae960d20172de3ef0cfff3c98779d] bluez5: backend-native: Fix supported HF features
git bisect bad ffb19547b07ae960d20172de3ef0cfff3c98779d
# bad: [800cd53c5676730a950a696bccf09e67864d9a21] gst: sink: Whitespace fixups
git bisect bad 800cd53c5676730a950a696bccf09e67864d9a21
# bad: [86e74290397a45b3a8b706aef68647f92a63daee] gst: pipewiresink: don't flush bufferpool in PLAYING_TO_PAUSED
git bisect bad 86e74290397a45b3a8b706aef68647f92a63daee
# good: [b57b5703d6598e8b1c6853176de34834f9840407] gst: core: Properly report connection errors
git bisect good b57b5703d6598e8b1c6853176de34834f9840407
# good: [b952cfbe387788f469c9ad9af1619d50cccb0ea9] bluez5: remove resampler delay fudge factor
git bisect good b952cfbe387788f469c9ad9af1619d50cccb0ea9
# bad: [b70e99c41a399d4de933b10c775464e589ed81a2] stream: new api to return unused buffer
git bisect bad b70e99c41a399d4de933b10c775464e589ed81a2
# bad: [0913b3ef7b04993fb6bbe77c1843e4c741d96d9c] audioconvert: report delay in input rate
git bisect bad 0913b3ef7b04993fb6bbe77c1843e4c741d96d9c
# bad: [24bcacc6195ffbf8e40c9ea1374eb6666252eadc] conf: remove client-rt.conf
git bisect bad 24bcacc6195ffbf8e40c9ea1374eb6666252eadc
# first bad commit: [24bcacc6195ffbf8e40c9ea1374eb6666252eadc] conf: remove client-rt.conf

Relevant log output

Dir didn't exist: /tmp/tmp.4iXAGX7hv2/.local/share/data/Mumble
Successfully migrated data directory
<X>2025-04-12 22:20:10.723 PipeWire 1.4.1 from libpipewire-0.3.so
<D>2025-04-12 22:20:10.725 PulseAudio 17.0.0 from libpulse.so
<W>2025-04-12 22:20:10.729 Theme: "Mumble"
<W>2025-04-12 22:20:10.729 Style: "Lite"
<W>2025-04-12 22:20:10.729 --> qss: ":themes/Default/Lite.qss"
<W>2025-04-12 22:20:10.730 Locale is "en_DK" (System: "en_DK")
<W>2025-04-12 22:20:10.785 Database SQLite: "3.48.0"
<W>2025-04-12 22:20:10.802 Updating application palette
<W>2025-04-12 22:20:10.810 GlobalShortcutX: Using XI2 2.4
<W>2025-04-12 22:20:10.828 QMetaObject::connectSlotsByName: No matching signal for on_qtvUsers_customContextMenuRequested(QPoint,bool)
<W>2025-04-12 22:20:10.828 QMetaObject::connectSlotsByName: No matching signal for on_muteCuePopup_triggered()
<W>2025-04-12 22:20:10.902 SocketRPC: Removing old socket on "/run/user/1000/MumbleSocket"
<W>2025-04-12 22:20:10.904 AudioInput: Opus encoder set for high quality speech
<W>2025-04-12 22:20:10.904 AudioInput: 40000 bits/s, 48000 hz, 480 sample
<W>2025-04-12 22:20:10.908 AudioInput: Initialized mixer for 1 channel 48000 hz mic and 0 channel 48000 hz echo
<W>2025-04-12 22:20:10.910 AudioOutput: Initialized 2 channel 48000 hz mixer
<W>2025-04-12 22:20:10.923 AudioInput: Opus encoder set for high quality speech
<W>2025-04-12 22:20:10.923 AudioInput: 40000 bits/s, 48000 hz, 480 sample
<W>2025-04-12 22:20:10.926 AudioInput: Initialized mixer for 1 channel 48000 hz mic and 0 channel 48000 hz echo
<W>2025-04-12 22:20:10.928 AudioOutput: Initialized 2 channel 48000 hz mixer
<W>2025-04-12 22:20:10.934 AudioInput: Opus encoder set for high quality speech
<W>2025-04-12 22:20:10.934 AudioInput: 40000 bits/s, 48000 hz, 480 sample
<W>2025-04-12 22:20:10.937 AudioInput: Initialized mixer for 1 channel 48000 hz mic and 0 channel 48000 hz echo
<W>2025-04-12 22:20:10.939 AudioOutput: Initialized 2 channel 48000 hz mixer
fish: Job 1, 'HOME=(mktemp -d) mumble' terminated by signal SIGKILL (Forced quit)

Screenshots

No response

Originally created by @eyJhb on GitHub (Apr 12, 2025). ### Description When starting Mumble when using PipeWire, it crashes immediately (shows window for a brief second, then crashes). ### Steps to reproduce 1. Launch Mumble 2. See window open quickly 3. Then it gets SIGKILL ### Mumble version 1.5.735 ### Mumble component Client ### OS Linux ### Reproducible? Yes ### Additional information I've narrowed it down to being a PipeWire update. It worked fine on PipeWire 1.2.7, when upgrading to 1.4.0 it stopped working. I've bisected PipeWire, and it seems like it's this commit here in client.conf.in https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/24bcacc6195ffbf8e40c9ea1374eb6666252eadc#ddf944f7b061f49f98c4de932a59d8238e538c2d , causing the issue. I'm unsure what needs to be changed in Mumble, even though I did try :) Including git bisect of pipewire just for completeness. ``` git bisect start # status: waiting for both good and bad commits # good: [cc7439187f61dd73b81ca69f5dbccbb52ce970b2] 1.2.7 git bisect good cc7439187f61dd73b81ca69f5dbccbb52ce970b2 # status: waiting for bad commit, 1 good commit known # bad: [df1c36aec2aaf9e2eb1596b6b55e72c15fb2088a] 1.4.0 git bisect bad df1c36aec2aaf9e2eb1596b6b55e72c15fb2088a # good: [7b4c0dd5ecb40e4d2c153699a85c51e1460361e1] 1.2 git bisect good 7b4c0dd5ecb40e4d2c153699a85c51e1460361e1 # good: [9c19284f7f062a50e059b0593068429b345acf34] support: make the loop queue handling lockfree git bisect good 9c19284f7f062a50e059b0593068429b345acf34 # good: [509e769aa5d04a025393f287dfc912a0e9f72978] core: inherit the default.clock.quantum-limit from the server git bisect good 509e769aa5d04a025393f287dfc912a0e9f72978 # skip: [f60fe6d6e48e0e86e0e0c98bee8b68ad2dc662fc] docs: add more docs for the SPA modules git bisect skip f60fe6d6e48e0e86e0e0c98bee8b68ad2dc662fc # skip: [8b761ccb78a760027e9ace23a77a0edc820e1cf6] doc: try to add SPA modules git bisect skip 8b761ccb78a760027e9ace23a77a0edc820e1cf6 # bad: [ffb19547b07ae960d20172de3ef0cfff3c98779d] bluez5: backend-native: Fix supported HF features git bisect bad ffb19547b07ae960d20172de3ef0cfff3c98779d # bad: [800cd53c5676730a950a696bccf09e67864d9a21] gst: sink: Whitespace fixups git bisect bad 800cd53c5676730a950a696bccf09e67864d9a21 # bad: [86e74290397a45b3a8b706aef68647f92a63daee] gst: pipewiresink: don't flush bufferpool in PLAYING_TO_PAUSED git bisect bad 86e74290397a45b3a8b706aef68647f92a63daee # good: [b57b5703d6598e8b1c6853176de34834f9840407] gst: core: Properly report connection errors git bisect good b57b5703d6598e8b1c6853176de34834f9840407 # good: [b952cfbe387788f469c9ad9af1619d50cccb0ea9] bluez5: remove resampler delay fudge factor git bisect good b952cfbe387788f469c9ad9af1619d50cccb0ea9 # bad: [b70e99c41a399d4de933b10c775464e589ed81a2] stream: new api to return unused buffer git bisect bad b70e99c41a399d4de933b10c775464e589ed81a2 # bad: [0913b3ef7b04993fb6bbe77c1843e4c741d96d9c] audioconvert: report delay in input rate git bisect bad 0913b3ef7b04993fb6bbe77c1843e4c741d96d9c # bad: [24bcacc6195ffbf8e40c9ea1374eb6666252eadc] conf: remove client-rt.conf git bisect bad 24bcacc6195ffbf8e40c9ea1374eb6666252eadc # first bad commit: [24bcacc6195ffbf8e40c9ea1374eb6666252eadc] conf: remove client-rt.conf ``` ### Relevant log output ```shell Dir didn't exist: /tmp/tmp.4iXAGX7hv2/.local/share/data/Mumble Successfully migrated data directory <X>2025-04-12 22:20:10.723 PipeWire 1.4.1 from libpipewire-0.3.so <D>2025-04-12 22:20:10.725 PulseAudio 17.0.0 from libpulse.so <W>2025-04-12 22:20:10.729 Theme: "Mumble" <W>2025-04-12 22:20:10.729 Style: "Lite" <W>2025-04-12 22:20:10.729 --> qss: ":themes/Default/Lite.qss" <W>2025-04-12 22:20:10.730 Locale is "en_DK" (System: "en_DK") <W>2025-04-12 22:20:10.785 Database SQLite: "3.48.0" <W>2025-04-12 22:20:10.802 Updating application palette <W>2025-04-12 22:20:10.810 GlobalShortcutX: Using XI2 2.4 <W>2025-04-12 22:20:10.828 QMetaObject::connectSlotsByName: No matching signal for on_qtvUsers_customContextMenuRequested(QPoint,bool) <W>2025-04-12 22:20:10.828 QMetaObject::connectSlotsByName: No matching signal for on_muteCuePopup_triggered() <W>2025-04-12 22:20:10.902 SocketRPC: Removing old socket on "/run/user/1000/MumbleSocket" <W>2025-04-12 22:20:10.904 AudioInput: Opus encoder set for high quality speech <W>2025-04-12 22:20:10.904 AudioInput: 40000 bits/s, 48000 hz, 480 sample <W>2025-04-12 22:20:10.908 AudioInput: Initialized mixer for 1 channel 48000 hz mic and 0 channel 48000 hz echo <W>2025-04-12 22:20:10.910 AudioOutput: Initialized 2 channel 48000 hz mixer <W>2025-04-12 22:20:10.923 AudioInput: Opus encoder set for high quality speech <W>2025-04-12 22:20:10.923 AudioInput: 40000 bits/s, 48000 hz, 480 sample <W>2025-04-12 22:20:10.926 AudioInput: Initialized mixer for 1 channel 48000 hz mic and 0 channel 48000 hz echo <W>2025-04-12 22:20:10.928 AudioOutput: Initialized 2 channel 48000 hz mixer <W>2025-04-12 22:20:10.934 AudioInput: Opus encoder set for high quality speech <W>2025-04-12 22:20:10.934 AudioInput: 40000 bits/s, 48000 hz, 480 sample <W>2025-04-12 22:20:10.937 AudioInput: Initialized mixer for 1 channel 48000 hz mic and 0 channel 48000 hz echo <W>2025-04-12 22:20:10.939 AudioOutput: Initialized 2 channel 48000 hz mixer fish: Job 1, 'HOME=(mktemp -d) mumble' terminated by signal SIGKILL (Forced quit) ``` ### Screenshots _No response_
Author
Owner

@davidebeatrici commented on GitHub (Apr 12, 2025):

You should ask your distribution package's maintainer to update PipeWire to 0.4.1, for reference: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4595

@davidebeatrici commented on GitHub (Apr 12, 2025): You should ask your distribution package's maintainer to update PipeWire to 0.4.1, for reference: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4595
Author
Owner

@eyJhb commented on GitHub (Apr 13, 2025):

You should ask your distribution package's maintainer to update PipeWire to 0.4.1, for reference: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4595

@davidebeatrici this also happens on 1.4.1.

@eyJhb commented on GitHub (Apr 13, 2025): > You should ask your distribution package's maintainer to update PipeWire to 0.4.1, for reference: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4595 @davidebeatrici this also happens on 1.4.1.
Author
Owner

@eyJhb commented on GitHub (Apr 13, 2025):

At least this is what I'm running.

eyjhb@chronos ~/p/n/nixpkgs (master)> pipewire --version
pipewire
Compiled with libpipewire 1.4.1
Linked with libpipewire 1.4.1

Debug log with PIPEWIRE_DEBUG=5: pipewire-debug.log

If I comment out these lines in Pipewire, I no longer get the crash https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/src/daemon/client.conf.in?ref_type=heads#L45-53

Is Mumble confirmed to be working with 1.4.1 of PipeWire for both audio in/out? If so, then it's more likely a packaging issue, and I'll try to look elsewhere.

@eyJhb commented on GitHub (Apr 13, 2025): At least this is what I'm running. ``` eyjhb@chronos ~/p/n/nixpkgs (master)> pipewire --version pipewire Compiled with libpipewire 1.4.1 Linked with libpipewire 1.4.1 ``` Debug log with `PIPEWIRE_DEBUG=5`: [pipewire-debug.log](https://github.com/user-attachments/files/19723724/pipewire-debug.log) If I comment out these lines in Pipewire, I no longer get the crash https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/src/daemon/client.conf.in?ref_type=heads#L45-53 Is Mumble confirmed to be working with 1.4.1 of PipeWire for both audio in/out? If so, then it's more likely a packaging issue, and I'll try to look elsewhere.
Author
Owner

@eyJhb commented on GitHub (Apr 13, 2025):

Okay, so I did some more digging, and I found out the issue (I think). So, the issue linked here https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4595 has nothing to do with it since it's a segfault, whereas I'm getting SIGKILL.

The issue seems to be, that I'm running rtkit, and that specific commit I linked from PipeWire earlier enables libpipewire-module-rt by default.
The theory is then, that Mumble blocks for too long the rt thread, and is then SIGKILL by rtkit. Which is why I see mumble for a split second, before it's killed.

I'm not sure what the solution would be for Mumble, or if the solution is just to NOT run rtkit. But I don't think I'm the only one, that uses rtkit sadly, and more might experience this in the future.

Also, thanks for reopening the issues! Highly appreciated :)

EDIT: I should clarify, rtkit enforces/sets a RLIMIT_RTTIME, which is what ends up killing it AFAIK.

@eyJhb commented on GitHub (Apr 13, 2025): Okay, so I did some more digging, and I found out the issue (I think). So, the issue linked here https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4595 has nothing to do with it since it's a segfault, whereas I'm getting SIGKILL. The issue seems to be, that I'm running rtkit, and that specific commit I linked from PipeWire earlier enables `libpipewire-module-rt` by default. The theory is then, that Mumble blocks for too long the rt thread, and is then SIGKILL by rtkit. Which is why I see mumble for a split second, before it's killed. I'm not sure what the solution would be for Mumble, or if the solution is just to NOT run rtkit. But I don't think I'm the only one, that uses rtkit sadly, and more might experience this in the future. Also, thanks for reopening the issues! Highly appreciated :) EDIT: I should clarify, rtkit enforces/sets a RLIMIT_RTTIME, which is what ends up killing it AFAIK.
Author
Owner

@davidebeatrici commented on GitHub (Apr 13, 2025):

Thank you for the detailed investigation and sorry for my misunderstanding.

Could you try libcrossaudio's TestLoopback application? It would help us rule out a few potential causes.

https://github.com/mumble-voip/libcrossaudio

Please note that ALSA is the default backend on Linux, you can switch to PipeWire by replacing CROSSAUDIO_BACKEND_ALSA with CROSSAUDIO_BACKEND_PIPEWIRE in src/tests/Common.h.

@davidebeatrici commented on GitHub (Apr 13, 2025): Thank you for the detailed investigation and sorry for my misunderstanding. Could you try libcrossaudio's TestLoopback application? It would help us rule out a few potential causes. https://github.com/mumble-voip/libcrossaudio Please note that ALSA is the default backend on Linux, you can switch to PipeWire by replacing `CROSSAUDIO_BACKEND_ALSA` with `CROSSAUDIO_BACKEND_PIPEWIRE` in `src/tests/Common.h`.
Author
Owner

@eyJhb commented on GitHub (Apr 14, 2025):

I've tried running it now, and it doesn't seem to be killed/crash.

[nix-shell:/tmp/libcrossaudio]$ LD_PRELOAD=/nix/store/xir78j1r5bk42jjxsszjwfx93sjc0d93-pipewire-1.4.1/lib/libpipewire-0.3.so ./tests/TestLoopback
Backend name: PipeWire | version: 1.4.1

Has been running for a good 30s now. Should I observe anything else, besides it just hanging around as a application in pavucontrol?

Image

@eyJhb commented on GitHub (Apr 14, 2025): I've tried running it now, and it doesn't seem to be killed/crash. ``` [nix-shell:/tmp/libcrossaudio]$ LD_PRELOAD=/nix/store/xir78j1r5bk42jjxsszjwfx93sjc0d93-pipewire-1.4.1/lib/libpipewire-0.3.so ./tests/TestLoopback Backend name: PipeWire | version: 1.4.1 ``` Has been running for a good 30s now. Should I observe anything else, besides it just hanging around as a application in pavucontrol? ![Image](https://github.com/user-attachments/assets/d842bd38-5fe6-42f7-b16c-4c94b3f45f6c)
Author
Owner

@davidebeatrici commented on GitHub (Apr 14, 2025):

The test should actually play back the input audio, but in this case we just wanted to know whether it exhibited the same behavior as Mumble.

@davidebeatrici commented on GitHub (Apr 14, 2025): The test should actually play back the input audio, but in this case we just wanted to know whether it exhibited the same behavior as Mumble.
Author
Owner

@eyJhb commented on GitHub (Apr 16, 2025):

Confirmed to playback input audio now, and still not killed by rt :) - Anything else I can do?

@eyJhb commented on GitHub (Apr 16, 2025): Confirmed to playback input audio now, and still not killed by rt :) - Anything else I can do?
Author
Owner

@davidebeatrici commented on GitHub (Apr 17, 2025):

No, that suffices, thank you! I'll take care of fixing the issue.

@davidebeatrici commented on GitHub (Apr 17, 2025): No, that suffices, thank you! I'll take care of fixing the issue.
Author
Owner

@eyJhb commented on GitHub (Apr 18, 2025):

Perfect! Thank you for looking into it :) - Feel free to aggressively ping me, if you need me to test anything. I don't mind at all :)

@eyJhb commented on GitHub (Apr 18, 2025): Perfect! Thank you for looking into it :) - Feel free to _*aggressively*_ ping me, if you need me to test anything. I don't mind at all :)
Author
Owner

@nh2 commented on GitHub (Sep 16, 2025):

Still happening to me with pipewire 1.4.7 and Mumble 1.5.735 on NixOS 25.05.

@nh2 commented on GitHub (Sep 16, 2025): Still happening to me with pipewire `1.4.7` and Mumble `1.5.735` on NixOS 25.05.
Author
Owner

@nh2 commented on GitHub (Sep 16, 2025):

Workaround

DISABLE_RTKIT=1 mumble
@nh2 commented on GitHub (Sep 16, 2025): ## Workaround ```sh DISABLE_RTKIT=1 mumble ```
Author
Owner

@ju1m commented on GitHub (Feb 19, 2026):

Mumble still crashes at startup for me with libpipewire-1.4.9 and mumble-1.5.857 on nixos-25.11.
nh2's DISABLE_RTKIT=1 workaround still works.

@ju1m commented on GitHub (Feb 19, 2026): Mumble still crashes at startup for me with `libpipewire-1.4.9` and `mumble-1.5.857` on `nixos-25.11`. nh2's [`DISABLE_RTKIT=1` workaround](https://github.com/mumble-voip/mumble/issues/6780#issuecomment-3300334156) still works.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/mumble-mumble-voip#2982
No description provided.