Bug 286762

Summary: Crash when asking for missing folder
Product: [Frameworks and Libraries] Akonadi Reporter: Frederik Schwarzer <schwarzer>
Component: Mail Filter AgentAssignee: kdepim bugs <kdepim-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: oldium.pro
Priority: NOR    
Version: 4.7   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In: 4.7.4
Sentry Crash Report:

Description Frederik Schwarzer 2011-11-16 08:35:01 UTC
Application: akonadi_mailfilter_agent (4.7)
KDE Platform Version: 4.7.3 (4.7.3) (Compiled from sources)
Qt Version: 4.7.3
Operating System: Linux 3.0.0-fs i686
Distribution: Debian GNU/Linux unstable (sid)

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

I installed KMail from master today (before I used packagef from 1.x) and when it starts it asks for a missing folder. When I press the folder icon to open the file chooser, the crash occurs.

The crash can be reproduced every time.

-- Backtrace:
Application: EMail Filter Agent (akonadi_mailfilter_agent), signal: Segmentation fault
[KCrash Handler]
#7  MailCommon::FolderTreeWidget::readConfig (this=0xa07cc50) at /home/fs/kdesrc/kdepim/mailcommon/foldertreewidget.cpp:277
#8  0xb778b09b in MailCommon::FolderTreeWidget::FolderTreeWidget (this=0xa07cc50, parent=0x0, xmlGuiClient=0x0, options=..., optReadableProxy=...) at /home/fs/kdesrc/kdepim/mailcommon/foldertreewidget.cpp:149
#9  0xb7785309 in MailCommon::FolderSelectionDialog::FolderSelectionDialog (this=0xa000d10, parent=0x0, options=...) at /home/fs/kdesrc/kdepim/mailcommon/folderselectiondialog.cpp:85
#10 0xb77837f1 in MailCommon::FolderRequester::slotOpenDialog (this=0x9e23018) at /home/fs/kdesrc/kdepim/mailcommon/folderrequester.cpp:87
#11 0xb7783d4c in MailCommon::FolderRequester::qt_metacall (this=0x9e23018, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0xbfa344c8) at /home/fs/kdesrc/build/kdepim/mailcommon/folderrequester.moc:79
#12 0xb67915dd in metacall (argv=0xbfa344c8, idx=28, cl=QMetaObject::InvokeMetaMethod, object=0x9e23018) at kernel/qmetaobject.cpp:237
#13 QMetaObject::metacall (object=0x9e23018, cl=QMetaObject::InvokeMetaMethod, idx=28, argv=0xbfa344c8) at kernel/qmetaobject.cpp:232
#14 0xb67a0320 in QMetaObject::activate (sender=0x9ff9da8, m=0xb5bb9728, local_signal_index=2, argv=0xbfa344c8) at kernel/qobject.cpp:3278
#15 0xb5975b8d in QAbstractButton::clicked (this=0x9ff9da8, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:206
#16 0xb56748fd in QAbstractButtonPrivate::emitClicked (this=0x9e96c58) at widgets/qabstractbutton.cpp:546
#17 0xb5675f5b in QAbstractButtonPrivate::click (this=0x9e96c58) at widgets/qabstractbutton.cpp:539
#18 0xb5676216 in QAbstractButton::mouseReleaseEvent (this=0x9ff9da8, e=0xbfa34c68) at widgets/qabstractbutton.cpp:1121
#19 0xb574d93d in QToolButton::mouseReleaseEvent (this=0x9ff9da8, e=0xbfa34c68) at widgets/qtoolbutton.cpp:721
#20 0xb52bfc7f in QWidget::event (this=0x9ff9da8, event=0xbfa34c68) at kernel/qwidget.cpp:8259
#21 0xb56754c9 in QAbstractButton::event (this=0x9ff9da8, e=0xbfa34c68) at widgets/qabstractbutton.cpp:1080
#22 0xb574f07c in QToolButton::event (this=0x9ff9da8, event=0xbfa34c68) at widgets/qtoolbutton.cpp:1163
#23 0xb52657a4 in notify_helper (e=0xbfa34c68, receiver=0x9ff9da8, this=0x9e13ad8) at kernel/qapplication.cpp:4467
#24 QApplicationPrivate::notify_helper (this=0x9e13ad8, receiver=0x9ff9da8, e=0xbfa34c68) at kernel/qapplication.cpp:4439
#25 0xb526b5bb in QApplication::notify (this=0x9e13ad8, receiver=0x9ff9da8, e=0xbfa34c68) at kernel/qapplication.cpp:4028
#26 0xb72ed331 in KApplication::notify (this=0xbfa357b0, receiver=0x9ff9da8, event=0xbfa34c68) at /home/fs/kdesrc/kdelibs/kdeui/kernel/kapplication.cpp:311
#27 0xb678b22e in QCoreApplication::notifyInternal (this=0xbfa357b0, receiver=0x9ff9da8, event=0xbfa34c68) at kernel/qcoreapplication.cpp:731
#28 0xb5266760 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#29 QApplicationPrivate::sendMouseEvent (receiver=0x9ff9da8, event=0xbfa34c68, alienWidget=0x9ff9da8, nativeWidget=0x9e8e450, buttonDown=0xb5bc8b54, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3127
#30 0xb52f024f in QETWidget::translateMouseEvent (this=0x9e8e450, event=0xbfa35040) at kernel/qapplication_x11.cpp:4465
#31 0xb52ef1e7 in QApplication::x11ProcessEvent (this=0xbfa357b0, event=0xbfa35040) at kernel/qapplication_x11.cpp:3591
#32 0xb531ab0c in x11EventSourceDispatch (s=0x9e174e8, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#33 0xb43d4acf in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#34 0xb43d5200 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#35 0xb43d549a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#36 0xb67b9477 in QEventDispatcherGlib::processEvents (this=0x9df5c10, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#37 0xb531a72a in QGuiEventDispatcherGlib::processEvents (this=0x9df5c10, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#38 0xb678a24d in QEventLoop::processEvents (this=0xbfa35340, flags=...) at kernel/qeventloop.cpp:149
#39 0xb678a491 in QEventLoop::exec (this=0xbfa35340, flags=...) at kernel/qeventloop.cpp:201
#40 0xb5799029 in QDialog::exec (this=0x9e8e450) at dialogs/qdialog.cpp:552
#41 0xb7762246 in MailCommon::FilterActionWithFolder::argsFromStringInteractive (this=0x9fea930, argsStr=..., name=...) at /home/fs/kdesrc/kdepim/mailcommon/filteraction.cpp:402
#42 0xb7790acc in MailCommon::MailFilter::readConfig (this=0x9f93288, config=..., interactive=true) at /home/fs/kdesrc/kdepim/mailcommon/mailfilter.cpp:412
#43 0xb77918f2 in MailCommon::MailFilter::MailFilter (this=0x9f93288, aConfig=..., interactive=true) at /home/fs/kdesrc/kdepim/mailcommon/mailfilter.cpp:65
#44 0xb7778c02 in MailCommon::FilterImporterExporter::readFiltersFromConfig (config=...) at /home/fs/kdesrc/kdepim/mailcommon/filterimporterexporter.cpp:144
#45 0x08054b78 in FilterManager::readConfig (this=0x9f99518) at /home/fs/kdesrc/kdepim/mailfilteragent/filtermanager.cpp:285
#46 0x08054dc0 in FilterManager::FilterManager (this=0x9f99518, parent=0x9f55060) at /home/fs/kdesrc/kdepim/mailfilteragent/filtermanager.cpp:263
#47 0x08058312 in MailFilterAgent::MailFilterAgent (this=0x9f55060, id=...) at /home/fs/kdesrc/kdepim/mailfilteragent/mailfilteragent.cpp:57
#48 0x0805926c in Akonadi::AgentBase::init<MailFilterAgent> (argc=3, argv=0xbfa35894) at /home/fs/usr/include/akonadi/agentbase.h:335
#49 0x080508ab in main (argc=3, argv=0xbfa35894) at /home/fs/kdesrc/kdepim/mailfilteragent/mailfilteragent.cpp:196

