Public bug reported:

Bug Description:

wireplumber crashed with SIGABRT during a manual service restart
(systemctl --user restart wireplumber), producing a core dump.

Steps that led to the crash:

A TASCAM US-16x08 USB audio interface (idVendor=0644, idProduct=8047) was 
connected to the system via a xHCI USB controller (0000:00:14.0) that is 
separately experiencing recurring buffer overrun event for slot X ep 2 on 
endpoint warnings from the kernel's xhci_hcd driver (a known class of 
isochronous ring overrun issue, related to CVE-2025-37882).
During normal playback, the audio interface's playback (output) nodes 
unexpectedly disappeared from the system's sound settings panel and from 
wireplumber's device list, while its capture (input) nodes remained visible and 
functional.
To recover, I ran systemctl --user restart wireplumber, then physically 
disconnected/reconnected the USB cable, and power-cycled the audio interface.
During this restart sequence, wireplumber aborted with:
   GLib-GObject:ERROR:../../../gobject/gsignal.c:4110:invalid_closure_notify: 
assertion failed: (handler->closure->n_ref > 1 || ...)
   Bail out! 
GLib-GObject:ERROR:../../../gobject/gsignal.c:4110:invalid_closure_notify: 
assertion failed
systemd-coredump captured the crash (process 11257, wireplumber, dumped core; 
exited with code=dumped, status=6/ABRT).

Crash backtrace (thread 11257, the one that aborted):

#3  n/a (libglib-2.0.so.0 + 0x21138)
#4  g_assertion_message_expr (libglib-2.0.so.0 + 0x925f7)
#5  n/a (libgobject-2.0.so.0 + 0x2df2c)
#6  g_closure_invalidate (libgobject-2.0.so.0 + 0x16124)
#7  n/a (libgobject-2.0.so.0 + 0x26552)
#8  g_object_unref (libgobject-2.0.so.0 + 0x26685)
#9  n/a (libwireplumber-0.5.so.0 + 0x40fd1)
#10 n/a (libwireplumber-0.5.so.0 + 0x3f90a)
#11 g_object_unref (libgobject-2.0.so.0 + 0x26685)
#12 g_value_unset (libgobject-2.0.so.0 + 0x42e87)
#13 n/a (libwireplumber-module-lua-scripting.so + 0x1dc93)
#14 n/a (liblua5.4.so.0 + 0x122fd)
#15 n/a (liblua5.4.so.0 + 0x14dc9)
#16-20 [lua5.4 interpreter frames]
#21 n/a (libwireplumber-0.5.so.0 + 0x40fd1)
#22 n/a (libwireplumber-0.5.so.0 + 0x3f90a)
#23 g_object_unref (libgobject-2.0.so.0 + 0x26685)
#24 n/a (libwireplumber-0.5.so.0 + 0x2a471)
#25 g_object_unref (libgobject-2.0.so.0 + 0x26685)
#26 n/a (/usr/bin/wireplumber + 0x29cb)

The crash appears to originate in the Lua scripting module's object
cleanup path (libwireplumber-module-lua-scripting.so), where a GObject
reference held by a Lua wrapper is unreferenced (g_value_unset →
g_object_unref) and its closure is invalidated a second time, triggering
the GLib assertion. This happened during service shutdown/teardown,
while the affected USB audio device had just gone through several
hotplug/reconnect cycles in quick succession, which may have left
dangling signal-handler references on the device's node/proxy objects.

Environment:

wireplumber 0.5.13-1ubuntu1
pipewire 1.6.2-1ubuntu1.2
Kernel 7.0.0-34-generic (linux-image-generic 7.0.0-34.34)
Ubuntu Studio 26.04.1 LTS (resolute)
Hardware: Lenovo IdeaPad (82KB), Intel Core i7-1165G7 (Tiger Lake)
Audio device: TASCAM US-16x08 USB audio interface

Expected behavior: wireplumber should restart cleanly even if a USB
audio device has recently gone through multiple hotplug cycles, without
hitting a GObject assertion failure.

Actual behavior: wireplumber aborts with SIGABRT and dumps core,
requiring the service to restart itself (which it does automatically via
systemd, but any active audio streams are interrupted).

ProblemType: Bug
DistroRelease: Ubuntu 26.04
Package: wireplumber 0.5.13-1ubuntu1
ProcVersionSignature: Ubuntu 7.0.0-34.34-generic 7.0.14
Uname: Linux 7.0.0-34-generic x86_64
ApportVersion: 2.34.1-0ubuntu0.1
Architecture: amd64
CasperMD5CheckResult: pass
CurrentDesktop: KDE
Date: Sat Sep 26 12:46:44 2026
InstallationDate: Installed on 2026-08-21 (36 days ago)
InstallationMedia: Ubuntu-Studio 26.04 "Resolute Raccoon" - Release amd64 
(20260423.1)
SourcePackage: wireplumber
UpgradeStatus: No upgrade log present (probably fresh install)

** Affects: wireplumber (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug resolute wayland-session

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2168628

Title:
  wireplumber crashes with GLib-GObject assertion (g_closure_invalidate)
  on restart after USB audio device hotplug

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/wireplumber/+bug/2168628/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to