Bug 89549 - message list view containing empty rows and causing crash when double clicking
Summary: message list view containing empty rows and causing crash when double clicking
Status: RESOLVED FIXED
Alias: None
Product: kmail
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Mandrake RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Till Adam
URL:
Keywords:
: 93440 99097 102931 117926 120590 125311 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-09-15 10:23 UTC by Frederik Himpe
Modified: 2009-12-06 16:59 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
valgrind log using "--tool=memcheck --num-callers=50 kmail --nofork" (183.11 KB, text/x-csrc)
2005-03-20 20:52 UTC, Jens
Details
kmfolderimap.diff (570 bytes, text/x-diff)
2006-04-09 12:32 UTC, Carsten Burghardt
Details
kmail/kmfilteraction.cpp diff (1.12 KB, patch)
2006-05-11 20:35 UTC, Michael Eyrich
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Frederik Himpe 2004-09-15 10:23:17 UTC
Version:            (using KDE KDE 3.3.0)
Installed from:    Mandrake RPMs
Compiler:          gcc 3.4.1 
OS:                Linux

I'm using KDE 3.2.3 with KDEPim 3.3 (cvs of 13 september 2004) on Mandrakelinux 10.1 Cooker (all included RPM packages).

At a certain moment, I saw that the message list view of my INBOX on an IMAP-server, contained all empty rows. I could vertically scroll in the list view, so it seems that there were as many empty rows as there were mails in the INBOX.

When I double clicked one of these rows, kontact crashed:

(no debugging symbols found)...Using host libthread_db library "/lib/tls/libthread_db.so.1".
(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...[Thread debugging using libthread_db enabled]
[New Thread 1073902976 (LWP 17107)]
[New Thread 1105767344 (LWP 17174)]
[Thread debugging using libthread_db enabled]
[New Thread 1073902976 (LWP 17107)]
[New Thread 1105767344 (LWP 17174)]
[Thread debugging using libthread_db enabled]
[New Thread 1073902976 (LWP 17107)]
[New Thread 1105767344 (LWP 17174)]
[New Thread 1087499184 (LWP 17173)]
(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...0xffffe410 in ?? ()
#0  0xffffe410 in ?? ()
#1  0xbfffe15c in ?? ()
#2  0x00000000 in ?? ()
#3  0x00000000 in ?? ()
#4  0x4ecef2db in __waitpid_nocancel () from /lib/tls/libpthread.so.0
#5  0x46d7fece in KCrash::defaultCrashHandler () from /usr/lib/libkdecore.so.4
#6  <signal handler called>
#7  0x488075a7 in KMHeaders::contentsMouseMoveEvent ()
   from /usr/lib/libkmailprivate.so.0
#8  0x47381669 in QScrollView::viewportMouseMoveEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#9  0x082aed40 in ?? ()
#10 0xbfffe5f0 in ?? ()
#11 0xbfffebfc in ?? ()
#12 0x4efd739e in operator new () from /usr/lib/libstdc++.so.6
#13 0x00000005 in ?? ()
#14 0xbfffef22 in ?? ()
#15 0x000000c4 in ?? ()
#16 0x00000092 in ?? ()
#17 0x000001f0 in ?? ()
#18 0x0000011b in ?? ()
#19 0x00010000 in ?? ()
#20 0x081f21d9 in ?? ()
#21 0x00000000 in ?? ()
#22 0x471faf25 in QApplication::activePopupWidget ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#23 0x471fc001 in qt_tryModalHelper () from /usr/lib/qt3/lib/libqt-mt.so.3
#24 0x082aed40 in ?? ()
#25 0x00000010 in ?? ()
#26 0x46e38980 in kde_malloc_is_used () from /usr/lib/libkdecore.so.4
#27 0x476ccbf0 in ?? () from /usr/lib/qt3/lib/libqt-mt.so.3
#28 0xbffff080 in ?? ()
#29 0x476d7dac in QApplication::active_window ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#30 0xbfffece8 in ?? ()
#31 0x47187506 in qt_try_modal () from /usr/lib/qt3/lib/libqt-mt.so.3
#32 0x0816eef8 in ?? ()
#33 0x00000000 in ?? ()
#34 0xbfffef20 in ?? ()
#35 0x476ccbf0 in ?? () from /usr/lib/qt3/lib/libqt-mt.so.3
#36 0x46effd68 in vtable for QPtrList<QWidget> () from /usr/lib/libkparts.so.2
#37 0x46e32f54 in ?? () from /usr/lib/libkdecore.so.4
#38 0xbffff080 in ?? ()
#39 0x46ce6309 in KAccelEventHandler::x11Event ()
   from /usr/lib/libkdecore.so.4
Comment 1 Andreas Gungl 2004-09-15 11:22:03 UTC
Am Mittwoch, 15. September 2004 10:23 schrieb Frederik Himpe:
> I'm using KDE 3.2.3 with KDEPim 3.3 (cvs of 13 september 2004) on
> Mandrakelinux 10.1 Cooker (all included RPM packages).

KDEPIM as in CVS HEAD requires KDELIBS 3.3 however the KDE_3_3_BRANCH of 
KDEPIM should work fine on KDELIBS 3.2.x.

Please close the report if there is a version problem on your side.

Comment 2 Frederik Himpe 2004-09-15 12:04:07 UTC
Yes, the Mandrakelinux Cooker KDEPim 3.3.0 RPM is build from the KDE_3_3_BRANCH.
Comment 3 Frederik Himpe 2004-09-23 09:42:18 UTC
Actually, the message view becomes empty after Kontact has been minimzed and restored, probably while it is checking for mails in the IMAP folder while kontact is in minimzed state.
Comment 4 Frederik Himpe 2004-10-06 10:28:58 UTC
Could it be that this is fixed by this commit? http://lists.kde.org/?l=kde-cvs&m=109683551407295&w=2
Comment 5 Tom Albers 2004-10-06 21:16:45 UTC
iirc that commit fixed a problem created just a few days earlier by Till.
Comment 6 Till Adam 2004-10-23 22:52:28 UTC
That's a valid bug, I've seen it as well. Working with Waldo on resolving it.
Comment 7 Till Adam 2004-12-14 09:13:12 UTC
*** Bug 93440 has been marked as a duplicate of this bug. ***
Comment 8 Frederik Himpe 2005-01-14 16:30:28 UTC
I have the impression that each time this problem happens (very often here), these messages are put on the console:

kmail: connections to server imap.domain.com now 0
kio_imap: IMAP4::dispatch - command=67
kio_imap: IMAP4::get -  newimap://login@imap.domain.com:143/INBOX/;UID=822;SECTION=BODY.PEEK[1]
kio_imap: URL: box= INBOX, section= BODY.PEEK[1], type= , uid= 822, validity=
kio_imap: IMAP4::parseURL: box INBOX
kio_imap: IMAP4::parseURL - return 5
kio_imap: IMAP4Protocol::assureBox - reusing box
kio_imap: imapParser::parseBody - discarding 822
kio_imap: IMAP4::get -  finished
kmail: ImapJob::slotGetMessageResult - retrieved part 1
kmail: KMMessage::updateBodyPart 1
kmail: ISubject::notify 0
kio_imap: IMAP4::dispatch - command=67
kio_imap: IMAP4::get -  newimap://login@imap.domain.com:143/INBOX/;UID=822;SECTION=BODY.PEEK[2.MIME]
kio_imap: URL: box= INBOX, section= BODY.PEEK[2.MIME], type= , uid= 822, validity=
kio_imap: IMAP4::parseURL: box INBOX
kio_imap: IMAP4::parseURL - return 5
kio_imap: IMAP4Protocol::assureBox - reusing box
kio_imap: mimeHeader::parseHeader - starting parsing
kio_imap: mimeHeader::parseHeader - finished parsing
kio_imap: IMAP4::get -  finished
kmail: ImapJob::slotGetMessageResult - retrieved part 2.MIME
kmail: KMMessage::updateBodyPart 2
kmail: ISubject::notify 0
kio_imap: IMAP4::dispatch - command=80
kio_imap: IMAP4::dispatch - command=77
kio_imap: IMAP4Protocol::special
kio_imap: IMAP4::dispatch - command=77
kio_imap: IMAP4Protocol::special
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
kio_imap: IMAP4::dispatch - command=80
kio_imap: IMAP4::dispatch - command=77
kio_imap: IMAP4Protocol::special
kio_imap: IMAP4::dispatch - command=77
kio_imap: IMAP4Protocol::special
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 32 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 44 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 48 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 52 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 56 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
QGArray::at: Absolute index 60 out of range
Comment 9 Till Adam 2005-01-14 16:45:30 UTC
On Friday 14 January 2005 16:30, Frederik Himpe wrote:

> ------- I have the impression that each time this problem happens (very
> often here), these messages are put on the console:

That's correct. I have a pretty good idea what's happening by now, but still 
no idea why. I've not given up on it. :)

Till

Comment 10 Till Adam 2005-01-21 09:31:54 UTC
I've committed a fix in this area last night, can someone maybe try with head if that helped?
Comment 11 Frederik Himpe 2005-01-24 20:35:16 UTC
Could it be possible to have a patch for 3_3_BRANCH or proko2 branch?
Comment 12 Till Adam 2005-01-24 21:17:54 UTC
The fix was just backported to both branches.
Comment 13 Frederik Himpe 2005-01-26 11:59:54 UTC
The problem occured to me again with Mandrakelinux' Cooker kdepim-3.3.2-26mdk, which includes this patch.
Comment 14 Till Adam 2005-02-12 19:59:26 UTC
*** Bug 99097 has been marked as a duplicate of this bug. ***
Comment 15 Jens 2005-03-20 19:25:30 UTC
Hello,

with KDE 3.4.0 (SuSE 9.2 RPMs) this just happened again. When the rows disappeared, I started gdb on the kontact process and got this:

0xffffe410 in ?? ()
(gdb) cont
Continuing.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1105432128 (LWP 17240)]
0x427792c5 in KMMsgBase::transferInProgress ()
   from /opt/kde3/lib/libkmailprivate.so
(gdb) bt 10
#0  0x427792c5 in KMMsgBase::transferInProgress ()
   from /opt/kde3/lib/libkmailprivate.so
#1  0x427f5071 in KMHeaders::selectMessage ()
   from /opt/kde3/lib/libkmailprivate.so
#2  0x429312fe in KMHeaders::qt_invoke () from /opt/kde3/lib/libkmailprivate.so
#3  0x4155031e in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#4  0x418b62a5 in QListView::doubleClicked ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#5  0x40ee3d8e in KListView::contentsMouseDoubleClickEvent ()
   from /opt/kde3/lib/libkdeui.so.4
#6  0x4166d1f8 in QScrollView::viewportMouseDoubleClickEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#7  0x4166e6e6 in QScrollView::eventFilter ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#8  0x4163d608 in QListView::eventFilter () from /usr/lib/qt3/lib/libqt-mt.so.3
#9  0x42931c66 in KMHeaders::eventFilter ()
   from /opt/kde3/lib/libkmailprivate.so

Comment 16 Jens 2005-03-20 20:52:04 UTC
Created attachment 10217 [details]
valgrind log using "--tool=memcheck --num-callers=50 kmail --nofork"

Hi, I ran kmail in --nofork mode for about three hours while new mail kept
coming in faster than I could answer it. I didn't catch this bug, but I did
catch some other things like uninitialized variables and so on.

Maybe it helps. Maybe the crash is just a special case of one of the errors I
did catch.
Comment 17 Jens 2005-03-22 16:40:55 UTC
At work (SuSE 9.1, KDE 3.4.0 RPMs from SuSE) I am having this bug *all the time*, ie. once every ten minutes. Here are some things to corner the bug:

- It always happens when the IMAP message list is updated, either when I click on a new folder, or when I delete mails and the tree (thread view) must be updated. 

- It has never happened in any folder other than the INBOX.

- Here's a recent backtrace:

Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 28377)]
[KCrash handler]
#5  0x428cd2a6 in KMail::HeaderItem::text ()
   from /opt/kde3/lib/libkmailprivate.so
