SUMMARY kmixctrl crashes because invalid destuctor order. STEPS TO REPRODUCE 1. run kmixctrl -s or kmixctrl -r OBSERVED RESULT Segmentation fault EXPECTED RESULT save/restore settings SOFTWARE/OS VERSIONS KDE Plasma Version: 5.19.5 KDE Frameworks Version: 5.74.0 Qt Version: 5.15.1 ADDITIONAL INFORMATION Null pointer dereference: #0 0x0000000000000000 in ?? () #1 0x00007ffff61521f1 in free_events (c=0x55555559f550) at /var/tmp/portage/media-sound/pulseaudio-13.0/work/pulseaudio-13.0/src/pulsecore/socket-client.c:109 #2 0x00007ffff6152318 in socket_client_free (c=0x55555559f550) at /var/tmp/portage/media-sound/pulseaudio-13.0/work/pulseaudio-13.0/src/pulsecore/socket-client.c:295 #3 pa_socket_client_unref (c=0x55555559f550) at /var/tmp/portage/media-sound/pulseaudio-13.0/work/pulseaudio-13.0/src/pulsecore/socket-client.c:317 #4 0x00007ffff71ebd3a in context_unlink (c=<optimized out>) at /var/tmp/portage/media-sound/pulseaudio-13.0/work/pulseaudio-13.0/src/pulse/context.c:234 #5 context_unlink (c=0x555555584850) at /var/tmp/portage/media-sound/pulseaudio-13.0/work/pulseaudio-13.0/src/pulse/context.c:201 #6 0x00007ffff71ebe52 in context_free (c=0x555555584850) at /var/tmp/portage/media-sound/pulseaudio-13.0/work/pulseaudio-13.0/src/pulse/context.c:244 #7 0x00007ffff7f6978b in Mixer_PULSE::~Mixer_PULSE (this=0x5555555a6820, __in_chrg=<optimized out>) at /var/tmp/portage/kde-apps/kmix-20.08.3/work/kmix-20.08.3/backends/mixer_pulse.cpp:1073 #8 0x00007ffff7f697ee in Mixer_PULSE::~Mixer_PULSE (this=0x5555555a6820, __in_chrg=<optimized out>) at /var/tmp/portage/kde-apps/kmix-20.08.3/work/kmix-20.08.3/backends/mixer_pulse.cpp:1080 #9 0x00007ffff7f462e2 in Mixer::~Mixer (this=0x5555555a5e20, __in_chrg=<optimized out>) at /var/tmp/portage/kde-apps/kmix-20.08.3/work/kmix-20.08.3/core/mixer.cpp:115 #10 0x00007ffff7f4632a in Mixer::~Mixer (this=0x5555555a5e20, __in_chrg=<optimized out>) at /var/tmp/portage/kde-apps/kmix-20.08.3/work/kmix-20.08.3/core/mixer.cpp:116 #11 0x00007ffff7f3e4c2 in MixerToolBox::deinitMixer () at /var/tmp/portage/kde-apps/kmix-20.08.3/work/kmix-20.08.3/core/mixertoolbox.cpp:356 #12 0x0000555555556bf5 in main (argc=2, argv=0x7fffffffda48) at /var/tmp/portage/kde-apps/kmix-20.08.3/work/kmix-20.08.3/apps/kmixctrl.cpp:86 socket-client.c:109 c->mainloop->time_free(c->timeout_event); mainloop->time_free is NULL and segfault is result. mainloop->time_free set to NULL by other destructor : Thread 1 "kmixctrl" hit Hardware watchpoint 4: s_context->mainloop->time_free Old value = (void (*)(pa_time_event *)) 0x7ffff7f6c17c <QtPaMainLoop::freeTimer(pa_time_event*)> New value = (void (*)(pa_time_event *)) 0x0 0x00007ffff7af9bd5 in QMetaCallEvent::QMetaCallEvent (this=0x5555555847d0, slotO=0x55555559e1f0, sender=0x555555599930, signalId=0, args=0x7fffffffd5f0, semaphore=0x7fffffffd570) at /var/tmp/portage/dev-qt/qtcore-5.15.1-r1/work/qtbase-everywhere-src-5.15.1/src/corelib/kernel/qobject_p.h:522 (gdb) bt #0 0x00007ffff7af9bd5 in QMetaCallEvent::QMetaCallEvent (this=0x5555555847d0, slotO=0x55555559e1f0, sender=0x555555599930, signalId=0, args=0x7fffffffd5f0, semaphore=0x7fffffffd570) at /var/tmp/portage/dev-qt/qtcore-5.15.1-r1/work/qtbase-everywhere-src-5.15.1/src/corelib/kernel/qobject_p.h:522 #1 0x00007ffff7b058aa in doActivate<false> (sender=0x555555599930, signal_index=0, argv=0x7fffffffd5f0) at /var/tmp/portage/dev-qt/qtcore-5.15.1-r1/work/qtbase-everywhere-src-5.15.1/src/corelib/kernel/qobject.cpp:3862 #2 0x00007ffff7aff94f in QMetaObject::activate (sender=sender@entry=0x555555599930, m=m@entry=0x7ffff7d9dba0 <QObject::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffd5f0) at /var/tmp/portage/dev-qt/qtcore-5.15.1-r1/work/qtbase-everywhere-src-5.15.1/src/corelib/kernel/qobject.cpp:3946 #3 0x00007ffff7aff9ff in QObject::destroyed (this=this@entry=0x555555599930, _t1=<optimized out>, _t1@entry=0x555555599930) at .moc/moc_qobject.cpp:219 #4 0x00007ffff7b03c15 in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at /var/tmp/portage/dev-qt/qtcore-5.15.1-r1/work/qtbase-everywhere-src-5.15.1/src/corelib/kernel/qobject.cpp:992 #5 0x00007ffff7f51370 in DBusMixerWrapper::~DBusMixerWrapper (this=0x555555599930, __in_chrg=<optimized out>) at /var/tmp/portage/kde-apps/kmix-20.08.3/work/kmix-20.08.3/dbus/dbusmixerwrapper.cpp:52 #6 0x00007ffff7f513a4 in DBusMixerWrapper::~DBusMixerWrapper (this=0x555555599930, __in_chrg=<optimized out>) at /var/tmp/portage/kde-apps/kmix-20.08.3/work/kmix-20.08.3/dbus/dbusmixerwrapper.cpp:58 #7 0x00007ffff7b02dcc in QObjectPrivate::deleteChildren (this=0x555555591800) at /var/tmp/portage/dev-qt/qtcore-5.15.1-r1/work/qtbase-everywhere-src-5.15.1/src/corelib/kernel/qobject.cpp:2104 #8 0x00007ffff7b039e6 in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at /var/tmp/portage/dev-qt/qtcore-5.15.1-r1/work/qtbase-everywhere-src-5.15.1/src/corelib/kernel/qobject.cpp:1082 #9 0x00007ffff7f4630e in Mixer::~Mixer (this=0x555555591410, __in_chrg=<optimized out>) at /var/tmp/portage/kde-apps/kmix-20.08.3/work/kmix-20.08.3/core/mixer.cpp:112 #10 0x00007ffff7f4632a in Mixer::~Mixer (this=0x555555591410, __in_chrg=<optimized out>) at /var/tmp/portage/kde-apps/kmix-20.08.3/work/kmix-20.08.3/core/mixer.cpp:116 #11 0x00007ffff7f3e4c2 in MixerToolBox::deinitMixer () at /var/tmp/portage/kde-apps/kmix-20.08.3/work/kmix-20.08.3/core/mixertoolbox.cpp:356 #12 0x0000555555556bf5 in main (argc=2, argv=0x7fffffffda48) at /var/tmp/portage/kde-apps/kmix-20.08.3/work/kmix-20.08.3/apps/kmixctrl.cpp:86
fixed by https://invent.kde.org/multimedia/kmix/commit/b3fe63796dfaa0b667c21160a9c10615d6690411