Bugzilla – Bug 1222081
Jamulus crashes since some time (no package update)
Last modified: 2024-04-19 16:09:31 UTC
Hi, since approximately start of march 2024 jamulus provided by the opensuse tumbleweed distro crashes when run on my servers and notebooks. The pipewire soundsystem was updated in that timeframe but not the jamulus package. So I guess pipewire (or maybe sth else) came with new shared libs that are not compatible with the current jamulus build. Fix for me was to do a self compile (git as of today): ``` sudo zypper in qt6-base-common-devel qt6-network-devel qt6-widgets-devel qt6-xml-devel qt6-concurrent-devel qt6-multimedia-devel qt6-tools-linguist cd git clone https://github.com/jamulussoftware/jamulus.git cd jamulus qmake6 make -j8 sudo make install ``` To update the services to use the self compiled version I did ``` sudo sed -i s@/usr/bin/Jamulus@/usr/local/bin/Jamulus@ /etc/systemd/system/jamulus-*.service sudo systemctl daemon-reload ``` Please check and update the package, thank you!
Maybe this is relevant: Libs used by distro version: joachim@caba1:~> ldd /usr/bin/Jamulus linux-vdso.so.1 (0x00007ffc375ce000) libopus.so.0 => /lib64/libopus.so.0 (0x00007fdff5d7b000) libjack.so.0 => /usr/lib64/pipewire-0.3/jack/libjack.so.0 (0x00007fdff5d3c000) libQt5Widgets.so.5 => /lib64/libQt5Widgets.so.5 (0x00007fdff5600000) libQt5Multimedia.so.5 => /lib64/libQt5Multimedia.so.5 (0x00007fdff54f9000) libQt5Gui.so.5 => /lib64/libQt5Gui.so.5 (0x00007fdff4c00000) libQt5Network.so.5 => /lib64/libQt5Network.so.5 (0x00007fdff5343000) libQt5Xml.so.5 => /lib64/libQt5Xml.so.5 (0x00007fdff5cf4000) libQt5Core.so.5 => /lib64/libQt5Core.so.5 (0x00007fdff4600000) libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fdff4200000) libm.so.6 => /lib64/libm.so.6 (0x00007fdff4519000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fdff44ec000) libc.so.6 => /lib64/libc.so.6 (0x00007fdff3e00000) libpipewire-0.3.so.0 => /lib64/libpipewire-0.3.so.0 (0x00007fdff411b000) /lib64/ld-linux-x86-64.so.2 (0x00007fdff608f000) libpulse.so.0 => /lib64/libpulse.so.0 (0x00007fdff4497000) libGL.so.1 => /lib64/libGL.so.1 (0x00007fdff408e000) libpng16.so.16 => /lib64/glibc-hwcaps/x86-64-v3/libpng16.so.16.43.0 (0x00007fdff4041000) libz.so.1 => /lib64/glibc-hwcaps/x86-64-v3/libz.so.1.3.1 (0x00007fdff4be6000) libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007fdff3cf2000) libproxy.so.1 => /lib64/libproxy.so.1 (0x00007fdff533e000) libssl.so.3 => /lib64/glibc-hwcaps/x86-64-v3/libssl.so.3.1.4 (0x00007fdff3c51000) libcrypto.so.3 => /lib64/glibc-hwcaps/x86-64-v3/libcrypto.so.3.1.4 (0x00007fdff3600000) libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007fdff3b6f000) libdouble-conversion.so.3 => /lib64/libdouble-conversion.so.3 (0x00007fdff4487000) libicui18n.so.73 => /lib64/libicui18n.so.73 (0x00007fdff3200000) libicuuc.so.73 => /lib64/libicuuc.so.73 (0x00007fdff2e00000) libpcre2-16.so.0 => /lib64/libpcre2-16.so.0 (0x00007fdff3ad0000) libzstd.so.1 => /lib64/glibc-hwcaps/x86-64-v3/libzstd.so.1.5.5 (0x00007fdff3553000) libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007fdff30b5000) libpulsecommon-17.0.so => /usr/lib64/pulseaudio/libpulsecommon-17.0.so (0x00007fdff302d000) libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007fdff2dad000) libGLX.so.0 => /lib64/libGLX.so.0 (0x00007fdff400f000) libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007fdff2cf6000) libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007fdff2c38000) libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007fdff4466000) libpxbackend-1.0.so => /usr/lib64/libproxy/libpxbackend-1.0.so (0x00007fdff4458000) libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007fdff2bd4000) libcap.so.2 => /lib64/libcap.so.2 (0x00007fdff4bd8000) libgcrypt.so.20 => /lib64/glibc-hwcaps/x86-64-v3/libgcrypt.so.20.4.3 (0x00007fdff2a89000) liblz4.so.1 => /lib64/glibc-hwcaps/x86-64-v3/liblz4.so.1.9.4 (0x00007fdff3009000) liblzma.so.5 => /lib64/glibc-hwcaps/x86-64-v3/liblzma.so.5.6.1 (0x00007fdff2a47000) libicudata.so.73 => /lib64/libicudata.so.73 (0x00007fdff400a000) libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fdff299b000) libsndfile.so.1 => /lib64/libsndfile.so.1 (0x00007fdff2915000) libxcb.so.1 => /lib64/libxcb.so.1 (0x00007fdff28e9000) libX11.so.6 => /lib64/libX11.so.6 (0x00007fdff27a3000) libbz2.so.1 => /lib64/glibc-hwcaps/x86-64-v3/libbz2.so.1.0.6 (0x00007fdff278a000) libbrotlidec.so.1 => /lib64/glibc-hwcaps/x86-64-v3/libbrotlidec.so.1.1.0 (0x00007fdff277c000) libcurl.so.4 => /lib64/libcurl.so.4 (0x00007fdff26bd000) libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007fdff24cf000) libduktape.so.207 => /lib64/libduktape.so.207 (0x00007fdff2484000) libffi.so.8 => /lib64/libffi.so.8 (0x00007fdff2479000) libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007fdff2453000) libogg.so.0 => /lib64/libogg.so.0 (0x00007fdff2449000) libvorbisenc.so.2 => /lib64/glibc-hwcaps/x86-64-v3/libvorbisenc.so.2.0.12 (0x00007fdff239e000) libFLAC.so.12 => /lib64/glibc-hwcaps/x86-64-v3/libFLAC.so.12.1.0 (0x00007fdff233b000) libspeex.so.1 => /lib64/libspeex.so.1 (0x00007fdff231f000) libvorbis.so.0 => /lib64/glibc-hwcaps/x86-64-v3/libvorbis.so.0.4.9 (0x00007fdff22f1000) libXau.so.6 => /lib64/libXau.so.6 (0x00007fdff3ac9000) libbrotlicommon.so.1 => /lib64/glibc-hwcaps/x86-64-v3/libbrotlicommon.so.1.1.0 (0x00007fdff22ce000) libnghttp2.so.14 => /lib64/libnghttp2.so.14 (0x00007fdff22a2000) libidn2.so.0 => /lib64/libidn2.so.0 (0x00007fdff2280000) libssh.so.4 => /lib64/libssh.so.4 (0x00007fdff220f000) libpsl.so.5 => /lib64/libpsl.so.5 (0x00007fdff21fb000) libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fdff21a7000) libldap.so.2 => /lib64/libldap.so.2 (0x00007fdff2145000) liblber.so.2 => /lib64/liblber.so.2 (0x00007fdff2134000) libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007fdff212d000) libmount.so.1 => /lib64/libmount.so.1 (0x00007fdff20e1000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fdff20b3000) libunistring.so.5 => /lib64/libunistring.so.5 (0x00007fdff1efe000) libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fdff1e2f000) libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fdff1e17000) libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fdff1e11000) libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007fdff1e02000) libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007fdff1de3000) libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fdff1da8000) libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fdff1da1000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fdff1d90000) Libs used by self compiled version joachim@caba1:~> ldd /usr/local/bin/Jamulus linux-vdso.so.1 (0x00007ffc9f0c2000) libjack.so.0 => /usr/lib64/pipewire-0.3/jack/libjack.so.0 (0x00007f796f72e000) libQt6Widgets.so.6 => /usr/lib64/libQt6Widgets.so.6 (0x00007f796ee00000) libQt6Multimedia.so.6 => /usr/lib64/libQt6Multimedia.so.6 (0x00007f796f639000) libQt6Gui.so.6 => /usr/lib64/libQt6Gui.so.6 (0x00007f796e400000) libQt6Network.so.6 => /usr/lib64/libQt6Network.so.6 (0x00007f796e267000) libQt6Xml.so.6 => /usr/lib64/libQt6Xml.so.6 (0x00007f796f60f000) libQt6Core.so.6 => /usr/lib64/libQt6Core.so.6 (0x00007f796dc00000) libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007f796f582000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f796d800000) libm.so.6 => /usr/lib64/libm.so.6 (0x00007f796ed19000) libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007f796ecec000) libc.so.6 => /usr/lib64/libc.so.6 (0x00007f796d400000) libpipewire-0.3.so.0 => /lib64/libpipewire-0.3.so.0 (0x00007f796db1b000) /lib64/ld-linux-x86-64.so.2 (0x00007f796f78d000) libpulse.so.0 => /lib64/libpulse.so.0 (0x00007f796ec97000) libEGL.so.1 => /usr/lib64/libEGL.so.1 (0x00007f796ec85000) libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f796e218000) libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f796d6ba000) libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f796d2b5000) libQt6DBus.so.6 => /usr/lib64/libQt6DBus.so.6 (0x00007f796da61000) libxkbcommon.so.0 => /usr/lib64/libxkbcommon.so.0 (0x00007f796d670000) libGLX.so.0 => /usr/lib64/libGLX.so.0 (0x00007f796d63e000) libOpenGL.so.0 => /usr/lib64/libOpenGL.so.0 (0x00007f796d611000) libpng16.so.16 => /usr/lib64/glibc-hwcaps/x86-64-v3/libpng16.so.16 (0x00007f796d268000) libharfbuzz.so.0 => /usr/lib64/libharfbuzz.so.0 (0x00007f796d15a000) libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f796d09c000) libz.so.1 => /usr/lib64/glibc-hwcaps/x86-64-v3/libz.so.1 (0x00007f796d082000) libzstd.so.1 => /usr/lib64/glibc-hwcaps/x86-64-v3/libzstd.so.1 (0x00007f796cfd5000) libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00007f796cf81000) libbrotlidec.so.1 => /usr/lib64/glibc-hwcaps/x86-64-v3/libbrotlidec.so.1 (0x00007f796cf73000) libproxy.so.1 => /usr/lib64/libproxy.so.1 (0x00007f796ec80000) libcrypto.so.3 => /usr/lib64/glibc-hwcaps/x86-64-v3/libcrypto.so.3 (0x00007f796ca00000) libicui18n.so.73 => /usr/lib64/libicui18n.so.73 (0x00007f796c600000) libicuuc.so.73 => /usr/lib64/libicuuc.so.73 (0x00007f796c200000) libsystemd.so.0 => /usr/lib64/libsystemd.so.0 (0x00007f796c51e000) libdouble-conversion.so.3 => /usr/lib64/libdouble-conversion.so.3 (0x00007f796cf63000) libb2.so.1 => /usr/lib64/libb2.so.1 (0x00007f796e20f000) libpcre2-16.so.0 => /usr/lib64/libpcre2-16.so.0 (0x00007f796c961000) libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007f796c467000) libpulsecommon-17.0.so => /usr/lib64/pulseaudio/libpulsecommon-17.0.so (0x00007f796cedb000) libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007f796c414000) libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f796c1d4000) libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f796c1a8000) libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f796c0fc000) libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007f796c0db000) libbz2.so.1 => /lib64/glibc-hwcaps/x86-64-v3/libbz2.so.1.0.6 (0x00007f796c0c2000) libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f796bff3000) libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f796bfdb000) libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f796da5b000) libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f796cecc000) libbrotlicommon.so.1 => /lib64/glibc-hwcaps/x86-64-v3/libbrotlicommon.so.1.1.0 (0x00007f796bfb8000) libpxbackend-1.0.so => /usr/lib64/libproxy/libpxbackend-1.0.so (0x00007f796c953000) libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007f796bf54000) libicudata.so.73 => /lib64/libicudata.so.73 (0x00007f796da58000) libcap.so.2 => /lib64/libcap.so.2 (0x00007f796d605000) libgcrypt.so.20 => /lib64/glibc-hwcaps/x86-64-v3/libgcrypt.so.20.4.3 (0x00007f796be09000) liblz4.so.1 => /lib64/glibc-hwcaps/x86-64-v3/liblz4.so.1.9.4 (0x00007f796bde5000) liblzma.so.5 => /lib64/glibc-hwcaps/x86-64-v3/liblzma.so.5.6.1 (0x00007f796bda3000) libgomp.so.1 => /lib64/libgomp.so.1 (0x00007f796bd4d000) libsndfile.so.1 => /lib64/libsndfile.so.1 (0x00007f796bcc7000) libXau.so.6 => /lib64/libXau.so.6 (0x00007f796c94e000) libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f796c40d000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f796bcb6000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f796bc88000) libcurl.so.4 => /lib64/libcurl.so.4 (0x00007f796bbc9000) libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007f796b9db000) libduktape.so.207 => /lib64/libduktape.so.207 (0x00007f796b990000) libffi.so.8 => /lib64/libffi.so.8 (0x00007f796b985000) libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007f796b95f000) libogg.so.0 => /lib64/libogg.so.0 (0x00007f796b955000) libvorbisenc.so.2 => /lib64/glibc-hwcaps/x86-64-v3/libvorbisenc.so.2.0.12 (0x00007f796b8aa000) libFLAC.so.12 => /lib64/glibc-hwcaps/x86-64-v3/libFLAC.so.12.1.0 (0x00007f796b847000) libspeex.so.1 => /lib64/libspeex.so.1 (0x00007f796b82b000) libopus.so.0 => /lib64/libopus.so.0 (0x00007f796b7c4000) libvorbis.so.0 => /lib64/glibc-hwcaps/x86-64-v3/libvorbis.so.0.4.9 (0x00007f796b796000) libnghttp2.so.14 => /lib64/libnghttp2.so.14 (0x00007f796b76a000) libidn2.so.0 => /lib64/libidn2.so.0 (0x00007f796b748000) libssh.so.4 => /lib64/libssh.so.4 (0x00007f796b6d7000) libpsl.so.5 => /lib64/libpsl.so.5 (0x00007f796b6c3000) libssl.so.3 => /lib64/glibc-hwcaps/x86-64-v3/libssl.so.3.1.4 (0x00007f796b622000) libldap.so.2 => /lib64/libldap.so.2 (0x00007f796b5c0000) liblber.so.2 => /lib64/liblber.so.2 (0x00007f796b5af000) libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007f796b5a8000) libmount.so.1 => /lib64/libmount.so.1 (0x00007f796b55a000) libunistring.so.5 => /lib64/libunistring.so.5 (0x00007f796b3a5000) libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007f796b386000) libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f796b34b000) * Note 1: self compiled uses QT6 while rpm uses QT5 * Note 2: both use directory /usr/lib64/pipewire-0.3 although pipewire is at 1.0.4
This is how a crash looks like. Last line appears at the moment I press the button to connect to a server joachim@caba1:~> /usr/bin/Jamulus - allocated port number: 22134 Connecting to JACK "default" instance (use the JACK_DEFAULT_SERVER environment variable to change this). DRI3 not available Segmentation fault (core dumped)
Could you try to get the stack trace? Either invoking from gdb or gathering the core file. Without that info, it's hard to track what's going on.
Thread 9 "pw-data-loop" received signal SIGSEGV, Segmentation fault. ... (gdb) backtrace #0 0x00007ffff7f48f86 in () at /lib64/libopus.so.0 #1 0x00007ffff7f4ac6d in () at /lib64/libopus.so.0 #2 0x00007ffff7f51882 in opus_custom_encode () at /lib64/libopus.so.0 #3 0x000055555561077e in CClient::ProcessAudioDataIntern(CVector<short>&) (this=0x7ffffffab7d0, vecsStereoSndCrd=<optimized out>) at src/client.cpp:1263 #4 0x0000555555611493 in CClient::ProcessSndCrdAudioData(CVector<short>&) (vecsStereoSndCrd=..., this=0x7ffffffab7d0) at src/client.cpp:1158 #5 CClient::ProcessSndCrdAudioData(CVector<short>&) (vecsStereoSndCrd=..., this=0x7ffffffab7d0) at src/client.cpp:1143 #6 CClient::AudioCallback(CVector<short>&, void*) (psData=..., arg=0x7ffffffab7d0) at src/client.cpp:1132 #7 0x00005555555a34d4 in CSoundBase::ProcessCallback(CVector<short>&) (psData=..., this=0x7ffffffac1e0) at src/sound/jack/../soundbase.h:151 #8 CSound::process(unsigned int, void*) (nframes=1024, arg=0x7ffffffac1e0) at src/sound/jack/sound.cpp:257 #9 0x00007ffff7f125d6 in () at /usr/lib64/pipewire-0.3/jack/libjack.so.0 #10 0x00007ffff3f1e08e in () at /usr/lib64/spa-0.2/support/libspa-support.so #11 0x00007ffff6562db4 in () at /lib64/libpipewire-0.3.so.0 #12 0x00007ffff5e92bb2 in start_thread () at /lib64/libc.so.6 #13 0x00007ffff5f1400c in clone3 () at /lib64/libc.so.6
Thanks. It looks like the code path via JACK callback. Can it be some inconsistency with opus? You can try downgrading the pipewire packages from OBS TW history repo http://download.opensuse.org/history/ If this works, it's concluded as a regression there.
I'm not near the PCs to test this week. Not sure if the 1 month history is enough once I could do the downgrade, but if it helps fixing, I can try. Anyways, I'd rather try a new build of the unchanged jamulus if there is a build server/rpm for that? I mean, a simple recompile already fixed it for me, so probably not worth the time to play detective.
I didn’t find time to test older versions but made the update to 3.10.0-1.3 when it appeared. It still crashes so I continue using the working self compiled version for now.
also updated to latest libopus today -> libopus0-1.5.2-1.1.x86_64 No change: distro Jamulus crashes on connect to server while self compiled works fine.