#6  0x4161274f in QListViewToolTip::maybeTip ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#7  0x4165bc5f in QTipManager::showTip () from /usr/lib/qt3/lib/libqt-mt.so.3
#8  0x4165cdaa in QTipManager::qt_invoke ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#9  0x4151d2ee in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#10 0x4151da96 in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#11 0x418664f9 in QTimer::timeout () from /usr/lib/qt3/lib/libqt-mt.so.3
#12 0x415420df in QTimer::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#13 0x414bb71f in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#14 0x414bd2c9 in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#15 0x4114f87e in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#16 0x414affdc in QEventLoop::activateTimers ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#17 0x41469dd3 in QEventLoop::processEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#18 0x414d33c1 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#19 0x414d3206 in QEventLoop::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#20 0x414bd19f in QApplication::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#21 0x08063b05 in main ()


Jens
Comment 18 Jens 2005-03-22 16:43:21 UTC
... and (forgot to mention) I also get these, like above:

kontact: WARNING: QuotedPrintableDecoder: illegally formed hex char! Outputting verbatim.
kontact: WARNING: QuotedPrintableDecoder: illegally formed hex char! Outputting verbatim.
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range
QGArray::at: Absolute index 36 out of range

(... also for 40, 44, ..., 72)

QGArray::at: Absolute index 76 out of range
QGArray::at: Absolute index 76 out of range
QGArray::at: Absolute index 76 out of range
QGArray::at: Absolute index 76 out of range
*** KMail got signal 11 (Crashing)
KCrash: Application 'kontact' crashing...
X Error: BadWindow (invalid Window parameter) 3
  Major opcode:  20
  Minor opcode:  0
  Resource id:  0x2600009
