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

List:       kde-bugs-dist
Subject:    [Bug 43931] "ghost messages" stay in outbox
From:       Till Adam <adam () kde ! org>
Date:       2004-05-29 21:38:09
Message-ID: 20040529213809.3785.qmail () ktown ! kde ! org
[Download RAW message or body]

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
      
http://bugs.kde.org/show_bug.cgi?id=43931      
coolo kde org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|cjb cs utexas edu           |
                 CC|kevinj genaware com         |

adam kde org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED



------- Additional Comments From adam kde org  2004-05-29 23:38 -------
CVS commit by tilladam: 

Nuke the index of the outbox on startup if the outbox folder is a maildir
folder, to make ghost messages impossible, which result when KMail crashes
after a message has entered and left a folder within five seconds, which
pretty much only happens for the outbox, and the index is therefor less
than 5 seconds out of date, which is the nfs tolerance. 

This is a nasty hack of a workaround, but it should fix the symptom.

CCMAIL: 43931-done bugs kde org


  M +8 -0      kmkernel.cpp   1.287


--- kdepim/kmail/kmkernel.cpp  #1.286:1.287
 @ -837,4 +837,12  @ void KMKernel::initFolders(KConfig* cfg)
   if ( the_outboxFolder->userWhoField().isEmpty() )
     the_outboxFolder->setUserWhoField( QString::null );
+  /* Nuke the oubox's index file, to make sure that no ghost messages are in
+   * it from a previous crash. Ghost messages happen in the outbox because it
+   * the only folder where messages enter and leave within 5 seconds, which is
+   * the leniency period for index invalidation. Since the number of mails in
+   * this folder is expected to be very small, we can live with regenerating
+   * the index on each start to be on the save side. */
+  if ( the_outboxFolder->folderType() == KMFolderTypeMaildir )
+    unlink( QFile::encodeName( the_outboxFolder->indexLocation() ) );
   the_outboxFolder->open();
[prev in list] [next in list] [prev in thread] [next in thread] 

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