https://bugs.kde.org/show_bug.cgi?id=435008
Bug ID: 435008 Summary: Call to pure virtual MediaObjectPrivate::aboutToDeleteBackendObject() [crash] Product: Phonon Version: 4.11.1 Platform: Ubuntu Packages OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: general Assignee: unassigned-b...@kde.org Reporter: p...@phd.re CC: myr...@kde.org, romain.per...@gmail.com, sit...@kde.org Target Milestone: --- This happens very rarely. Probable scenario: At Plasma startup `pulseaudio -k` executed in the wrong moment. Since all MediaNode/MediaNodePrivate derived classes [1] seem to implement aboutToDeleteBackendObject() properly, maybe that virtual function is called before the derived class is constructed or after it is destroyed, which would be UB? Although the (only) call in FactoryPrivate::~FactoryPrivate() seems to operate on already well constructed MediaNodes. I'm not sure if this is the right thing to do, but to workaround this crash, maybe we could simply implement MediaNode::aboutToDeleteBackendObject() to make it non-pure virtual? Does it have a potential to hide any serious issues in the future? Application: plasma_session (plasma_session), signal: Aborted [KCrash Handler] #4 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 #5 0x00007fba07614864 in __GI_abort () at abort.c:79 #6 0x00007fba07870951 in __gnu_cxx::__verbose_terminate_handler() () at ../../../../src/libstdc++-v3/libsupc++/vterminate.cc:95 #7 0x00007fba0787c47c in __cxxabiv1::__terminate(void (*)()) (handler=<optimized out>) at ../../../../src/libstdc++-v3/libsupc++/eh_terminate.cc:48 #8 0x00007fba0787c4e7 in std::terminate() () at ../../../../src/libstdc++-v3/libsupc++/eh_terminate.cc:58 #9 0x00007fba0787d245 in __cxxabiv1::__cxa_pure_virtual() () at ../../../../src/libstdc++-v3/libsupc++/pure.cc:50 #10 0x00007fba07f3acd5 in Phonon::MediaNodePrivate::deleteBackendObject() (this=0x7fb9f401a8a0) at ./phonon/medianode.cpp:78 #11 0x00007fba07f1d7b1 in Phonon::FactoryPrivate::~FactoryPrivate() (this=0x7fb9f40239f0, __in_chrg=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:543 #12 0x00007fba07f1da5d in Phonon::FactoryPrivate::~FactoryPrivate() (this=0x7fb9f40239f0, __in_chrg=<optimized out>) at ./phonon/factory.cpp:185 #13 0x00007fba07c601c2 in qt_call_post_routines() () at kernel/qcoreapplication.cpp:353 #14 0x00007fba07c60330 in QCoreApplication::~QCoreApplication() (this=0x7ffef5373410, __in_chrg=<optimized out>) at kernel/qcoreapplication.cpp:879 #15 0x000055a3cf9a7b99 in () #16 0x00007fba07616ca2 in __libc_start_main (main=0x55a3cf9a7b40, argc=1, argv=0x7ffef5373528, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffef5373518) at ../csu/libc-start.c:314 #17 0x000055a3cf9a7bee in _start () [Inferior 1 (process 5744) detached] System: Kubuntu 20.10 KDE Plasma Version: 5.19.5 KDE Frameworks Version: 5.74.0 Qt Version: 5.14.2 [1] https://invent.kde.org/libraries/phonon/-/tree/master/phonon -- You are receiving this mail because: You are watching all bug changes.