kio (KIOConnection): ERROR: Header read failed, errno=104
kio (KIOConnection): ERROR: Header has invalid size (-1)
Comment 19 Till Adam 2005-06-05 11:54:50 UTC
*** Bug 102931 has been marked as a duplicate of this bug. ***
Comment 20 Frederik Himpe 2005-08-14 21:41:23 UTC
Can we do something to help debugging this? I'm still being bugged almost each time I check my IMAP account (i.e. each ten minutes) with KDE 3.4.2.
Comment 21 Frederik Himpe 2005-11-26 11:38:32 UTC
I have the impression that this is solved in KDE 3.5.
Comment 22 Frederik Himpe 2005-11-27 15:35:22 UTC
OK, one day after I thought it was fixed, I encounter again the same problem with KDE 3.5RC. But still, it seems much more rare...

I changed to another IMAP mailbox, and a newly arrived mail was automatically selected. The mail appears in the preview pane, but at the same time, all the lines in the message view become empty.
Comment 23 Carsten Burghardt 2006-04-09 12:32:39 UTC
There is open folder->open() missing somewhere but as I'm not sure where 
exactly - here is a hotfix that should at least fix the bug.


Created an attachment (id=15526)
kmfolderimap.diff
Comment 24 Carsten Burghardt 2006-04-11 11:09:47 UTC
*** Bug 125311 has been marked as a duplicate of this bug. ***
Comment 25 Carsten Burghardt 2006-04-14 09:47:48 UTC
SVN commit 529696 by burghard:

Do not close a selected folder, this is a hotfix for the messagelist corruption.
The source of the problem persists though - probably a missing folder->open() somewhere.
BUGS:89549


 M  +5 -0      kmfolderimap.cpp  


--- branches/KDE/3.5/kdepim/kmail/kmfolderimap.cpp #529695:529696
@@ -110,6 +110,11 @@
   if (mOpenCount <= 0 ) return;
   if (mOpenCount > 0) mOpenCount--;
   if (mOpenCount > 0 && !aForced) return;
+  if (isSelected() && !aForced) {
+      kdWarning(5006) << "Trying to close the selected folder " << label() << 
+          " - ignoring!" << endl;
+      return;
+  }
   // FIXME is this still needed?
   if (mAccount)
     mAccount->ignoreJobsForFolder( folder() );
Comment 26 Carsten Burghardt 2006-04-16 15:58:14 UTC
*** Bug 120590 has been marked as a duplicate of this bug. ***
Comment 27 Carsten Burghardt 2006-04-16 17:37:07 UTC
*** Bug 117926 has been marked as a duplicate of this bug. ***
Comment 28 Michael Eyrich 2006-05-10 11:13:00 UTC
It looks like the problem persists in yesterdays (Mai, 9th 
2006) svn version at least in a maildir tree. And it seems 
pretty related to filtering/copying something into the 
current mailbox. There is no warning message (as 
expected ...).





