Bug 327775 - Akonadi resource config crash when last resource removed
Summary: Akonadi resource config crash when last resource removed
Status: RESOLVED FIXED
Alias: None
Product: libkgapi
Classification: Frameworks and Libraries
Component: General (show other bugs)
Version: 2.0.1
Platform: Debian unstable Linux
: NOR crash
Target Milestone: ---
Assignee: Daniel Vrátil
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2013-11-18 16:38 UTC by Styopa Semenukha
Modified: 2014-07-15 09:20 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 4.14.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Styopa Semenukha 2013-11-18 16:38:06 UTC
Application: akonadi_googlecalendar_resource (4.11)
KDE Platform Version: 4.11.3
Qt Version: 4.8.6
Operating System: Linux 3.11-2-amd64 x86_64
Distribution: Debian GNU/Linux unstable (sid)

-- Information about the crash:
- What I was doing when the application crashed:
1. Korganizer was open and displaying info from that account.
2. I added a second Google account to the resource, removed it, then removed the first as well.

-- Backtrace:
Application: Google Calendars and Tasks (not configured) of type Google Calendars and Tasks (akonadi_googlecalendar_resource), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fa2d52e1780 (LWP 9031))]

Thread 3 (Thread 0x7fa2b9e6d700 (LWP 9046)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007fa2caea27d2 in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#2  0x00007fa2caea2809 in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#3  0x00007fa2cead0e0e in start_thread (arg=0x7fa2b9e6d700) at pthread_create.c:311
#4  0x00007fa2d15230fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 2 (Thread 0x7fa2b9564700 (LWP 9047)):
#0  0x00007fa2cead2e34 in __GI___pthread_mutex_lock (mutex=0x7fa2b4000a60) at pthread_mutex_lock.c:95
#1  0x00007fa2ce435291 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fa2ce3f5c1c in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fa2ce3f612b in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fa2ce3f629c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fa2d43fa4d6 in QEventDispatcherGlib::processEvents (this=0x7fa2b40008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:427
#6  0x00007fa2d43cbf9f in QEventLoop::processEvents (this=this@entry=0x7fa2b9563df0, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007fa2d43cc295 in QEventLoop::exec (this=this@entry=0x7fa2b9563df0, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007fa2d42c891f in QThread::exec (this=<optimized out>) at thread/qthread.cpp:537
#9  0x00007fa2d42cafef in QThreadPrivate::start (arg=0x165eea0) at thread/qthread_unix.cpp:349
#10 0x00007fa2cead0e0e in start_thread (arg=0x7fa2b9564700) at pthread_create.c:311
#11 0x00007fa2d15230fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 1 (Thread 0x7fa2d52e1780 (LWP 9031)):
[KCrash Handler]
#6  QString (other=<error reading variable: Cannot access memory at address 0x8>, this=0x7fffb3e16c80, this@entry=0x7fffb3e16b70) at /usr/include/qt4/QtCore/qstring.h:725
#7  KGAPI2::Account::accountName (this=0x0) at /tmp/buildd/libkgapi-2.0.1/common/account.inc.cpp:72
#8  0x0000000000420e3d in SettingsDialog::slotCalendarsRetrieved (this=0x12710e0, job=<optimized out>) at ../../../../resources/google/calendar/settingsdialog.cpp:194
#9  0x00007fa2d43e14c8 in QMetaObject::activate (sender=0x16ac970, m=m@entry=0x7fa2d263eb40 <KGAPI2::Job::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffb3e16e70) at kernel/qobject.cpp:3547
#10 0x00007fa2d23a560f in KGAPI2::Job::finished (this=<optimized out>, _t1=0x16ac970) at /tmp/buildd/libkgapi-2.0.1/obj-x86_64-linux-gnu/libkgapi2/job.moc:150
#11 0x00007fa2d43e587e in QObject::event (this=0x16ac970, e=<optimized out>) at kernel/qobject.cpp:1194
#12 0x00007fa2d376d75c in QApplicationPrivate::notify_helper (this=this@entry=0x11e49c0, receiver=receiver@entry=0x16ac970, e=e@entry=0x166a200) at kernel/qapplication.cpp:4567
#13 0x00007fa2d3773dd0 in QApplication::notify (this=this@entry=0x7fffb3e17f60, receiver=receiver@entry=0x16ac970, e=e@entry=0x166a200) at kernel/qapplication.cpp:4353
#14 0x00007fa2d1f3f49a in KApplication::notify (this=0x7fffb3e17f60, receiver=0x16ac970, event=0x166a200) at ../../kdeui/kernel/kapplication.cpp:311
#15 0x00007fa2d43cd33d in QCoreApplication::notifyInternal (this=0x7fffb3e17f60, receiver=receiver@entry=0x16ac970, event=event@entry=0x166a200) at kernel/qcoreapplication.cpp:949
#16 0x00007fa2d43d089f in sendEvent (event=0x166a200, receiver=0x16ac970) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#17 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x11a71f0) at kernel/qcoreapplication.cpp:1573
#18 0x00007fa2d43d0d43 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1466
#19 0x00007fa2d43fabf3 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#20 postEventSourceDispatch (s=0x11e4800) at kernel/qeventdispatcher_glib.cpp:280
#21 0x00007fa2ce3f5ea6 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007fa2ce3f61f8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007fa2ce3f629c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007fa2d43fa4b5 in QEventDispatcherGlib::processEvents (this=0x11a8ad0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#25 0x00007fa2d380b896 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#26 0x00007fa2d43cbf9f in QEventLoop::processEvents (this=this@entry=0x7fffb3e174b0, flags=...) at kernel/qeventloop.cpp:149
#27 0x00007fa2d43cc295 in QEventLoop::exec (this=this@entry=0x7fffb3e174b0, flags=...) at kernel/qeventloop.cpp:204
#28 0x00007fa2d3c10e1c in QDialog::exec (this=this@entry=0x12710e0) at dialogs/qdialog.cpp:562
#29 0x000000000040f677 in CalendarResource::runConfigurationDialog (this=0x13ac430, windowId=0) at ../../../../resources/google/calendar/calendarresource.cpp:105
#30 0x00000000004222ab in GoogleResource::configure (this=0x13ac430, windowId=0) at ../../../../resources/google/common/googleresource.cpp:103
#31 0x0000000000422c22 in GoogleResource::slotAccountManagerReady (this=0x13ac430, ready=<optimized out>) at ../../../../resources/google/common/googleresource.cpp:154
#32 0x00007fa2d43e14c8 in QMetaObject::activate (sender=sender@entry=0x13d3ea0, m=m@entry=0x42f460 <GoogleAccountManager::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffb3e17790) at kernel/qobject.cpp:3547
#33 0x0000000000427fbf in managerReady (_t1=true, this=0x13d3ea0) at ./googleaccountmanager.moc:124
#34 GoogleAccountManager::slotWalletOpened (this=this@entry=0x13d3ea0, success=<optimized out>) at ../../../../resources/google/common/googleaccountmanager.cpp:100
#35 0x00000000004284e7 in GoogleAccountManager::initManager (this=0x13d3ea0) at ../../../../resources/google/common/googleaccountmanager.cpp:60
#36 0x0000000000428705 in GoogleAccountManager::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ./googleaccountmanager.moc:70
#37 0x00007fa2d43e587e in QObject::event (this=0x13d3ea0, e=<optimized out>) at kernel/qobject.cpp:1194
#38 0x00007fa2d376d75c in QApplicationPrivate::notify_helper (this=this@entry=0x11e49c0, receiver=receiver@entry=0x13d3ea0, e=e@entry=0x1381610) at kernel/qapplication.cpp:4567
#39 0x00007fa2d3773dd0 in QApplication::notify (this=this@entry=0x7fffb3e17f60, receiver=receiver@entry=0x13d3ea0, e=e@entry=0x1381610) at kernel/qapplication.cpp:4353
#40 0x00007fa2d1f3f49a in KApplication::notify (this=0x7fffb3e17f60, receiver=0x13d3ea0, event=0x1381610) at ../../kdeui/kernel/kapplication.cpp:311
#41 0x00007fa2d43cd33d in QCoreApplication::notifyInternal (this=0x7fffb3e17f60, receiver=receiver@entry=0x13d3ea0, event=event@entry=0x1381610) at kernel/qcoreapplication.cpp:949
#42 0x00007fa2d43d089f in sendEvent (event=0x1381610, receiver=0x13d3ea0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#43 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x11a71f0) at kernel/qcoreapplication.cpp:1573
#44 0x00007fa2d43d0d43 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1466
#45 0x00007fa2d43fabf3 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#46 postEventSourceDispatch (s=0x11e4800) at kernel/qeventdispatcher_glib.cpp:280
#47 0x00007fa2ce3f5ea6 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#48 0x00007fa2ce3f61f8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#49 0x00007fa2ce3f629c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#50 0x00007fa2d43fa4b5 in QEventDispatcherGlib::processEvents (this=0x11a8ad0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#51 0x00007fa2d380b896 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#52 0x00007fa2d43cbf9f in QEventLoop::processEvents (this=this@entry=0x7fffb3e17ed0, flags=...) at kernel/qeventloop.cpp:149
#53 0x00007fa2d43cc295 in QEventLoop::exec (this=this@entry=0x7fffb3e17ed0, flags=...) at kernel/qeventloop.cpp:204
#54 0x00007fa2d43d18db in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1221
#55 0x00007fa2d376bf1c in QApplication::exec () at kernel/qapplication.cpp:3828
#56 0x00007fa2d4e0cae3 in Akonadi::ResourceBase::init (r=r@entry=0x13ac430) at ../../akonadi/resourcebase.cpp:548
#57 0x000000000041c5d3 in Akonadi::ResourceBase::init<CalendarResource> (argc=<optimized out>, argv=<optimized out>) at /usr/include/KDE/Akonadi/../../akonadi/resourcebase.h:192
#58 0x00007fa2d145b995 in __libc_start_main (main=0x40e880 <main(int, char**)>, argc=3, ubp_av=0x7fffb3e18078, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffb3e18068) at libc-start.c:276
#59 0x000000000040e8ae in _start ()

Reported using DrKonqi
Comment 1 Daniel Vrátil 2014-07-15 09:20:36 UTC
Git commit 11caa19f620506036e9e49dad6929022bc16f716 by Dan Vrátil.
Committed on 15/07/2014 at 09:12.
Pushed by dvratil into branch 'KDE/4.14'.

Google Calendar: fix crash when account is removed while Settings dialog is refreshing

slot{TaskLists,Calendars}Retrieved() accesses currentAccount(), which can return null
pointer in case the account is removed while the retrieval job is running.
FIXED-IN: 4.14.0

M  +7    -3    resources/google/calendar/settingsdialog.cpp

http://commits.kde.org/kdepim-runtime/11caa19f620506036e9e49dad6929022bc16f716