Bug 307621

Summary: akonadi_googlecontacts_resource crashes randomly
Product: [Frameworks and Libraries] Akonadi Reporter: Luis Silva <lacsilva>
Component: Google ResourceAssignee: Daniel Vrátil <dvratil>
Status: RESOLVED FIXED    
Severity: crash CC: kdepim-bugs
Priority: NOR    
Version: GIT (master)   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Luis Silva 2012-09-30 15:29:25 UTC
Application: akonadi_googlecontacts_resource (4.9)
KDE Platform Version: 4.9.1 (Compiled from sources)
Qt Version: 4.8.3
Operating System: Linux 3.5.0-16-generic i686
Distribution: Ubuntu quantal (development branch)

-- Information about the crash:
- What I was doing when the application crashed:
I asked the resource to recursively sync.

- Custom settings of the application:
All of akonadi and kdepim are compiled from source.

The crash can be reproduced some of the time.

-- Backtrace:
Application: lacsilva@gmail.com Contact of type Google Contacts (akonadi_googlecontacts_resource), signal: Aborted
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[KCrash Handler]
#7  0xb77be424 in __kernel_vsyscall ()
#8  0xb58761cf in __GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#9  0xb5879815 in __GI_abort () at abort.c:91
#10 0xb71ef72c in qt_message_output (msgType=QtFatalMsg, buf=0x93c55d8 "ASSERT failure in createItemSyncInstance: \"Calling items retrieval methods although no item retrieval is in progress\", file /home/lacsilva/Development/kdepim.d/kdepimlibs/akonadi/resourcebase.cpp, lin"...) at global/qglobal.cpp:2290
#11 0xb71efb39 in qt_message (msgType=QtFatalMsg, msg=0xb7379568 "ASSERT failure in %s: \"%s\", file %s, line %d", ap=0xbfae3814 "\330\346m\267\364\343m\267\230\337m\267\246") at global/qglobal.cpp:2336
#12 0xb71efc58 in qFatal (msg=msg@entry=0xb7379568 "ASSERT failure in %s: \"%s\", file %s, line %d") at global/qglobal.cpp:2519
#13 0xb71efc9d in qt_assert_x (where=0xb76de6d8 "createItemSyncInstance", what=0xb76de3f4 "Calling items retrieval methods although no item retrieval is in progress", file=0xb76ddf98 "/home/lacsilva/Development/kdepim.d/kdepimlibs/akonadi/resourcebase.cpp", line=166) at global/qglobal.cpp:2024
#14 0xb76570da in Akonadi::ResourceBasePrivate::createItemSyncInstanceIfMissing (this=0x8fc82d8) at /home/lacsilva/Development/kdepim.d/kdepimlibs/akonadi/resourcebase.cpp:165
#15 0xb76533ac in Akonadi::ResourceBase::itemsRetrieved (this=0x8fd04c0, items=...) at /home/lacsilva/Development/kdepim.d/kdepimlibs/akonadi/resourcebase.cpp:978
#16 0x08054dca in ContactsResource::contactReceived (this=0x8fd04c0, reply=0xbfae3934) at /home/lacsilva/Development/kdepim.d/kdepim-runtime/resources/google/contacts/contactsresource.cpp:572
#17 0x08054f58 in ContactsResource::replyReceived (this=0x8fd04c0, reply=0x93bf638) at /home/lacsilva/Development/kdepim.d/kdepim-runtime/resources/google/contacts/contactsresource.cpp:466
#18 0xb7325ed6 in QMetaObject::activate (sender=0x8f9ce70, m=0xb6a676e8 <KGAPI::AccessManager::staticMetaObject>, local_signal_index=0, argv=0xbfae3a88) at kernel/qobject.cpp:3547
#19 0xb6a0f2a5 in KGAPI::AccessManager::replyReceived (this=0x8f9ce70, _t1=0x93bf638) at /home/lacsilva/Development/kdepim.d/libkgoogle/BUILD/libkgapi/moc_accessmanager.cpp:119
#20 0xb6a140dd in KGAPI::AccessManagerPrivate::nam_replyReceived (this=0x8f9d358, reply=0x927e4b0) at /home/lacsilva/Development/kdepim.d/libkgoogle/libkgapi/accessmanager_p.cpp:301
#21 0xb6a0e799 in KGAPI::AccessManagerPrivate::qt_static_metacall (_o=0x8f9d358, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0xbfae3e68) at /home/lacsilva/Development/kdepim.d/libkgoogle/BUILD/libkgapi/moc_accessmanager_p.cpp:55
#22 0xb7325ed6 in QMetaObject::activate (sender=0x8f9c5d0, m=0xb7110adc <QNetworkAccessManager::staticMetaObject>, local_signal_index=2, argv=0xbfae3e68) at kernel/qobject.cpp:3547
#23 0xb7023fd5 in QNetworkAccessManager::finished (this=this@entry=0x8f9c5d0, _t1=0x927e4b0) at .moc/release-shared/moc_qnetworkaccessmanager.cpp:177
#24 0xb702402f in QNetworkAccessManagerPrivate::_q_replyFinished (this=0x8f9b910) at access/qnetworkaccessmanager.cpp:1021
#25 0xb7325ed6 in QMetaObject::activate (sender=0x927e4b0, m=0xb71122e4 <QNetworkReply::staticMetaObject>, local_signal_index=1, argv=0x0) at kernel/qobject.cpp:3547
#26 0xb70c0d95 in QNetworkReply::finished (this=this@entry=0x927e4b0) at .moc/release-shared/moc_qnetworkreply.cpp:166
#27 0xb70c103c in qt_static_metacall (_a=0xbfae40a4, _id=1, _o=0x927e4b0, _c=<optimized out>) at .moc/release-shared/moc_qnetworkreply.cpp:107
#28 QNetworkReply::qt_static_metacall (_o=0x927e4b0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0xbfae40a4) at .moc/release-shared/moc_qnetworkreply.cpp:100
#29 0xb731660d in QMetaMethod::invoke (this=0xbfae41d4, object=0x927e4b0, connectionType=Qt::DirectConnection, returnValue=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at kernel/qmetaobject.cpp:1664
#30 0xb7318c89 in QMetaObject::invokeMethod (obj=0x927e4b0, member=0xb6c7e2aa "finished", type=Qt::AutoConnection, ret=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at kernel/qmetaobject.cpp:1179
#31 0xb6aebe58 in invokeMethod (val9=..., val8=..., val7=..., val6=..., val5=..., val4=..., val3=..., val2=..., val1=..., val0=..., type=Qt::AutoConnection, member=0xb6c7e2aa "finished", obj=0x927e4b0) at /usr/include/qt4/QtCore/qobjectdefs.h:418
#32 KDEPrivate::AccessManagerReply::emitFinished (this=this@entry=0x927e4b0, state=state@entry=true, type=type@entry=Qt::AutoConnection) at ../../kio/kio/accessmanagerreply_p.cpp:484
#33 0xb6aed2a8 in KDEPrivate::AccessManagerReply::slotResult (this=0x927e4b0, kJob=0x9204990) at ../../kio/kio/accessmanagerreply_p.cpp:427
#34 0xb7325ed6 in QMetaObject::activate (sender=0x9204990, m=0xb6fc94ac <KJob::staticMetaObject>, local_signal_index=3, argv=0xbfae45f8) at kernel/qobject.cpp:3547
#35 0xb6e13c25 in KJob::result (this=this@entry=0x9204990, _t1=_t1@entry=0x9204990) at ./kjob.moc:208
#36 0xb6e13c78 in KJob::emitResult (this=0x9204990) at ../../kdecore/jobs/kjob.cpp:318
#37 0xb6b26dcd in KIO::SimpleJob::slotFinished (this=this@entry=0x9204990) at ../../kio/kio/job.cpp:494
#38 0xb6b2fb1d in KIO::TransferJob::slotFinished (this=0x9204990) at ../../kio/kio/job.cpp:1081
#39 0xb6b2ddb8 in qt_static_metacall (_a=0xbfae481c, _id=7, _o=0x9204990, _c=<optimized out>) at ./jobclasses.moc:388
#40 KIO::TransferJob::qt_static_metacall (_o=0x9204990, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0xbfae481c) at ./jobclasses.moc:375
#41 0xb7325ed6 in QMetaObject::activate (sender=0x928b0f8, m=0xb6d00480 <KIO::SlaveInterface::staticMetaObject>, local_signal_index=4, argv=0x0) at kernel/qobject.cpp:3547
#42 0xb6bd92c5 in KIO::SlaveInterface::finished (this=this@entry=0x928b0f8) at ./slaveinterface.moc:185
#43 0xb6bdc1b3 in KIO::SlaveInterface::dispatch (this=0x928b0f8, _cmd=104, rawdata=...) at ../../kio/kio/slaveinterface.cpp:172
#44 0xb6bd899a in KIO::SlaveInterface::dispatch (this=0x928b0f8) at ../../kio/kio/slaveinterface.cpp:88
#45 0xb6bcb468 in KIO::Slave::gotInput (this=this@entry=0x928b0f8) at ../../kio/kio/slave.cpp:344
#46 0xb6bcbac4 in KIO::Slave::qt_static_metacall (_o=0x928b0f8, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbfae4acc) at ./slave.moc:57
#47 0xb7325ed6 in QMetaObject::activate (sender=0x9293770, m=0xb6cfd110 <KIO::Connection::staticMetaObject>, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3547
#48 0xb6af5785 in KIO::Connection::readyRead (this=0x9293770) at ./connection.moc:106
#49 0xb6af5de8 in dequeue (this=<optimized out>) at ../../kio/kio/connection.cpp:82
#50 KIO::ConnectionPrivate::dequeue (this=0x90caa30) at ../../kio/kio/connection.cpp:71
#51 0xb731f9aa in QMetaCallEvent::placeMetaCall (this=0x902c0f0, object=0x9293770) at kernel/qobject.cpp:525
#52 0xb7323eeb in QObject::event (this=0x9293770, e=0x902c0f0) at kernel/qobject.cpp:1195
#53 0xb5c3039c in QApplicationPrivate::notify_helper (this=0x8e704b0, receiver=0x9293770, e=0x902c0f0) at kernel/qapplication.cpp:4562
#54 0xb5c34daf in QApplication::notify (this=0x902c0f0, receiver=0x9293770, e=0x902c0f0) at kernel/qapplication.cpp:3944
#55 0xb67a3981 in KApplication::notify (this=0xbfae5354, receiver=0x9293770, event=0x902c0f0) at ../../kdeui/kernel/kapplication.cpp:311
#56 0xb730d78e in QCoreApplication::notifyInternal (this=0xbfae5354, receiver=0x9293770, event=0x902c0f0) at kernel/qcoreapplication.cpp:915
#57 0xb731197d in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#58 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x8e4ea98) at kernel/qcoreapplication.cpp:1539
#59 0xb7311c0c in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1432
#60 0xb733f804 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#61 postEventSourceDispatch (s=0x8e73b80) at kernel/qeventdispatcher_glib.cpp:279
#62 0xb55e29e3 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#63 0xb55e2d80 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#64 0xb55e2e61 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#65 0xb733f981 in QEventDispatcherGlib::processEvents (this=0x8e4f7f8, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#66 0xb5ce69aa in QGuiEventDispatcherGlib::processEvents (this=0x8e4f7f8, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#67 0xb730c26c in QEventLoop::processEvents (this=this@entry=0xbfae52b8, flags=...) at kernel/qeventloop.cpp:149
#68 0xb730c561 in QEventLoop::exec (this=0xbfae52b8, flags=...) at kernel/qeventloop.cpp:204
#69 0xb7311cba in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#70 0xb5c2dfc4 in QApplication::exec () at kernel/qapplication.cpp:3823
#71 0xb76506e3 in Akonadi::ResourceBase::init (r=0x8fd04c0) at /home/lacsilva/Development/kdepim.d/kdepimlibs/akonadi/resourcebase.cpp:451
#72 0x08058f60 in Akonadi::ResourceBase::init<ContactsResource> (argc=argc@entry=3, argv=argv@entry=0xbfae5434) at /usr/include/KDE/Akonadi/../../akonadi/resourcebase.h:188
#73 0x0805030b in main (argc=3, argv=0xbfae5434) at /home/lacsilva/Development/kdepim.d/kdepim-runtime/resources/google/contacts/contactsresource.cpp:722

