Bug 310072

Summary: Crash in kmail (Kmail keeps running)
Product: [Frameworks and Libraries] Akonadi Reporter: Beat Wolf <asraniel>
Component: IMAP resourceAssignee: Kevin Ottens <ervin>
Status: RESOLVED FIXED    
Severity: crash CC: kdepim-bugs, mamelig, pk, stevenschmidt, vkrause
Priority: NOR    
Version: 4.9   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 4.10.1

Description Beat Wolf 2012-11-14 07:42:59 UTC
Application: akonadi_imap_resource (4.9)
KDE Platform Version: 4.9.3
Qt Version: 4.8.3
Operating System: Linux 3.5.0-18-generic x86_64
Distribution: Ubuntu 12.10

-- Information about the crash:
- What I was doing when the application crashed:

The computer was running overnight, in the morning i was presented with this crash dialog. The kontact was still running, but one imap account went offline.

-- Backtrace:
Application: Bluewin of type IMAP E-Mail Server (akonadi_imap_resource), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f0366266780 (LWP 2190))]

Thread 6 (Thread 0x7f0352bc3700 (LWP 2266)):
#0  __pthread_mutex_unlock_usercnt (mutex=<optimized out>, decr=<optimized out>) at pthread_mutex_unlock.c:49
#1  __pthread_mutex_unlock (mutex=0x7f034c000a60) at pthread_mutex_unlock.c:290
#2  0x00007f0360830c61 in g_mutex_unlock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f03607f360b in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f03607f3cab in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f03607f3ea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007f0365691c16 in QEventDispatcherGlib::processEvents (this=0x7f034c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#7  0x00007f03656622bf in QEventLoop::processEvents (this=this@entry=0x7f0352bc2de0, flags=...) at kernel/qeventloop.cpp:149
#8  0x00007f0365662548 in QEventLoop::exec (this=0x7f0352bc2de0, flags=...) at kernel/qeventloop.cpp:204
#9  0x00007f0365563b10 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#10 0x00007f03642c7a89 in KIMAP::SessionThread::run (this=0xa9fa70) at ../../kimap/sessionthread.cpp:181
#11 0x00007f0365566aec in QThreadPrivate::start (arg=0xa9fa70) at thread/qthread_unix.cpp:338
#12 0x00007f0361311e9a in start_thread (arg=0x7f0352bc3700) at pthread_create.c:308
#13 0x00007f0361cb2cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#14 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f034b7fe700 (LWP 7208)):
#0  0x00007f03607f31d7 in g_main_context_release () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f03607f3d35 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f03607f3ea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f0365691c16 in QEventDispatcherGlib::processEvents (this=0x7f0338002ba0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007f03656622bf in QEventLoop::processEvents (this=this@entry=0x7f034b7fdde0, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f0365662548 in QEventLoop::exec (this=0x7f034b7fdde0, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007f0365563b10 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#7  0x00007f03642c7a89 in KIMAP::SessionThread::run (this=0xaac8e0) at ../../kimap/sessionthread.cpp:181
#8  0x00007f0365566aec in QThreadPrivate::start (arg=0xaac8e0) at thread/qthread_unix.cpp:338
#9  0x00007f0361311e9a in start_thread (arg=0x7f034b7fe700) at pthread_create.c:308
#10 0x00007f0361cb2cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f034a7fc700 (LWP 8725)):
#0  0x00007f036131505d in __pthread_mutex_unlock_usercnt (mutex=<optimized out>, decr=<optimized out>) at pthread_mutex_unlock.c:52
#1  __pthread_mutex_unlock (mutex=0x7f0330000a60) at pthread_mutex_unlock.c:290
#2  0x00007f0360830c61 in g_mutex_unlock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f03607f3672 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f03607f3cab in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f03607f3ea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007f0365691c16 in QEventDispatcherGlib::processEvents (this=0x7f03300008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#7  0x00007f03656622bf in QEventLoop::processEvents (this=this@entry=0x7f034a7fbde0, flags=...) at kernel/qeventloop.cpp:149
#8  0x00007f0365662548 in QEventLoop::exec (this=0x7f034a7fbde0, flags=...) at kernel/qeventloop.cpp:204
#9  0x00007f0365563b10 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#10 0x00007f03642c7a89 in KIMAP::SessionThread::run (this=0xa8f4c0) at ../../kimap/sessionthread.cpp:181
#11 0x00007f0365566aec in QThreadPrivate::start (arg=0xa8f4c0) at thread/qthread_unix.cpp:338
#12 0x00007f0361311e9a in start_thread (arg=0x7f034a7fc700) at pthread_create.c:308
#13 0x00007f0361cb2cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#14 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f034affd700 (LWP 15033)):
#0  0x00007f0361313f69 in __pthread_mutex_lock (mutex=0x7f033c0082c0) at pthread_mutex_lock.c:92
#1  0x00007f0360830c31 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f03607f3897 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f03607f3d22 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f03607f3ea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f0365691c16 in QEventDispatcherGlib::processEvents (this=0x7f033c007e80, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#6  0x00007f03656622bf in QEventLoop::processEvents (this=this@entry=0x7f034affcde0, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007f0365662548 in QEventLoop::exec (this=0x7f034affcde0, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007f0365563b10 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#9  0x00007f03642c7a89 in KIMAP::SessionThread::run (this=0xae0e20) at ../../kimap/sessionthread.cpp:181
#10 0x00007f0365566aec in QThreadPrivate::start (arg=0xae0e20) at thread/qthread_unix.cpp:338
#11 0x00007f0361311e9a in start_thread (arg=0x7f034affd700) at pthread_create.c:308
#12 0x00007f0361cb2cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#13 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f03523c2700 (LWP 27150)):
#0  0x00007f0361ca7303 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f03607f3d84 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f03607f3ea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f0365691c16 in QEventDispatcherGlib::processEvents (this=0x7f03440121b0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007f03656622bf in QEventLoop::processEvents (this=this@entry=0x7f03523c1dd0, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f0365662548 in QEventLoop::exec (this=0x7f03523c1dd0, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007f0365563b10 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#7  0x00007f03656429af in QInotifyFileSystemWatcherEngine::run (this=0x9c12b0) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007f0365566aec in QThreadPrivate::start (arg=0x9c12b0) at thread/qthread_unix.cpp:338
#9  0x00007f0361311e9a in start_thread (arg=0x7f03523c2700) at pthread_create.c:308
#10 0x00007f0361cb2cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f0366266780 (LWP 2190)):
[KCrash Handler]
#6  0x00007f03586bfc70 in vtable for Oxygen::WidgetStateData () from /usr/lib/kde4/plugins/styles/oxygen.so
#7  0x00007f036567b6e1 in QObject::disconnect (sender=0x8fbc20, signal=0xae29b9 "stateChanged(KIMAP::Session::State,KIMAP::Session::State)", receiver=0xa5a910, method=0xbb1ed9 "onSessionStateChanged(KIMAP::Session::State,KIMAP::Session::State)") at kernel/qobject.cpp:2891
#8  0x0000000000453c95 in SessionPool::killSession (this=this@entry=0xa5a910, session=session@entry=0x8fbc20, termination=termination@entry=SessionPool::LogoutSession) at ../../../resources/imap/sessionpool.cpp:176
#9  0x00000000004546c1 in SessionPool::cancelSessionCreation (this=this@entry=0xa5a910, session=0x8fbc20, errorCode=errorCode@entry=4, errorMessage=...) at ../../../resources/imap/sessionpool.cpp:233
#10 0x0000000000455965 in SessionPool::onPasswordRequestDone (this=0xa5a910, resultType=<optimized out>, password=...) at ../../../resources/imap/sessionpool.cpp:308
#11 0x0000000000456527 in SessionPool::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ./sessionpool.moc:94
#12 0x00007f0365678f5f in QMetaObject::activate (sender=0xa5ab60, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff369f9b30) at kernel/qobject.cpp:3547
#13 0x0000000000441ce1 in PasswordRequesterInterface::done (this=<optimized out>, _t1=2, _t2=...) at ./passwordrequesterinterface.moc:118
#14 0x0000000000421470 in SettingsPasswordRequester::askUserInput (this=0xa5ab60, serverError=...) at ../../../resources/imap/settingspasswordrequester.cpp:68
#15 0x00007f036567843e in QObject::event (this=0xa5ab60, e=<optimized out>) at kernel/qobject.cpp:1195
#16 0x00007f0364a0ae9c in QApplicationPrivate::notify_helper (this=this@entry=0x8b2cc0, receiver=receiver@entry=0xa5ab60, e=e@entry=0xb63960) at kernel/qapplication.cpp:4562
#17 0x00007f0364a0f30a in QApplication::notify (this=0x7fff369fb6c0, receiver=0xa5ab60, e=0xb63960) at kernel/qapplication.cpp:4423
#18 0x00007f0362b7c1d6 in KApplication::notify (this=0x7fff369fb6c0, receiver=0xa5ab60, event=0xb63960) at ../../kdeui/kernel/kapplication.cpp:311
#19 0x00007f036566356e in QCoreApplication::notifyInternal (this=0x7fff369fb6c0, receiver=receiver@entry=0xa5ab60, event=event@entry=0xb63960) at kernel/qcoreapplication.cpp:915
#20 0x00007f03656673f1 in sendEvent (event=0xb63960, receiver=0xa5ab60) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#21 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x8844d0) at kernel/qcoreapplication.cpp:1539
#22 0x00007f0365691a63 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#23 postEventSourceDispatch (s=0x8aee30) at kernel/qeventdispatcher_glib.cpp:279
#24 0x00007f03607f3ab5 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007f03607f3de8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007f03607f3ea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007f0365691bf6 in QEventDispatcherGlib::processEvents (this=0x885cb0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#28 0x00007f0364aafc1e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#29 0x00007f03656622bf in QEventLoop::processEvents (this=this@entry=0x7fff369fa640, flags=...) at kernel/qeventloop.cpp:149
#30 0x00007f0365662548 in QEventLoop::exec (this=0x7fff369fa640, flags=...) at kernel/qeventloop.cpp:204
#31 0x00007f0364ec3428 in QDialog::exec (this=0xac9a10) at dialogs/qdialog.cpp:554
#32 0x00007f0362aedf4a in KMessageBox::createKMessageBox (dialog=dialog@entry=0xac9a10, icon=..., text=..., strlist=..., ask=..., checkboxReturn=checkboxReturn@entry=0x7fff369faa6f, options=..., details=..., notifyType=notifyType@entry=QMessageBox::Information) at ../../kdeui/dialogs/kmessagebox.cpp:344
#33 0x00007f0362aee4fa in KMessageBox::createKMessageBox (dialog=dialog@entry=0xac9a10, icon=icon@entry=QMessageBox::Information, text=..., strlist=..., ask=..., checkboxReturn=checkboxReturn@entry=0x7fff369faa6f, options=..., details=...) at ../../kdeui/dialogs/kmessagebox.cpp:159
#34 0x00007f0362af06c5 in KMessageBox::questionYesNoCancelWId (parent_id=<optimized out>, text=..., caption=..., buttonYes_=..., buttonNo_=..., buttonCancel_=..., dontAskAgainName=..., options=...) at ../../kdeui/dialogs/kmessagebox.cpp:548
#35 0x0000000000421162 in SettingsPasswordRequester::askUserInput (this=0xa5ab60, serverError=...) at ../../../resources/imap/settingspasswordrequester.cpp:61
#36 0x00007f036567843e in QObject::event (this=0xa5ab60, e=<optimized out>) at kernel/qobject.cpp:1195
#37 0x00007f0364a0ae9c in QApplicationPrivate::notify_helper (this=this@entry=0x8b2cc0, receiver=receiver@entry=0xa5ab60, e=e@entry=0xaa4550) at kernel/qapplication.cpp:4562
#38 0x00007f0364a0f30a in QApplication::notify (this=0x7fff369fb6c0, receiver=0xa5ab60, e=0xaa4550) at kernel/qapplication.cpp:4423
#39 0x00007f0362b7c1d6 in KApplication::notify (this=0x7fff369fb6c0, receiver=0xa5ab60, event=0xaa4550) at ../../kdeui/kernel/kapplication.cpp:311
#40 0x00007f036566356e in QCoreApplication::notifyInternal (this=0x7fff369fb6c0, receiver=receiver@entry=0xa5ab60, event=event@entry=0xaa4550) at kernel/qcoreapplication.cpp:915
#41 0x00007f03656673f1 in sendEvent (event=0xaa4550, receiver=0xa5ab60) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#42 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x8844d0) at kernel/qcoreapplication.cpp:1539
#43 0x00007f0365691a63 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#44 postEventSourceDispatch (s=0x8aee30) at kernel/qeventdispatcher_glib.cpp:279
#45 0x00007f03607f3ab5 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#46 0x00007f03607f3de8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#47 0x00007f03607f3ea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#48 0x00007f0365691bf6 in QEventDispatcherGlib::processEvents (this=0x885cb0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#49 0x00007f0364aafc1e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#50 0x00007f03656622bf in QEventLoop::processEvents (this=this@entry=0x7fff369fb640, flags=...) at kernel/qeventloop.cpp:149
#51 0x00007f0365662548 in QEventLoop::exec (this=0x7fff369fb640, flags=...) at kernel/qeventloop.cpp:204
#52 0x00007f0365667708 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#53 0x00007f0365d82693 in Akonadi::ResourceBase::init (r=0xa33f80) at ../../akonadi/resourcebase.cpp:451
#54 0x000000000041b213 in Akonadi::ResourceBase::init<ImapResource> (argc=<optimized out>, argv=<optimized out>) at /usr/include/akonadi/resourcebase.h:188
#55 0x00007f0361be076d in __libc_start_main (main=0x415600 <main(int, char**)>, argc=3, ubp_av=0x7fff369fb7d8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff369fb7c8) at libc-start.c:226
#56 0x00000000004157b5 in _start ()

