Bug 492952 - System Settings segfaults in PulseAudioQt::ContextPrivate::~ContextPrivate() when closing app after opening sound page
Summary: System Settings segfaults in PulseAudioQt::ContextPrivate::~ContextPrivate() ...
Status: REPORTED
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_pulseaudio (other bugs)
Version First Reported In: 6.1.4
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-09-10 15:36 UTC by triallax
Modified: 2024-09-19 20:39 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description triallax 2024-09-10 15:36:34 UTC
SUMMARY
Plasma's system settings app segfaults on quitting after opening the Sound tab.

STEPS TO REPRODUCE
1. Run `systemsettings` from the terminal
2. Press on "Sound" in the sidebar
3. Press the close button in the title bar to close the app

OBSERVED RESULT
The app segfaults.

EXPECTED RESULT
The app closes gracefully.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Chimera Linux
KDE Plasma Version: 6.1.4
KDE Frameworks Version: 6.5.0
Qt Version: 6.7.2

ADDITIONAL INFORMATION
I'm using PipeWire and its pulseaudio compatibility layer, if that's relevant.

Here's the crash backtrace:
* thread #1, name = 'systemsettings', stop reason = signal SIGSEGV: address not mapped to object
  * frame #0: 0x0000792788103a40 libKF6PulseAudioQt.so.5`PulseAudioQt::Server::updateDefaultDevices(this=0x00007927a91d6320) at server.cpp:118:56
    frame #1: 0x00007927a42de3d5 libQt6Core.so.6`void doActivate<false>(QObject*, int, void**) [inlined] QtPrivate::QSlotObjectBase::call(this=0x00007927a91d6720, r=0x00007927a91d6320, a=0x00007ffc97362c40) at qobjectdefs_impl.h:469:51
    frame #2: 0x00007927a42de3bd libQt6Core.so.6`void doActivate<false>(sender=0x0000792786d99788, signal_index=6, argv=0x00007ffc97362c40) at qobject.cpp:4086:26
    frame #3: 0x00007927880e469a libKF6PulseAudioQt.so.5`PulseAudioQt::MapBase<PulseAudioQt::Sink, pa_sink_info>::removeEntry(unsigned int) [inlined] PulseAudioQt::MapBaseQObject::removed(this=0x0000792786d99788, _t1=0, _t2=0x00007927a9c7de00) at moc_maps.cpp:207:5
    frame #4: 0x00007927880e466d libKF6PulseAudioQt.so.5`PulseAudioQt::MapBase<PulseAudioQt::Sink, pa_sink_info>::removeEntry(this=0x0000792786d99788, index=<unavailable>) at maps.h:143:20
    frame #5: 0x00007927880eefdb libKF6PulseAudioQt.so.5`PulseAudioQt::MapBase<PulseAudioQt::Sink, pa_sink_info>::reset(this=0x0000792786d99788) at maps.h:95:13
    frame #6: 0x00007927880e3330 libKF6PulseAudioQt.so.5`PulseAudioQt::ContextPrivate::~ContextPrivate() [inlined] PulseAudioQt::ContextPrivate::reset(this=0x0000792786d99780) at context.cpp:700:13
    frame #7: 0x00007927880e3323 libKF6PulseAudioQt.so.5`PulseAudioQt::ContextPrivate::~ContextPrivate(this=0x0000792786d99780) at context.cpp:348:5
    frame #8: 0x00007927880e3f6e libKF6PulseAudioQt.so.5`PulseAudioQt::ContextPrivate::~ContextPrivate(this=<unavailable>) at context.cpp:337:1
    frame #9: 0x00007927880e328d libKF6PulseAudioQt.so.5`PulseAudioQt::Context::~Context(this=<unavailable>) at context.cpp:333:5
    frame #10: 0x00007927880e32ae libKF6PulseAudioQt.so.5`PulseAudioQt::Context::~Context(this=<unavailable>) at context.cpp:332:1
    frame #11: 0x00007927aab3e47e ld-musl-x86_64.so.1`__funcs_on_exit at atexit.c:34:3
    frame #12: 0x00007927aab3e67d ld-musl-x86_64.so.1`exit(code=<unavailable>) at exit.c:31:2
    frame #13: 0x00007927aab3dc24 ld-musl-x86_64.so.1`libc_start_main_stage2(main=(systemsettings`main at main.cpp:26), argc=<unavailable>, argv=0x00007ffc97362e48) at __libc_start_main.c:95:2
    frame #14: 0x0000567ca1323ad6 systemsettings`_start + 22
Comment 1 Nate Graham 2024-09-19 20:39:57 UTC
Cannot reproduce on git master, FWIW. This is on Fedora KDE 40.