Reported using DrKonqi
Comment 1 Oldřich Jedlička 2011-11-30 18:35:07 UTC
I see the same crash on the same line, same backtrace. I've just upgraded to 4.8 beta 1.
Comment 2 Oldřich Jedlička 2011-11-30 18:45:18 UTC
From my quick analysis it looks like the SettingsIf (MailCommon::Kernel::self()->settingsIf()) on line 277 of foldertreewidget.cpp () is null.
Comment 3 Allen Winter 2011-12-01 01:15:35 UTC
Git commit 90092b6b936bb1bd7ee4487e7494c8629640a8f9 by Allen Winter.
Committed on 01/12/2011 at 02:14.
Pushed by winterz into branch 'master'.

Don't attempt to access the kernel settings if the kernel hasn't
been registered yet.

BUG: 286762
FIXED-IN: 4.7.4
MERGE: 4.7

M  +14   -10   mailcommon/foldertreewidget.cpp
M  +4    -0    mailcommon/mailkernel.h

http://commits.kde.org/kdepim/90092b6b936bb1bd7ee4487e7494c8629640a8f9
Comment 4 Allen Winter 2011-12-01 15:37:14 UTC
Git commit 6aa3d05705c03ae8591ca4810eec39525f3df7ad by Allen Winter.
Committed on 01/12/2011 at 16:35.
Pushed by winterz into branch 'KDE/4.7'.

backport Allen Winter master * v4.7.0-1828-g90092b6
Don't attempt to access the kernel settings if the kernel hasn't
been registered yet.

CCBUG: 286762

M  +13   -9    mailcommon/foldertreewidget.cpp
M  +4    -0    mailcommon/mailkernel.h

http://commits.kde.org/kdepim/6aa3d05705c03ae8591ca4810eec39525f3df7ad
Comment 5 Oldřich Jedlička 2011-12-02 08:48:23 UTC
Thanks, that should do the trick. I've removed the bad link reference directly from kmail2, so I don't encounter the problem anymore.
Comment 6 András Manţia 2011-12-03 22:19:51 UTC
Git commit 9a714df01c97f9922cdd0248756b3a052a055893 by Andras Mantia.
Committed on 03/12/2011 at 23:17.
Pushed by amantia into branch 'master'.

Make mailfilter's dummykernel less dummy, and also provide a Settings interface to it.
This properly fixes 286762 (the previous fix just postponed the crash to a later stage).
Remove MailCommon::Kernel::settingsAreRegistered, as it doesn't make sense to have it (SettingsIf is mandatory).

BUG: 286762
CCMAIL: kde-pim@kde.org

M  +3    -6    mailcommon/foldertreewidget.cpp
M  +0    -4    mailcommon/mailkernel.h
M  +58   -4    mailfilteragent/dummykernel.cpp
M  +21   -1    mailfilteragent/dummykernel.h
M  +1    -0    mailfilteragent/mailfilteragent.cpp

http://commits.kde.org/kdepim/9a714df01c97f9922cdd0248756b3a052a055893