Summary: | Plasmashell crashes in QPulseAudio::VolumeMonitor::read_callback() while using sound widget with PipeWire | ||
---|---|---|---|
Product: | [Plasma] plasma-pa | Reporter: | Raindrops <raindrops> |
Component: | applet | Assignee: | David Rosca <nowrep> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | kde, nate, plasma-bugs |
Priority: | NOR | Keywords: | drkonqi |
Version: | 5.21.5 | ||
Target Milestone: | --- | ||
Platform: | Fedora RPMs | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=432482 | ||
Latest Commit: | https://invent.kde.org/plasma/plasma-pa/commit/756628553dc55a73cfefa5589ce383ffa95868c1 | Version Fixed In: | 5.22 |
Sentry Crash Report: |
Description
Raindrops
2021-05-16 00:18:35 UTC
Also, since the issue seems to be related to PulseAudio (according to the files that caused the crash), I specify I use PipeWire with its PulseAudio implementation. PipeWire Version: 0.3.27 Would seem to be the same as Bug 432482, but that was supposedly fixed in Plasma 5.21.1 and does not involve PipeWire. A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-pa/-/merge_requests/66 Git commit 1982415fc2abdd39a8eeaf4b68a53e05c9571395 by David Redondo. Committed on 19/05/2021 at 08:25. Pushed by ngraham into branch 'master'. Fix crash when target is destroyed before monitor The target is saved as a QPointer inside VolumeMonitor. This is generally a good idea since its lifetime is managed somewhere else. However in this case this means we are not noticing when it is deleted and cannot distinguish that from not having a set target. When the VolumeObject is deleted before the monitor, it would fail to unset the pulseaudio callbacks resulting in them being called after destruction. M +4 -1 src/volumemonitor.cpp M +1 -1 src/volumemonitor.h https://invent.kde.org/plasma/plasma-pa/commit/1982415fc2abdd39a8eeaf4b68a53e05c9571395 Git commit 756628553dc55a73cfefa5589ce383ffa95868c1 by Nate Graham, on behalf of David Redondo. Committed on 19/05/2021 at 16:06. Pushed by ngraham into branch 'Plasma/5.22'. Fix crash when target is destroyed before monitor The target is saved as a QPointer inside VolumeMonitor. This is generally a good idea since its lifetime is managed somewhere else. However in this case this means we are not noticing when it is deleted and cannot distinguish that from not having a set target. When the VolumeObject is deleted before the monitor, it would fail to unset the pulseaudio callbacks resulting in them being called after destruction. (cherry picked from commit 1982415fc2abdd39a8eeaf4b68a53e05c9571395) M +4 -1 src/volumemonitor.cpp M +1 -1 src/volumemonitor.h https://invent.kde.org/plasma/plasma-pa/commit/756628553dc55a73cfefa5589ce383ffa95868c1 |