Created attachment 123814 [details] Shows backtrace as well as related information SUMMARY When a vcard is deleted, the client application (in this case kdeconnect-sms) crashes due to an assert in KPeople code. Launching the app, adding the vcard, then deleting the vcard does not cause this crash. STEPS TO REPRODUCE 1. Add vcard 2. Launch kdeconnect-sms 3. Delete vcard OBSERVED RESULT kdeconnect-sms crashes EXPECTED RESULT kdeconnect-sms does something non-crashy SOFTWARE/OS VERSIONS Linux/KDE Plasma: Fedora 31 KDE Plasma Version: 5.16.5 KDE Frameworks Version: 5.61.0 Qt Version: 5.12.5 ADDITIONAL INFORMATION This is a crash I have been experiencing for several KPeople versions. KPeople v5.62 depends on KFrameworks v5.62 which I do not have available. KPeople was compiled by ignoring that requirement.
Backtrace from attachment: NOTE TO READER: Deleted file was "/home/simon/.local/share/kpeoplevcard/kdeconnect-d6e0d674782a6a88/3337i1f64a5c40ae7d76e.3789r150-4131.1496r356-4D394145434B312F412943.2797r454-4131.vcf" ASSERT: "index < 0 || d->contacts[index] == contact" in file /home/simon/src/kpeople/src/metacontact.cpp, line 186 #0 0x00007ffff5bee625 in raise () from /lib64/libc.so.6 #1 0x00007ffff5bd78d9 in abort () from /lib64/libc.so.6 #2 0x00007ffff615cb1b in QMessageLogger::fatal(char const*, ...) const () from /lib64/libQt5Core.so.5 #3 0x00007ffff615bed1 in qt_assert(char const*, char const*, int) () from /lib64/libQt5Core.so.5 #4 0x00007ffff7a37b94 in KPeople::MetaContact::updateContact (this=0x8f7828, contactUri="vcard://home/simon/.local/share/kpeoplevcard/kdeconnect-d6e0d674782a6a88/3337i1f64a5c40ae7d76e.3789r150-4131.1496r356-4D394145434B312F412943.2797r454-4131.vcf", contact=...) at /home/simon/src/kpeople/src/metacontact.cpp:186 #5 0x00007ffff7a3ab94 in KPeople::PersonData::onContactChanged (this=0x9ecac0) at /home/simon/src/kpeople/src/persondata.cpp:129 #6 0x00007ffff7a35627 in KPeople::PersonData::qt_static_metacall (_o=0x9ecac0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fffffffc4c0) at /home/simon/build/kpeople/src/KF5People_autogen/EWIEGA46WW/moc_persondata.cpp:110 #7 0x00007ffff6363dfb in QMetaObject::activate(QObject*, int, int, void**) () from /lib64/libQt5Core.so.5 #8 0x00007ffff56b0eb7 in KPeople::ContactMonitor::contactChanged (this=0x1d28c40) at /home/simon/build/kpeople/src/backends/KF5PeopleBackend_autogen/EWIEGA46WW/moc_contactmonitor.cpp:131 #9 0x00007ffff56b1435 in KPeople::ContactMonitor::setContact (this=0x1d28c40, contact=...) at /home/simon/src/kpeople/src/backends/contactmonitor.cpp:49 #10 0x00007ffff56b3ec6 in DefaultContactMonitor::onContactRemoved (this=0x1d28c40, id="vcard://home/simon/.local/share/kpeoplevcard/kdeconnect-d6e0d674782a6a88/3337i1f64a5c40ae7d76e.3789r150-4131.1496r356-4D394145434B312F412943.2797r454-4131.vcf") at /home/simon/src/kpeople/src/backends/defaultcontactmonitor.cpp:54 #11 0x00007ffff56b0f64 in DefaultContactMonitor::qt_static_metacall (_o=0x1d28c40, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0x7fffffffc6d0) at /home/simon/build/kpeople/src/backends/KF5PeopleBackend_autogen/EWIEGA46WW/moc_defaultcontactmonitor_p.cpp:84 #12 0x00007ffff6363dfb in QMetaObject::activate(QObject*, int, int, void**) () from /lib64/libQt5Core.so.5 #13 0x00007ffff56b0aaf in KPeople::AllContactsMonitor::contactRemoved (this=0x1b02640, _t1="vcard://home/simon/.local/share/kpeoplevcard/kdeconnect-d6e0d674782a6a88/3337i1f64a5c40ae7d76e.3789r150-4131.1496r356-4D394145434B312F412943.2797r454-4131.vcf") at /home/simon/build/kpeople/src/backends/KF5PeopleBackend_autogen/EWIEGA46WW/moc_allcontactsmonitor.cpp:193 #14 0x00007fffd56a3b14 in KPeopleVCard::deleteVCard (this=0x1b02640, path="/home/simon/.local/share/kpeoplevcard/kdeconnect-d6e0d674782a6a88/3337i1f64a5c40ae7d76e.3789r150-4131.1496r356-4D394145434B312F412943.2797r454-4131.vcf") at /home/simon/src/kpeoplevcard/src/kpeoplevcard.cpp:236 #15 0x00007fffd56a811e in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QString const&>, void, void (KPeopleVCard::*)(QString const&)>::call (f=(void (KPeopleVCard::*)(KPeopleVCard * const, const QString &)) 0x7fffd56a3aae <KPeopleVCard::deleteVCard(QString const&)>, o=0x1b02640, arg=0x7fffffffc8c0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152 #16 0x00007fffd56a7fa7 in QtPrivate::FunctionPointer<void (KPeopleVCard::*)(QString const&)>::call<QtPrivate::List<QString const&>, void> (f=(void (KPeopleVCard::*)(KPeopleVCard * const, const QString &)) 0x7fffd56a3aae <KPeopleVCard::deleteVCard(QString const&)>, o=0x1b02640, arg=0x7fffffffc8c0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185 #17 0x00007fffd56a7b86 in QtPrivate::QSlotObject<void (KPeopleVCard::*)(QString const&), QtPrivate::List<QString const&>, void>::impl (which=1, this_=0x8aa9d0, r=0x1b02640, a=0x7fffffffc8c0, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:414 #18 0x00007ffff6363f40 in QMetaObject::activate(QObject*, int, int, void**) () from /lib64/libQt5Core.so.5 #19 0x00007ffff730e679 in KDirWatch::deleted(QString const&) () from /lib64/libKF5CoreAddons.so.5 #20 0x00007ffff7310040 in KDirWatch::setDeleted(QString const&) () from /lib64/libKF5CoreAddons.so.5 #21 0x00007ffff6364c7a in QObject::event(QEvent*) () from /lib64/libQt5Core.so.5 #22 0x00007ffff74f5ad6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5 #23 0x00007ffff74ff150 in QApplication::notify(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5 #24 0x00007ffff6339de8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt5Core.so.5 #25 0x00007ffff633cd8b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib64/libQt5Core.so.5 #26 0x00007ffff638ef27 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /lib64/libQt5Core.so.5 #27 0x00007ffff4a0e4a0 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0 #28 0x00007ffff4a0e830 in g_main_context_iterate.isra () from /lib64/libglib-2.0.so.0 #29 0x00007ffff4a0e8d3 in g_main_context_iteration () from /lib64/libglib-2.0.so.0 #30 0x00007ffff638ecb5 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5 #31 0x00007ffff6338ceb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5 #32 0x00007ffff6340a16 in QCoreApplication::exec() () from /lib64/libQt5Core.so.5 #33 0x000000000040de91 in main (argc=1, argv=0x7fffffffd2a8) at /home/simon/src/kdeconnect-kde/smsapp/main.cpp:81
I've been trying to reproduce this issue but I've been unable to. Could you help me reproduce it? A test case for kpeople-vcard (or kpeople) would be ace.
(In reply to Aleix Pol from comment #2) > I've been trying to reproduce this issue but I've been unable to. Could you > help me reproduce it? > > A test case for kpeople-vcard (or kpeople) would be ace. Actually, it doesn't seem to be happening any more for me (yay!). I just recently updated to Frameworks 5.67. I did test it "recently" and I was able to reproduce it, but I don't promise that it was with Frameworks 5.66 I'm going to close this bug. If I am able to reproduce it again, I'll open it again