Bug 205480 - imap resource crash in disconnect (typing wrong password)
Summary: imap resource crash in disconnect (typing wrong password)
Status: VERIFIED FIXED
Alias: None
Product: Akonadi
Classification: Frameworks and Libraries
Component: IMAP resource (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Kevin Ottens
URL:
Keywords:
: 206151 209109 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-08-28 13:57 UTC by Sabine Faure
Modified: 2009-10-01 16:09 UTC (History)
4 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sabine Faure 2009-08-28 13:57:33 UTC
Application: akonadi_imap_resource (0.1)
KDE Version: 4.3.65 (KDE 4.3.65 (KDE 4.4 >= 20090820)) (Compiled from sources)
Qt Version: 4.5.2
Operating System: Linux 2.6.27-9-generic i686
Distribution: Ubuntu 8.10

What I was doing when the application crashed:
Was setting up the imap resource and it crashed just after login...
(David)

 -- Backtrace:
Application: Akonadi Resource (akonadi_imap_resource), signal: Segmentation fault
[Current thread is 0 (LWP 22098)]

Thread 3 (Thread 0xb3036b90 (LWP 22102)):
#0  0xb7f37430 in __kernel_vsyscall ()
#1  0xb7b13075 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb7b9bf54 in QWaitConditionPrivate::wait (this=0x8d16658, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#3  0xb7b9ba53 in QWaitCondition::wait (this=0x8d163a0, mutex=0x8d1639c, time=4294967295) at thread/qwaitcondition_unix.cpp:159
#4  0xb715fdd7 in QHostInfoAgent::run (this=0x8d16390) at kernel/qhostinfo.cpp:260
#5  0xb7b9b631 in QThreadPrivate::start (arg=0x8d16390) at thread/qthread_unix.cpp:188
#6  0xb7b0f50f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#7  0xb6488a0e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 2 (Thread 0xb3837b90 (LWP 22108)):
#0  0xb633054a in clock_gettime () from /lib/tls/i686/cmov/librt.so.1
#1  0xb7cc3eb2 in QTimerInfoList::getTime (this=0x8e60594, t=@0x8e605b8) at kernel/qeventdispatcher_unix.cpp:339
#2  0xb7cc40e5 in QTimerInfoList::updateCurrentTime (this=0x8e60594) at kernel/qeventdispatcher_unix.cpp:297
#3  0xb7cc47ad in QTimerInfoList::timerWait (this=0x8e60594, tm=@0xb383713c) at kernel/qeventdispatcher_unix.cpp:420
#4  0xb7cc20ca in timerSourcePrepare (source=0x8e60560, timeout=0xb3837198) at kernel/qeventdispatcher_glib.cpp:141
#5  0xb62b1622 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#6  0xb62b1aaa in ?? () from /usr/lib/libglib-2.0.so.0
#7  0xb62b1f81 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#8  0xb7cc1232 in QEventDispatcherGlib::processEvents (this=0x8db9318, flags={i = -1283231100}) at kernel/qeventdispatcher_glib.cpp:329
#9  0xb7c8f324 in QEventLoop::processEvents (this=0xb383730c, flags={i = -1283231028}) at kernel/qeventloop.cpp:149
#10 0xb7c8f595 in QEventLoop::exec (this=0xb383730c, flags={i = -1283230956}) at kernel/qeventloop.cpp:197
#11 0xb7b97a39 in QThread::exec (this=0x8d1a868) at thread/qthread.cpp:487
#12 0xb70ad1aa in KIMAP::SessionThread::run (this=0xb7b12440) at /d/kde/src/t/kdepimlibs/kimap/sessionthread.cpp:155
#13 0xb7b9b631 in QThreadPrivate::start (arg=0x8d1a868) at thread/qthread_unix.cpp:188
#14 0xb7b0f50f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#15 0xb6488a0e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread 0xb53bf8d0 (LWP 22098)):
[KCrash Handler]
#6  0x037a0085 in ?? ()
#7  0xb7caa1da in QObject::connect (sender=0x8b42038, signal=0x8b3bd29 "result(KJob*)", receiver=0x8d47f58, method=0x8a6fae8 "deleteLater()", type=Qt::AutoConnection) at kernel/qobject.cpp:2514
#8  0x0805cc1f in ImapAccount::disconnect (this=0x8c65f38, session=0x8d47f58) at /d/kde/src/t/kdepim/akonadi/resources/imap/imapaccount.cpp:307
#9  0x0805d38e in ImapAccount::onLoginDone (this=0x8c65f38, job=0x8d16250) at /d/kde/src/t/kdepim/akonadi/resources/imap/imapaccount.cpp:244
#10 0x0805d47b in ImapAccount::qt_metacall (this=0x8c65f38, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbfd3667c) at /d/kde/build/t/kdepim/akonadi/resources/imap/imapaccount.moc:89
#11 0xb7ca88d5 in QMetaObject::activate (sender=0x8d16250, from_signal_index=7, to_signal_index=7, argv=0xbfd3667c) at kernel/qobject.cpp:3109
#12 0xb7ca9d4f in QMetaObject::activate (sender=0x8d16250, m=0xb6889da8, local_signal_index=3, argv=0xbfd3667c) at kernel/qobject.cpp:3186
#13 0xb674794c in KJob::result (this=0x8d16250, _t1=0x8d16250) at /d/kde/build/t/kdelibs/kdecore/kjob.moc:188
#14 0xb6747eb1 in KJob::emitResult (this=0x8d16250) at /d/kde/src/t/kdelibs/kdecore/jobs/kjob.cpp:304
#15 0xb70a54c4 in KIMAP::LoginJob::handleResponse (this=0x8d16250, response=@0x8b424a0) at /d/kde/src/t/kdepimlibs/kimap/loginjob.cpp:257
#16 0xb70ac23e in KIMAP::SessionPrivate::responseReceived (this=0x8d6f6a0, response=@0x8b424a0) at /d/kde/src/t/kdepimlibs/kimap/session.cpp:193
#17 0xb70ac9a0 in KIMAP::Session::qt_metacall (this=0x8d47f58, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x8d49680) at /d/kde/build/t/kdepimlibs/kimap/session.moc:92
#18 0xb7ca216e in QMetaCallEvent::placeMetaCall (this=0x8d79bf0, object=0x8d47f58) at kernel/qobject.cpp:477
#19 0xb7ca6793 in QObject::event (this=0x8d47f58, e=0x8d79bf0) at kernel/qobject.cpp:1107
#20 0xb734dab1 in QApplicationPrivate::notify_helper (this=0x89f5380, receiver=0x8d47f58, e=0x8d79bf0) at kernel/qapplication.cpp:4056
#21 0xb734de26 in QApplication::notify (this=0xbfd37108, receiver=0x8d47f58, e=0x8d79bf0) at kernel/qapplication.cpp:3603
#22 0xb6ab9e67 in KApplication::notify (this=0xbfd37108, receiver=0x8d47f58, event=0x8d79bf0) at /d/kde/src/t/kdelibs/kdeui/kernel/kapplication.cpp:302
#23 0xb7c92309 in QCoreApplication::notifyInternal (this=0xbfd37108, receiver=0x8d47f58, event=0x8d79bf0) at kernel/qcoreapplication.cpp:606
#24 0xb7c95e97 in QCoreApplication::sendEvent (receiver=0x8d47f58, event=0x8d79bf0) at kernel/qcoreapplication.h:213
#25 0xb7c927f1 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x89de420) at kernel/qcoreapplication.cpp:1244
#26 0xb7c929ad in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1140
#27 0xb7cc2c86 in QCoreApplication::sendPostedEvents () at kernel/qcoreapplication.h:218
#28 0xb7cc1e90 in postEventSourceDispatch (s=0x89f76e8) at kernel/qeventdispatcher_glib.cpp:210
#29 0xb62ae718 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#30 0xb62b1dc3 in ?? () from /usr/lib/libglib-2.0.so.0
#31 0xb62b1f81 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#32 0xb7cc1212 in QEventDispatcherGlib::processEvents (this=0x89f5340, flags={i = -1076662332}) at kernel/qeventdispatcher_glib.cpp:327
#33 0xb73fcbc0 in QGuiEventDispatcherGlib::processEvents (this=0x89f5340, flags={i = -1076662284}) at kernel/qguieventdispatcher_glib.cpp:202
#34 0xb7c8f324 in QEventLoop::processEvents (this=0xbfd37080, flags={i = -1076662212}) at kernel/qeventloop.cpp:149
#35 0xb7c8f595 in QEventLoop::exec (this=0xbfd37080, flags={i = -1076662136}) at kernel/qeventloop.cpp:197
#36 0xb7c92ae1 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#37 0xb734d7ca in QApplication::exec () at kernel/qapplication.cpp:3525
#38 0xb7e988c3 in Akonadi::ResourceBase::init (r=0x8b1af10) at /d/kde/src/t/kdepimlibs/akonadi/resourcebase.cpp:219
#39 0x08075907 in Akonadi::ResourceBase::init<ImapResource> (argc=3, argv=0xbfd371e4) at /d/kde/inst/kde-trunk/include/akonadi/resourcebase.h:186
#40 0x0806d9c5 in main (argc=) at /d/kde/src/t/kdepim/akonadi/resources/imap/imapresource.cpp:1235

Reported using DrKonqi
Comment 1 David Faure 2009-08-28 14:09:26 UTC
To reproduce this: type a bad password in the imap resource configuration.

onLoginDone calls  disconnect( login->session() ), but maybe session() is
uninitialized/deleted/dangling since there was no successful login?

The crash is on the line
QObject::connect( logout, SIGNAL( result( KJob* ) ), session, SLOT(
deleteLater() ) );
and "logout" was just created so it's obviously ok, so it has to be "session"
that is broken.
Comment 2 Kevin Ottens 2009-09-03 14:27:15 UTC
SVN commit 1019382 by ervin:

The ImapAccount needs to live longer so that it's inner session is done
processing the queued event coming from the logout and disconnect
triggered on login error.

So don't delete immediately, schedule for deletion and make sure the
ImapResource doesn't listen to it anymore.

BUG: 205480



 M  +3 -1      imapresource.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1019382
Comment 3 Kevin Ottens 2009-09-03 19:07:03 UTC
*** Bug 206151 has been marked as a duplicate of this bug. ***
Comment 4 Sabine Faure 2009-09-25 17:02:15 UTC
It is corrected now.

When entering a wrong password while creating an IMAP resource a 'Could Not Authenticate -Akonadi' dialogue pops up with the following message:
'The server refused the supplied username and password. Do you want to go to the settings, have another attempt at logging in, or do nothing?'

Trunk, Svn Rev 1027981
Comment 5 Christophe Marin 2009-10-01 16:09:19 UTC
*** Bug 209109 has been marked as a duplicate of this bug. ***