This bug may be a duplicate of or related to bug 288268.

Possible duplicates by query: bug 305691.

Reported using DrKonqi
Comment 1 Jekyll Wu 2012-11-22 20:13:21 UTC
*** Bug 310526 has been marked as a duplicate of this bug. ***
Comment 2 David Faure 2013-02-17 21:02:27 UTC
Git commit d82e4917f7286984bce16c2fa36ea4e9f6a24453 by David Faure.
Committed on 17/02/2013 at 21:54.
Pushed by dfaure into branch 'KDE/4.10'.

Fix crash due to dangling session pointer in m_pendingInitialSession.

This happens after disconnect() kills all sessions (e.g. due to losing
internet connection while the password dialog is up, or explicit toggling
of offline/online status, or due to the "SSL not supported").
Related: bug 312480, bug 308888, bug 288268, bug 312057, bug 309357, bug 308207, bug 312535, bug 311014, bug 309346, bug 307780
FIXED-IN: 4.10.1

M  +1    -0    resources/imap/sessionpool.cpp

http://commits.kde.org/kdepim-runtime/d82e4917f7286984bce16c2fa36ea4e9f6a24453
Comment 3 Jekyll Wu 2013-03-04 15:10:10 UTC
*** Bug 316104 has been marked as a duplicate of this bug. ***
Comment 4 Jekyll Wu 2013-03-17 04:11:11 UTC
*** Bug 316881 has been marked as a duplicate of this bug. ***