2 messages in net.sourceforge.lists.courier-maildropRe: [maildropl] problems with quotwar...
FromSent OnAttachments
Mariano AbsatzMay 19, 2004 12:27 pm 
Mariano AbsatzMay 25, 2004 3:40 pm 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [maildropl] problems with quotwarn and mtimeActions...
From:Mariano Absatz (ba@baby.com.ar)
Date:May 25, 2004 3:40:43 pm
List:net.sourceforge.lists.courier-maildrop

FWIW,

the problem described is related to ReiserFS, which apparently, at least under RedHat, doesn't handle mtime correctly, so the patch below is good if maildrop isn't updating the mtime of the 'quotawarn' files in a ReiserFS filesystem.

Regards.

Hi,

I'm using maildrop to deliver messages to maildirs within an NFS file server... for some reason, the mechanism used within do_deliver_warning() for updating the mtime doesn't work, so, after the initial warning message is delivered, every incoming message generates a new warning message within the maildir :-(

Reading 'man 2 stat' I see:

The field st_mtime is changed by file modifications, e.g. by mknod(2), truncate(2), utime(2) and write(2) (of more than zero bytes). Moreover, st_mtime of a directory is changed by the creation or deletion of files in that directory. The st_mtime field is not changed for changes in owner, group, hard link count, or mode.

So, the write(fd, buf, 0) seems to be useless in this context... however, the open(qname, O_WRONLY|O_CREAT|O_TRUNC, 0644) should implicitly call truncate(2)... as I wasn't sure (maybe it is smart enough to NOT call truncate(2) when O_TRUNC is enabled IF it knows that the current size is 0????

To test this I called ftruncate(fd, 0) after and before the write, to no avail...

What _did_ work was to actually write one byte to the file... to avoid filling the disk with one-byte sized files, I'm truncating it immediately, and this seems to work.

I applied the following patch (maildrop 1.6.3): --- maildir/maildirquota.c.ORI Wed May 19 15:38:43 2004 +++ maildir/maildirquota.c Wed May 19 16:10:49 2004 @@ -967,7 +967,8 @@ close(fdin); return; } - write(fd, buf, 0); + write(fd, buf, 1); + ftruncate(fd, 0); close(fd);

strcpy(buf, "Date: ");

FWIW, this is on a RHES-2.1. The NFS server is a cluster of two RHAS-2.1 with HP ServiceGuard clustering software... I think the clustered filesystem are ReiserFS.

Regards.

----------------------------------------------------------- All wiyht. Rho sritched mg kegtops awound?

----------------------------------------------------------- If books were designed by Microsoft, the Anarchist's Cookbook would explode when you read it. -- Mark W. Schumann