Bug 122027 - KMail hangs in an infinite loop after applying a filter to a large mail folder
Summary: KMail hangs in an infinite loop after applying a filter to a large mail folder
Status: RESOLVED FIXED
Alias: None
Product: kmail
Classification: Applications
Component: filtering (show other bugs)
Version: 1.9.1
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-02-15 14:28 UTC by Christian D.
Modified: 2007-09-14 12:17 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christian D. 2006-02-15 14:28:54 UTC
Version:           1.9.1 (using KDE 3.5.1, Kubuntu Package 4:3.5.1-0ubuntu5 dapper)
Compiler:          Target: i486-linux-gnu
OS:                Linux (i686) release 2.6.15-15-686

When I applay the "Mark as Ham" filter to my lkml archive (> 2000 Mails), KMail hangs in an infinite loop. I'm using bogofilter and I think that this is not part of the problem. I suspect that the hang occurs after every mail has been piped to the external command, e.g. during some kind of cleanup in KMails code.

I attached gdb to the hanging KMail process and made a backtrace

Backtrace follows:

0x3720b37f in QListViewItem::listView () from /usr/lib/libqt-mt.so.3
(gdb) bt
#0  0x3720b37f in QListViewItem::listView () from /usr/lib/libqt-mt.so.3
#1  0x35f6b2f0 in KListViewItem::insertItem (this=0x8ddd2a0, item=0xb2e3210) at klistview.cpp:2205
#2  0x37c6c8ee in KMHeaders::msgAdded () from /usr/lib/libkmailprivate.so
#3  0x37c6d1aa in KMHeaders::qt_invoke () from /usr/lib/libkmailprivate.so
#4  0x3711a39a in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#5  0x3711ab7c in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#6  0x37c99d83 in KMFolder::msgAdded () from /usr/lib/libkmailprivate.so
#7  0x37c9e1ac in KMFolder::qt_emit () from /usr/lib/libkmailprivate.so
#8  0x3711a241 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#9  0x3711ab7c in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#10 0x37cb585f in FolderStorage::msgAdded () from /usr/lib/libkmailprivate.so
#11 0x37cb6a7f in FolderStorage::emitMsgAddedSignals () from /usr/lib/libkmailprivate.so
#12 0x37d5712f in KMFolderMaildir::addMsgInternal () from /usr/lib/libkmailprivate.so
#13 0x37d57875 in KMFolderMaildir::addMsg () from /usr/lib/libkmailprivate.so
#14 0x37cb9fd8 in FolderStorage::addMsgKeepUID () from /usr/lib/libkmailprivate.so
#15 0x37c99315 in KMFolder::addMsgKeepUID () from /usr/lib/libkmailprivate.so
#16 0x37ce10d2 in KMFilterMgr::endFiltering () from /usr/lib/libkmailprivate.so
#17 0x37ce28a6 in KMFilterMgr::process () from /usr/lib/libkmailprivate.so
#18 0x37dd1608 in KMFilterActionCommand::execute () from /usr/lib/libkmailprivate.so
#19 0x37dc61f2 in KMCommand::slotPostTransfer () from /usr/lib/libkmailprivate.so
#20 0x37dcbc3b in KMCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#21 0x37dcc08b in KMFilterActionCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#22 0x3711a26d in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#23 0x37dc5114 in KMCommand::messagesTransfered () from /usr/lib/libkmailprivate.so
#24 0x37dcb7ef in KMCommand::transferSelectedMsgs () from /usr/lib/libkmailprivate.so
#25 0x37dcba46 in KMCommand::slotStart () from /usr/lib/libkmailprivate.so
#26 0x37dcbc4d in KMCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#27 0x37dcc08b in KMFilterActionCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#28 0x3711a26d in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#29 0x374a931e in QSignal::signal () from /usr/lib/libqt-mt.so.3
#30 0x371379cc in QSignal::activate () from /usr/lib/libqt-mt.so.3
#31 0x3713f4bc in QSingleShotTimer::event () from /usr/lib/libqt-mt.so.3
#32 0x370b065a in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#33 0x370b084c in QApplication::notify () from /usr/lib/libqt-mt.so.3
#34 0x377a8c7d in KApplication::notify (this=0x3fa76968, receiver=0x8291e58, event=0x3fa74d48) at kapplication.cpp:550
#35 0x37041967 in QApplication::sendEvent () from /usr/lib/libqt-mt.so.3
#36 0x370a2047 in QEventLoop::activateTimers () from /usr/lib/libqt-mt.so.3
#37 0x37055753 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#38 0x370c92eb in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
---Type <return> to continue, or q <return> to quit---
#39 0x370af112 in QApplication::processEvents () from /usr/lib/libqt-mt.so.3
#40 0x37dd168f in KMFilterActionCommand::execute () from /usr/lib/libkmailprivate.so
#41 0x37dc61f2 in KMCommand::slotPostTransfer () from /usr/lib/libkmailprivate.so
#42 0x37dcbc3b in KMCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#43 0x37dcc08b in KMFilterActionCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#44 0x3711a26d in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#45 0x37dc5114 in KMCommand::messagesTransfered () from /usr/lib/libkmailprivate.so
#46 0x37dcb7ef in KMCommand::transferSelectedMsgs () from /usr/lib/libkmailprivate.so
#47 0x37dcba46 in KMCommand::slotStart () from /usr/lib/libkmailprivate.so
#48 0x37dcbc4d in KMCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#49 0x37dcc08b in KMFilterActionCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#50 0x3711a26d in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#51 0x374a931e in QSignal::signal () from /usr/lib/libqt-mt.so.3
#52 0x371379cc in QSignal::activate () from /usr/lib/libqt-mt.so.3
#53 0x3713f4bc in QSingleShotTimer::event () from /usr/lib/libqt-mt.so.3
#54 0x370b065a in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#55 0x370b084c in QApplication::notify () from /usr/lib/libqt-mt.so.3
#56 0x377a8c7d in KApplication::notify (this=0x3fa76968, receiver=0x8274410, event=0x3fa755c8) at kapplication.cpp:550
#57 0x37041967 in QApplication::sendEvent () from /usr/lib/libqt-mt.so.3
#58 0x370a2047 in QEventLoop::activateTimers () from /usr/lib/libqt-mt.so.3
#59 0x37055753 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#60 0x370c92eb in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#61 0x370af112 in QApplication::processEvents () from /usr/lib/libqt-mt.so.3
#62 0x37dd168f in KMFilterActionCommand::execute () from /usr/lib/libkmailprivate.so
#63 0x37dc61f2 in KMCommand::slotPostTransfer () from /usr/lib/libkmailprivate.so
#64 0x37dcbc3b in KMCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#65 0x37dcc08b in KMFilterActionCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#66 0x3711a26d in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#67 0x37dc5114 in KMCommand::messagesTransfered () from /usr/lib/libkmailprivate.so
#68 0x37dcb7ef in KMCommand::transferSelectedMsgs () from /usr/lib/libkmailprivate.so
#69 0x37dcba46 in KMCommand::slotStart () from /usr/lib/libkmailprivate.so
#70 0x37dcbc4d in KMCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#71 0x37dcc08b in KMFilterActionCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#72 0x3711a26d in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#73 0x374a931e in QSignal::signal () from /usr/lib/libqt-mt.so.3
#74 0x371379cc in QSignal::activate () from /usr/lib/libqt-mt.so.3
#75 0x3713f4bc in QSingleShotTimer::event () from /usr/lib/libqt-mt.so.3
#76 0x370b065a in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#77 0x370b084c in QApplication::notify () from /usr/lib/libqt-mt.so.3
---Type <return> to continue, or q <return> to quit---
#78 0x377a8c7d in KApplication::notify (this=0x3fa76968, receiver=0x825b3c0, event=0x3fa75e48) at kapplication.cpp:550
#79 0x37041967 in QApplication::sendEvent () from /usr/lib/libqt-mt.so.3
#80 0x370a2047 in QEventLoop::activateTimers () from /usr/lib/libqt-mt.so.3
#81 0x37055753 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#82 0x370c92eb in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#83 0x370af112 in QApplication::processEvents () from /usr/lib/libqt-mt.so.3
#84 0x37dd168f in KMFilterActionCommand::execute () from /usr/lib/libkmailprivate.so
#85 0x37dc61f2 in KMCommand::slotPostTransfer () from /usr/lib/libkmailprivate.so
#86 0x37dcbc3b in KMCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#87 0x37dcc08b in KMFilterActionCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#88 0x3711a26d in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#89 0x37dc5114 in KMCommand::messagesTransfered () from /usr/lib/libkmailprivate.so
#90 0x37dcb7ef in KMCommand::transferSelectedMsgs () from /usr/lib/libkmailprivate.so
#91 0x37dcba46 in KMCommand::slotStart () from /usr/lib/libkmailprivate.so
#92 0x37dcbc4d in KMCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#93 0x37dcc08b in KMFilterActionCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#94 0x3711a26d in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#95 0x374a931e in QSignal::signal () from /usr/lib/libqt-mt.so.3
#96 0x371379cc in QSignal::activate () from /usr/lib/libqt-mt.so.3
#97 0x3713f4bc in QSingleShotTimer::event () from /usr/lib/libqt-mt.so.3
#98 0x370b065a in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#99 0x370b084c in QApplication::notify () from /usr/lib/libqt-mt.so.3
#100 0x377a8c7d in KApplication::notify (this=0x3fa76968, receiver=0x82500b0, event=0x3fa766c8) at kapplication.cpp:550
#101 0x37041967 in QApplication::sendEvent () from /usr/lib/libqt-mt.so.3
#102 0x370a2047 in QEventLoop::activateTimers () from /usr/lib/libqt-mt.so.3
#103 0x37055753 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#104 0x370c9153 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#105 0x370c9076 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#106 0x370af169 in QApplication::exec () from /usr/lib/libqt-mt.so.3
#107 0x0804a04b in ?? ()
#108 0x3fa76968 in ?? ()
#109 0x3fa76b54 in ?? ()
#110 0x00000000 in ?? ()
(gdb)
Comment 1 Andreas Gungl 2007-03-24 17:56:59 UTC
Christian, I think the "hang" is due to the time needed to filter the messages and unfortunately to redraw the headers list. Things should have been improved in KMail 1.9.6 because there you have feedback via a progress indicator.

Can you evaluate a newer KMail, please? I close this report for now, but feel free to re-open if KMail really hangs.