F14: Encfs/procmail problem setting st_atime unexpectedly

Corinna Vinschen vinschen at redhat.com
Wed Dec 29 12:36:23 UTC 2010


I'm running into a strange problem using procmail and mutt, with
some of my MBOX mailboxes stored on an encfs encrypted directory.
This is not the known problem with hardlinks, rather it's a problem
with st_atime.

My default mailbox folder is on an unencrypted filesystem (ext4).  Some
mailboxes with more confidential stuff I'm storing in an encfs mounted
directory on the same ext4 FS.  The FS mount options are default, which
includes the relatime option.

When I set my mail delivery up I found that mutt didn't notice when an
encrypted MBOX file received a new message via procmail.  A bit of
experimenting showed that the setting "check_mbox_size=yes" rectified
this problem.  However, "check_mbox_size=yes" is kind of a hack with
annoying side-effects, so that's not really a solution.

Eventually I found the following strange behaviour.

- When I append data manually to a file on the encfs, only st_mtime and
  st_ctime changes, as expected.

- When procmail appends new messages to an unencrypted mailbox, only
  st_mtime and st_ctime changes, as expected.

- However, when procmail appends a message to an encfs encrypted MBOX,
  it doesn't only change st_mtime and st_ctime, but also st_atime!

Naturally this breaks mutt's algorithm to detect mailboxes with new
mail.  For the time being I tweaked mutt to recognize mailboxes with new
mails also if st_atime == st_mtime, but that's almost just a bad hack as
using check_mbox_size=yes.

So the real question is, why does st_atime change here at all?  I tried
the debug option for procmail, but the debug output didn't contain
anything helpful. 

Does anybody have a hunch what happens here?

Thank in advance,

More information about the users mailing list