Possible duplicates by query: bug 291961, bug 291369, bug 287560.

Reported using DrKonqi
Comment 1 Myriam Schweingruber 2012-10-03 09:27:07 UTC

*** This bug has been marked as a duplicate of bug 291961 ***
Comment 2 Daniel Vrátil 2012-10-03 09:33:48 UTC
Not a duplicate, this is a bug in the Google Contacts Akonadi resource mishandling queued tasks.
Comment 3 Luis Silva 2012-11-28 19:02:05 UTC
Thi is still present in master (d14ba9) and happens every time I use kaddressbook. Resource is only usable the first time. After that, only cached results are visible in kaddressbook.
Comment 4 Daniel Vrátil 2012-12-05 14:38:16 UTC
Git commit 88f11fff5290c28bc152d21b126794ad6ccd2a3a by Dan Vrátil.
Committed on 05/12/2012 at 15:32.
Pushed by dvratil into branch 'master'.

Don't fetch contacts from server in retrieveItem()

Google Contacts resource does not use item parts, thus there no
point in fetching contact again in retrieveItem(). Just call
itemRetrieved() instead, because the Item already contains
full payload.

M  +3    -53   resources/google/contacts/contactsresource.cpp
M  +0    -1    resources/google/contacts/contactsresource.h

http://commits.kde.org/kdepim-runtime/88f11fff5290c28bc152d21b126794ad6ccd2a3a
Comment 5 Daniel Vrátil 2012-12-05 14:39:13 UTC
Luis, can you please test current kdepim-runtime master with this fix?
Comment 6 Luis Silva 2012-12-08 23:33:53 UTC
I have been testing for the past couple of days and the problem seems to be gone.
Thanks for fixing this.