Bug 307780

Summary: Crash after canceling an "invalid SSL certificate" dialog
Product: [Frameworks and Libraries] Akonadi Reporter: Bjoern Kahl <diverse.logins>
Component: IMAP resourceAssignee: Kevin Ottens <ervin>
Status: RESOLVED FIXED    
Severity: crash CC: kdepim-bugs, vkrause, walch.martin
Priority: NOR    
Version: 4.8   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In: 4.10.1
Attachments: New crash information added by DrKonqi

Description Bjoern Kahl 2012-10-03 16:25:27 UTC
Application: akonadi_imap_resource (4.8)
KDE Platform Version: 4.8.5 (4.8.5) (Compiled from sources)
Qt Version: 4.8.1
Operating System: Linux 3.2.0-31-generic x86_64
Distribution: Ubuntu 12.04.1 LTS

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

I trid to "online" the imap resource, which was listed as "offline" in the akonadi preferences, by double-click on the resource and simply clicking "ok"  in the configuration dialog.  Next I got a dialog complaining about an invalid SSL certificate (which is false, since the "details" dialog in there clearely shows that the certificat (from Thwate) is still valid until 2014).  Selecting cancel in the SSL warning dialog produced another dialog complaining about TLS failure and the crash reported here.

Maybevalso dublicat of 305961, which in turn is marked a dublicate of 288268, although this crash here does not involve network configuration changes or any other network related disruption.

-- Backtrace:
Application: Holger.Kahl@die-kahls.de vom Typ 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 0x7fe2a3b43780 (LWP 27044))]

Thread 2 (Thread 0x7fe29014b700 (LWP 27075)):
#0  0x00007fe29e022b98 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007fe29e022fd6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fe29e023164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fe2a2f56426 in QEventDispatcherGlib::processEvents (this=0x7fe2880008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007fe2a2f25c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007fe2a2f25ed7 in QEventLoop::exec (this=0x7fe29014add0, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007fe2a2e24fa7 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#7  0x00007fe2a2f059ff in QInotifyFileSystemWatcherEngine::run (this=0x105e470) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007fe2a2e27fcb in QThreadPrivate::start (arg=0x105e470) at thread/qthread_unix.cpp:298
#9  0x00007fe29eb3ee9a in start_thread (arg=0x7fe29014b700) at pthread_create.c:308
#10 0x00007fe29f4e3dbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fe2a3b43780 (LWP 27044)):
[KCrash Handler]
#6  0x0000000000000000 in ?? ()
#7  0x00007fe2a2f3ab04 in QObject::disconnect (sender=0x118fa80, signal=0x118fa29 "stateChanged(KIMAP::Session::State,KIMAP::Session::State)", receiver=0x10fe550, method=0x14de709 "onSessionStateChanged(KIMAP::Session::State,KIMAP::Session::State)") at kernel/qobject.cpp:2891
#8  0x0000000000454365 in SessionPool::killSession (this=0x10fe550, session=0x118fa80, termination=SessionPool::LogoutSession) at ../../../resources/imap/sessionpool.cpp:176
#9  0x0000000000454d67 in SessionPool::cancelSessionCreation (this=0x10fe550, session=0x118fa80, errorCode=4, errorMessage=...) at ../../../resources/imap/sessionpool.cpp:233
#10 0x0000000000455090 in SessionPool::onPasswordRequestDone (this=0x10fe550, resultType=<optimized out>, password=...) at ../../../resources/imap/sessionpool.cpp:308
#11 0x0000000000456cd7 in SessionPool::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ./sessionpool.moc:94
#12 0x00007fe2a2f3b281 in QMetaObject::activate (sender=0x10e69f0, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fffdd988740) at kernel/qobject.cpp:3547
#13 0x00000000004421c1 in PasswordRequesterInterface::done (this=<optimized out>, _t1=2, _t2=...) at ./passwordrequesterinterface.moc:118
#14 0x0000000000420d2a in SettingsPasswordRequester::askUserInput (this=0x10e69f0, serverError=...) at ../../../resources/imap/settingspasswordrequester.cpp:75
#15 0x00007fe2a2f40446 in QObject::event (this=0x10e69f0, e=<optimized out>) at kernel/qobject.cpp:1195
#16 0x00007fe2a22a9894 in notify_helper (e=0x1184610, receiver=0x10e69f0, this=0xf38350) at kernel/qapplication.cpp:4559
#17 QApplicationPrivate::notify_helper (this=0xf38350, receiver=0x10e69f0, e=0x1184610) at kernel/qapplication.cpp:4531
#18 0x00007fe2a22ae713 in QApplication::notify (this=0x7fffdd989300, receiver=0x10e69f0, e=0x1184610) at kernel/qapplication.cpp:4420
#19 0x00007fe2a03d33f6 in KApplication::notify (this=0x7fffdd989300, receiver=0x10e69f0, event=0x1184610) at ../../kdeui/kernel/kapplication.cpp:311
#20 0x00007fe2a2f26e9c in QCoreApplication::notifyInternal (this=0x7fffdd989300, receiver=0x10e69f0, event=0x1184610) at kernel/qcoreapplication.cpp:876
#21 0x00007fe2a2f2ac6a in sendEvent (event=0x1184610, receiver=0x10e69f0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#22 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0xf0d4d0) at kernel/qcoreapplication.cpp:1500
#23 0x00007fe2a2f55f93 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#24 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:279
#25 0x00007fe29e022d53 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007fe29e0230a0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007fe29e023164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007fe2a2f563bf in QEventDispatcherGlib::processEvents (this=0xf0ecb0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#29 0x00007fe2a2351d5e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#30 0x00007fe2a2f25c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#31 0x00007fe2a2f25ed7 in QEventLoop::exec (this=0x7fffdd989280, flags=...) at kernel/qeventloop.cpp:204
#32 0x00007fe2a2f2af67 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#33 0x00007fe2a3655326 in Akonadi::ResourceBase::init(Akonadi::ResourceBase*) () from /usr/lib/libakonadi-kde.so.4
#34 0x000000000041a996 in Akonadi::ResourceBase::init<ImapResource> (argc=<optimized out>, argv=<optimized out>) at /usr/include/akonadi/resourcebase.h:188
#35 0x00007fe29f41176d in __libc_start_main (main=0x4151c0 <main(int, char**)>, argc=3, ubp_av=0x7fffdd989418, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffdd989408) at libc-start.c:226
#36 0x0000000000415375 in _start ()

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

