Jodie writes:

Possible Resolution?...

Is there a way to tell courier to place these courierpop3sizelist files (and the courierimapuiddb files) in a temp directory somewhere else on the system. Thus, this file would not be affected by their quota.

IMAP will recover from a failure to write out courierimapuiddb. Someone else verified that it properly recovers from an out-of-disk error condition. There might be some residual undesirable behavior from some IMAP clients, as they end up refetching any cached message content, but generally IMAP should recover.


You have identified a problem with the POP3 server, though. It needs to be fixed so that it doesn't fail completely, if it can't write out courierpop3sizelist. I'll use you for a guinea pig. The following patch should fix the POP3 server.

Index: imap/pop3dserver.c
===================================================================
RCS file: /cvsroot/courier/courier/imap/imap/pop3dserver.c,v
retrieving revision 1.18
diff -U3 -r1.18 pop3dserver.c
--- imap/pop3dserver.c  20 Jan 2003 13:47:19 -0000      1.18
+++ imap/pop3dserver.c  24 Feb 2003 22:29:05 -0000
@@ -203,8 +203,8 @@
 
        if ((fp=maildir_tmpcreate_fp(&createInfo)) == NULL)
        {
-               perror("maildir_tmpcreate: stat");
-               exit(1);
+               maildir_tmpcreate_free(&createInfo);
+               return;
        }
 
        for (i=0; i<cnt; i++)
@@ -218,10 +218,19 @@
                fprintf(fp, "%s %lu\n", p, (unsigned long)a[i]->size);
        }
 
-       if (fflush(fp) || ferror(fp) || fclose(fp))
+       if (fflush(fp) || ferror(fp))
        {
-               perror(createInfo.tmpname);
-               exit(1);
+               fclose(fp);
+               unlink(createInfo.tmpname);
+               maildir_tmpcreate_free(&createInfo);
+               return;
+       }
+
+       if (fclose(fp))
+       {
+               unlink(createInfo.tmpname);
+               maildir_tmpcreate_free(&createInfo);
+               return;
        }
 
        rename(createInfo.tmpname, POP3DLIST);

Reply via email to