[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kmail-devel
Subject:    [Bug 92540] New: kmail sometimes freezes when deleting messages
From:       Richard "Lärkäng" <richard () goteborg ! utfors ! se>
Date:       2004-11-01 18:43:16
Message-ID: 20041101194315.92540.richard () goteborg ! utfors ! se
[Download RAW message or body]

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
        
http://bugs.kde.org/show_bug.cgi?id=92540        
           Summary: kmail sometimes freezes when deleting messages
           Product: kmail
           Version: unspecified
          Platform: Compiled Sources
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: NOR
         Component: general
        AssignedTo: kmail-devel kde org
        ReportedBy: richard goteborg utfors se


Version:            (using KDE Devel)
Installed from:    Compiled sources
OS:                Linux

KMail sometimes goes in to an infinite loop when I delete (move to trash) a message. \
AFAICT it only happens when the message is the first in a thread. I only run kmail in \
kontact, so I don't know if it happens with standalone kmail too, but I don't think \
this is kontact-specific.

This backtrace is what I got from attaching gdb to the kontact process:
#0  0xb6c96134 in QListViewItem::itemAbove (this=0x8654e48) at \
widgets/qlistview.cpp:3890 #1  0xb6c8e894 in QListViewItem::takeItem (this=0x8518fd0, \
item=0x8654e48) at widgets/qlistview.cpp:1280 #2  0xb6c8dedb in ~QListViewItem \
(this=0x8654e48) at widgets/qlistview.cpp:1015 #3  0xb767adfc in ~KListViewItem \
(this=0x8654e48) at /home/richard/kde-cvs/cvs/kdelibs/kdeui/klistview.cpp:2140 #4  \
0xb5dc5072 in ~KMHeaderItem (this=0x8654e48) at \
/home/richard/kde-cvs/cvs/kdepim/kmail/kmheaders.cpp:190 #5  0xb5db5446 in \
KMHeaders::msgRemoved (this=0x8516808, id=3, msgId=  {static null = {static null = \
<same as static member of an already seen type>, d = 0x80962d8, static shared_null = \
0x80962d8}, d = 0x8626c78, static shared_null = 0x80962d8}, strippedSubjMD5=  {static \
null = {static null = <same as static member of an already seen type>, d = 0x80962d8, \
static shared_null = 0x80962d8}, d = 0x85311e0, static shared_null = 0x80962d8}) at \
/home/richard/kde-cvs/cvs/kdepim/kmail/kmheaders.cpp:1631 #6  0xb5dbec7b in \
KMHeaders::qt_invoke (this=0x8516808, _id=112, _o=0xbfffdf60) at kmheaders.moc:282 #7 \
0xb6ba47cb in QObject::activate_signal (this=0x84e2f88, clist=0x86ad720, \
o=0xbfffdf60) at kernel/qobject.cpp:2357 #8  0xb5dede37 in KMFolder::msgRemoved \
(this=0x84e2f88, t0=3, t1=  {static null = {static null = <same as static member of \
an already seen type>, d = 0x80962d8, static shared_null = 0x80962d8}, d = 0x8626c78, \
static shared_null = 0x80962d8}, t2=  {static null = {static null = <same as static \
member of an already seen type>, d = 0x80962d8, static shared_null = 0x80962d8}, d = \
0x85311e0, static shared_null = 0x80962d8}) at kmfolder.moc:249 #9  0xb5dee7b5 in \
KMFolder::qt_emit (this=0x84e2f88, _id=9, _o=0xbfffe0a0) at kmfolder.moc:369 #10 \
0xb6ba479f in QObject::activate_signal (this=0x84e3178, clist=0x84e3820, \
o=0xbfffe0a0) at kernel/qobject.cpp:2355 #11 0xb5e07907 in FolderStorage::msgRemoved \
(this=0x84e3178, t0=3, t1=  {static null = {static null = <same as static member of \
an already seen type>, d = 0x80962d8, static shared_null = 0x80962d8}, d = 0x8626c78, \
static shared_null = 0x80962d8}, t2=  {static null = {static null = <same as static \
member of an already seen type>, d = 0x80962d8, static shared_null = 0x80962d8}, d = \
0x85311e0, static shared_null = 0x80962d8}) at folderstorage.moc:234 #12 0xb5e04de1 \
in FolderStorage::take (this=0x84e3178, idx=3)  at \
/home/richard/kde-cvs/cvs/kdepim/kmail/folderstorage.cpp:408 #13 0xb5ea876f in \
KMFolderMaildir::take (this=0x84e3178, idx=3)  at \
/home/richard/kde-cvs/cvs/kdepim/kmail/kmfoldermaildir.cpp:903 #14 0xb5debfc0 in \
KMFolder::take (this=0x84e2f88, idx=3) at \
/home/richard/kde-cvs/cvs/kdepim/kmail/kmfolder.cpp:317 #15 0xb5ea5df5 in \
KMFolderMaildir::addMsg (this=0x84ce188, aMsg=0x8669a00, index_return=0xbfffe400)  at \
/home/richard/kde-cvs/cvs/kdepim/kmail/kmfoldermaildir.cpp:432 #16 0xb5e05529 in \
FolderStorage::moveMsg (this=0x84ce188, aMsg=0x8669a00, aIndex_ret=0xbfffe400)  at \
/home/richard/kde-cvs/cvs/kdepim/kmail/folderstorage.cpp:538 #17 0xb5dec175 in \
KMFolder::moveMsg (this=0x84cb978, msg=0x8669a00, index_return=0xbfffe400)  at \
/home/richard/kde-cvs/cvs/kdepim/kmail/kmfolder.cpp:357 #18 0xb5f21260 in \
KMMoveCommand::execute (this=0x881f098) at \
/home/richard/kde-cvs/cvs/kdepim/kmail/kmcommands.cpp:1803 #19 0xb5f18dc6 in \
KMCommand::slotPostTransfer (this=0x881f098, result=KMCommand::OK)  at \
/home/richard/kde-cvs/cvs/kdepim/kmail/kmcommands.cpp:201 #20 0xb5f1282f in \
KMCommand::qt_invoke (this=0x881f098, _id=5, _o=0xbfffe5d0) at kmcommands.moc:148 #21 \
0xb5f16691 in KMMenuCommand::qt_invoke (this=0x881f098, _id=5, _o=0xbfffe5d0) at \
kmcommands.moc:2509 #22 0xb5f16b41 in KMMoveCommand::qt_invoke (this=0x881f098, \
_id=5, _o=0xbfffe5d0) at kmcommands.moc:2676 #23 0xb5f16d37 in \
KMDeleteMsgCommand::qt_invoke (this=0x881f098, _id=5, _o=0xbfffe5d0) at \
kmcommands.moc:2751 #24 0xb6ba47cb in QObject::activate_signal (this=0x881f098, \
clist=0x864c8c8, o=0xbfffe5d0) at kernel/qobject.cpp:2357 #25 0xb5f12635 in \
KMCommand::messagesTransfered (this=0x881f098, t0=KMCommand::OK) at \
kmcommands.moc:126 #26 0xb5f19313 in KMCommand::transferSelectedMsgs (this=0x881f098)
    at /home/richard/kde-cvs/cvs/kdepim/kmail/kmcommands.cpp:295