Possible duplicates by query: bug 307658, bug 305691, bug 303386, bug 301260, bug 294489.

Reported using DrKonqi
Comment 1 Martin Walch 2012-11-26 10:56:10 UTC
Created attachment 75488 [details]
New crash information added by DrKonqi

akonadi_imap_resource (4.9) on KDE Platform 4.9.3 using Qt 4.8.2

This is still valid in KDE 4.9.3. Updated backtrace attached.

-- Backtrace (Reduced):
#7  0x00007f45635e4e19 in QObject::disconnect (sender=0x971ca0, signal=0x994669 "stateChanged(KIMAP::Session::State,KIMAP::Session::State)", receiver=0x931780, method=0xa2b729 "onSessionStateChanged(KIMAP::Session::State,KIMAP::Session::State)") at kernel/qobject.cpp:2891
#8  0x000000000045ae67 in SessionPool::killSession (this=0x931780, session=0x971ca0, termination=SessionPool::LogoutSession) at /var/tmp/portage/kde-base/kdepim-runtime-4.9.3/work/kdepim-runtime-4.9.3/resources/imap/sessionpool.cpp:176
#9  0x000000000045bf6b in SessionPool::cancelSessionCreation (this=0x931780, session=<optimized out>, errorCode=<optimized out>, errorMessage=<optimized out>) at /var/tmp/portage/kde-base/kdepim-runtime-4.9.3/work/kdepim-runtime-4.9.3/resources/imap/sessionpool.cpp:233
#10 0x000000000045c5ad in SessionPool::onPasswordRequestDone (this=0x931780, resultType=<optimized out>, password=<optimized out>) at /var/tmp/portage/kde-base/kdepim-runtime-4.9.3/work/kdepim-runtime-4.9.3/resources/imap/sessionpool.cpp:308
#11 0x000000000045d847 in SessionPool::qt_static_metacall (_o=0x971ca0, _c=<optimized out>, _id=<optimized out>, _a=0x7f45636cc03d) at /var/tmp/portage/kde-base/kdepim-runtime-4.9.3/work/kdepim-runtime-4.9.3_build/resources/imap/sessionpool.moc:94
Comment 2 David Faure 2013-02-17 21:02:34 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 310072, bug 308888, bug 288268, bug 312057, bug 309357, bug 308207, bug 312535, bug 311014, bug 309346
FIXED-IN: 4.10.1

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

http://commits.kde.org/kdepim-runtime/d82e4917f7286984bce16c2fa36ea4e9f6a24453