Bug 413987 - Client application crashes when contact is removed
Summary: Client application crashes when contact is removed
Status: RESOLVED WORKSFORME
Alias: None
Product: frameworks-kpeople
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 5.62.0
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Aleix Pol
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-11-09 17:45 UTC by Simon Redman
Modified: 2020-04-12 20:46 UTC (History)
0 users

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


Attachments
Shows backtrace as well as related information (6.55 KB, text/plain)
2019-11-09 17:45 UTC, Simon Redman
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Redman 2019-11-09 17:45:02 UTC
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.
Comment 1 Christoph Feck 2019-12-01 13:50:32 UTC
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
Comment 2 Aleix Pol 2020-04-12 19:15:26 UTC
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.
Comment 3 Simon Redman 2020-04-12 20:46:02 UTC
(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