#27 0xb5f18d6f in KMCommand::slotStart (this=0x881f098) at \
/home/richard/kde-cvs/cvs/kdepim/kmail/kmcommands.cpp:193 #28 0xb5f127ff in \
KMCommand::qt_invoke (this=0x881f098, _id=4, _o=0xbfffe810) at kmcommands.moc:147 #29 \
0xb5f16691 in KMMenuCommand::qt_invoke (this=0x881f098, _id=4, _o=0xbfffe810) at \
kmcommands.moc:2509 #30 0xb5f16b41 in KMMoveCommand::qt_invoke (this=0x881f098, \
_id=4, _o=0xbfffe810) at kmcommands.moc:2676 #31 0xb5f16d37 in \
KMDeleteMsgCommand::qt_invoke (this=0x881f098, _id=4, _o=0xbfffe810) at \
kmcommands.moc:2751 #32 0xb6ba47cb in QObject::activate_signal (this=0x82ed080, \
clist=0x86ae910, o=0xbfffe810) at kernel/qobject.cpp:2357 #33 0xb6f108ab in \
QSignal::signal (this=0x82ed080, t0= 0x82ed0a8) at \
.moc/debug-shared-mt/moc_qsignal.cpp:100 #34 0xb6bc27a2 in QSignal::activate \
(this=0x82ed080) at kernel/qsignal.cpp:212 #35 0xb6bca7f8 in QSingleShotTimer::event \
(this=0x82ed058) at kernel/qtimer.cpp:277 #36 0xb6b3fb6d in \
QApplication::internalNotify (this=0xbfffed70, receiver=0x82ed058, e=0xbfffead0)  at \
kernel/qapplication.cpp:2635 #37 0xb6b3f0ae in QApplication::notify (this=0xbfffed70, \
receiver=0x82ed058, e=0xbfffead0) at kernel/qapplication.cpp:2358 #38 0xb7213e85 in \
KApplication::notify (this=0xbfffed70, receiver=0x82ed058, event=0xbfffead0)  at \
/home/richard/kde-cvs/cvs/kdelibs/kdecore/kapplication.cpp:516 #39 0xb7dfd1ca in \
QApplication::sendEvent (receiver=0x82ed058, event=0xbfffead0) at qapplication.h:491 \
#40 0xb6b2de50 in QEventLoop::activateTimers (this=0x81e8240) at \
kernel/qeventloop_unix.cpp:558 #41 0xb6ae47be in QEventLoop::processEvents \
(this=0x81e8240, flags=4) at kernel/qeventloop_x11.cpp:389 #42 0xb6b54ddf in \
QEventLoop::enterLoop (this=0x81e8240) at kernel/qeventloop.cpp:198 #43 0xb6b54cfa in \
QEventLoop::exec (this=0x81e8240) at kernel/qeventloop.cpp:145 #44 0xb6b3fcd9 in \
QApplication::exec (this=0xbfffed70) at kernel/qapplication.cpp:2758 #45 0x0805cecb \
in main (argc=1, argv=0xbfffef14) at \
/home/richard/kde-cvs/cvs/kdepim/kontact/src/main.cpp:153


Also, when stepping through the code, I found that it got stuck on line 3890 in \
qt-copy/src/widgets/qlistview.cpp:  while( c && c->siblingItem != this )
            c = c->siblingItem;

When printing the items c and c->siblingItem, I got:
(gdb) print c
$3 = (QListViewItem *) 0x861d0b0
(gdb) print c->siblingItem
$4 = (QListViewItem *) 0x886b658
(gdb) s
3889            while( c && c->siblingItem != this )
(gdb) print c
$5 = (QListViewItem *) 0x886b658
(gdb) print c->siblingItem
$6 = (QListViewItem *) 0x861d0b0

So it cycled between the two items.
Also, this was:
(gdb) print this
$7 = (QListViewItem * const) 0x8654e48

So the loop would never end.
_______________________________________________
KMail developers mailing list
KMail-devel@kde.org
https://mail.kde.org/mailman/listinfo/kmail-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic