https://bugs.kde.org/show_bug.cgi?id=517003
Bug ID: 517003
Summary: Plasmashell crashes due to segfault in
PulseAudioQt::DevicePrivate::updateDevice when
connecting PipeWire Bluetooth headset / virtual sinks
Classification: Frameworks and Libraries
Product: pulseaudio-qt
Version First 1.8
Reported In:
Platform: Other
OS: Linux
Status: REPORTED
Severity: crash
Priority: NOR
Component: general
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
SUMMARY
Plasmashell crashes when adding bluetooth headphones (Apple Airpods Max) or
opening EasyEffects.
Segfault in PulseAudioQt::DevicePrivate::updateDevice when connecting PipeWire
Bluetooth headset / virtual sinks.
STEPS TO REPRODUCE
1. Run a Plasma Wayland session using PipeWire and WirePlumber for audio
routing.
2. Connect Apple Air Pods Max via Bluetooth. Crash behavior has been noted when
launching Easy Effects as well, but backtrace was produced using Airpods Max.
3. plasmashell immediately crashes.
OBSERVED RESULT
Plasmashell crashes after creating a new output.
Using an AI to debug the problem, I had it walk me through generating a
backtrace. It claims the following, though I am not knowledgeable enough to
verify:
"plasmashell crashes with a segmentation fault triggered by
libKF6PulseAudioQt.so.5. The crash occurs because DevicePrivate::updateDevice
attempts to pass a NULL string from a pa_source_info struct directly to
QByteArrayView without a null check."
EXPECTED RESULT
Audio applet in plasmashell tray generates a new audio output to select from in
the drop down menu without crashing.
SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Gentoo Linux 6.19.5-cachyos sources
KDE Plasma Version: 6.6.1
KDE Frameworks Version: 6.23.0
Qt Version: 6.10.2
BACKTRACE
#0 0x00007fff6037fa86 in QByteArrayView::QByteArrayView<char const*, true>
(this=<optimized out>, data=<error reading variable: Cannot access memory
at address 0x0>) at /usr/include/qt6/QtCore/qbytearrayview.h:160
#1 PulseAudioQt::DevicePrivate::updateDevice<pa_source_info> (this=<optimized
out>, info=info@entry=0x7fffffffd0f0)
at
/var/tmp/portage/media-libs/pulseaudio-qt-1.8.0/work/pulseaudio-qt-1.8.0/src/device_p.h:122
qDescription = {d = {d = 0x5555588e9640, ptr = 0x5555588e9650 u"Airpods
Max", size = 11}, static _empty = 0 u'\000'}
newPorts = {<QListSpecialMethods<QString>> =
{<QListSpecialMethodsBase<QString>> = {<No data fields>}, <No data fields>}, d
= {d = 0x0, ptr = 0x0, size = 0}}
#2 0x00007fff6037d8c0 in PulseAudioQt::SourcePrivate::update (this=<optimized
out>, info=info@entry=0x7fffffffd0f0)
at
/var/tmp/portage/media-libs/pulseaudio-qt-1.8.0/work/pulseaudio-qt-1.8.0/src/source.cpp:32
#3 0x00007fff60368805 in PulseAudioQt::MapBase<PulseAudioQt::Source,
pa_source_info>::updateEntry
(this=0x555556b5ede8, info=0x7fffffffd0f0, parent=0x555556edd120) at
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/unique_ptr.h:192
ADDITIONAL INFORMATION
Issue seems be related to plasma-pa. Uninstalling plasma-pa resolves the crash,
but also removes audio control.
If I connect my Airpods Max via bluetooth and let plasmashell crash, I still
have volume control via the physical volume crown on the headphones.
I am unable to open the "Sounds" configuration page (the program crashes) and
as long as my headphones are connected plasmashell cannot be running.
I use Gemini 3.1 Pro AI to help guide me through generating the backtrace. I
wrote the bug report myself however, and have noted where I included
information I felt was relevant but could not verify myself.
--
You are receiving this mail because:
You are watching all bug changes.