On Friday 14 April 2006 09:47, Carsten Burghardt wrote:
[bugs.kde.org quoted mail]
Comment 29 Michael Eyrich 2006-05-11 11:22:10 UTC
The following patch lets the message list view survive 
filtering into the current folder; since there was anyway a 
comment re. opening/closing of folders that's probably 
fixed that way and the comment could be removed?

Michael

Index: kmfilteraction.cpp
===================================================================
--- kmfilteraction.cpp  (revision 539146)
+++ kmfilteraction.cpp  (working copy)
@@ -1373,12 +1373,21 @@

 KMFilterAction::ReturnCode 
KMFilterActionCopy::process(KMMessage* msg) const
 {
+  bool opened = false;
+
   // TODO opening and closing the folder is a trade off.
   // Perhaps Copy is a seldomly used action for now,
   // but I gonna look at improvements ASAP.
-  if ( !mFolder && mFolder->open() != 0 )
-    return ErrorButGoOn;
-
+  if ( !mFolder ) {
+    if (!mFolder->isOpened()) {
+      int rc;
+      opened = true;
+      rc = mFolder->open();
+      kdDebug(5006) << "KMFolderMaildir::addMsg-open: " << 
rc << " of folder: " << label() << endl;
+      if (rc) return ErrorButGoOn;
+    }
+  }
+
   // copy the message 1:1
   KMMessage* msgCopy = new KMMessage;
   msgCopy->fromDwString(msg->asDwString());
@@ -1387,8 +1396,9 @@
   int rc = mFolder->addMsg(msgCopy, &index);
   if (rc == 0 && index != -1)
     mFolder->unGetMsg( index );
-  mFolder->close();

+  if (opened) mFolder->close();
+
   return GoOn;
 }



On Friday 14 April 2006 09:47, Carsten Burghardt wrote:
[bugs.kde.org quoted mail]
Comment 30 Jens 2006-05-11 15:58:06 UTC
Hi,

I still see this problem occasionally (as in, every couple days) in KMail 1.9.1, as compiled by SuSE for SuSE 10.0, in KDE 3.5.2. Most of the time it happens when switching to my INBOX, it never happened on any other mailboxes yet. The inbox is the only box that gets updated server-side, I don't use serverside filters. Switching to another folder when I see the empty rows before selecting them, and then switching back to the INBOX, avoids the crash.

Also, I could not pinpoint this problem when running KMail under gdb or valgrind, so it might be a race. 

Maybe that helps.

Jens :-)
Comment 31 Michael Eyrich 2006-05-11 20:35:28 UTC
Created attachment 16029 [details]
kmail/kmfilteraction.cpp diff

Do not (re-)open and close an already opened folder during message copy while
filtering
Comment 32 Till Adam 2006-05-11 22:18:07 UTC
Hm, open/close on a folder should be just refcounting, so the problem is not that the folder is openend multiple times, it's more that it is closed, when it should be kept open, in case it was not open before, I would guess. Also the  if ( !mFolder && mFolder->open() != 0 ) should be a ||. 
Comment 33 Mike Culbertson 2006-05-12 00:39:09 UTC
I get similar behavior to this in a very reproducable way on KDE 3.5.2, Kmail 1.9.1, though I'm relatively certain mine has nothing to do with filtering.

While checking mail and ergo updating the message list, if I move the scrollbar at  all, or if I click any message before the task is 100% complete (status display lower right goes idle), I end up with the blank lines or, even better, a "hung" message list where that widget will not refresh. Occasionally this happens without apparently touching anyting at all, and either way it happens probably 10 times per day.

Selecting a different folder, letting that refresh without touching anything, then re-selecting my Inbox folder fixes the gui issue without restarting kmail.   

I can reliably reproduce this on 2 different Gentoo systems using:
Qt: 3.3.6
KDE: 3.5.2
KMail: 1.9.1

and a Debian system using:
Qt: 3.3.5
KDE: 3.5.1
KMail: 1.9.1