Re: [Dovecot] INBOX stored in AFS

2008-10-30 Thread Hans-Werner Paulsen
On Mon, Oct 20, 2008 at 06:56:55PM +0300, Timo Sirainen wrote:
 On Mon, 2008-10-20 at 16:16 +0200, Hans-Werner Paulsen wrote:
  When I start my imap-client, I see the content of the INBOX, and I can
  read, delete, ... the different entries. But when new mail arrives dovecot
  (and my imap-client) will never notice this. And when I quit my imap-client
  the dovecot imap server will write back its view of the INBOX, and delete
  this new mail.
  This seems to be a problem related to AFS. I poked in the dovecot code and
  have the following theory: dovecot opens the INBOX R/W, dovecot calls stat
  on the INBOX file periodically to look for modifications. But this does
  not work, because this machine will stat the local copy (AFS cache) of the
  INBOX as long as this file is still open R/W.
 
 I'd have thought that the local view was updated at least after fcntl
 locking the mailbox.
 
  My questions:
  Is it possible to have a configuration, that the INBOX file is not left open
  when stat-ing this file?
  Or is it possible to open the INBOX file R/W only when it us locked?
  Or is it necessary to modify the code?
 
 It's necessary to modify the code. Probably not difficult (maybe in
 mbox_unlock()), but I'd rather not change that code permanently since
 this is a pretty AFS-specific problem..
 

I checked flock (fcntl locking is not working at all) semantics on the AFS
filesystem with some small test programs:
Calling flock does NOT update the local view of the AFS file, if it is
opened R/W. But, status information seems to be up-to-date if the file
is opened R/O.
Now I want to modify the dovecot code for mbox processing in the following
way:
open the mbox R/O
before modifying the mbox file: close it, dot-lock the file and open it R/W
after modifying the mbox file: close it, remove the dot-lock, and open it R/O

Any hints in which files I have to look for the necessary modifications?

Thank you for your help,
HW

-- 
Hans-Werner Paulsen [EMAIL PROTECTED]
MPI für Astrophysik Tel 089-3-2602
Karl-Schwarzschild-Str. 1   Fax 089-3-2235  
D-85741 Garching


Re: [Dovecot] INBOX stored in AFS

2008-10-20 Thread Timo Sirainen
On Mon, 2008-10-20 at 16:16 +0200, Hans-Werner Paulsen wrote:
 When I start my imap-client, I see the content of the INBOX, and I can
 read, delete, ... the different entries. But when new mail arrives dovecot
 (and my imap-client) will never notice this. And when I quit my imap-client
 the dovecot imap server will write back its view of the INBOX, and delete
 this new mail.
 This seems to be a problem related to AFS. I poked in the dovecot code and
 have the following theory: dovecot opens the INBOX R/W, dovecot calls stat
 on the INBOX file periodically to look for modifications. But this does
 not work, because this machine will stat the local copy (AFS cache) of the
 INBOX as long as this file is still open R/W.

I'd have thought that the local view was updated at least after fcntl
locking the mailbox.

 My questions:
 Is it possible to have a configuration, that the INBOX file is not left open
 when stat-ing this file?
 Or is it possible to open the INBOX file R/W only when it us locked?
 Or is it necessary to modify the code?

It's necessary to modify the code. Probably not difficult (maybe in
mbox_unlock()), but I'd rather not change that code permanently since
this is a pretty AFS-specific problem..



signature.asc
Description: This is a digitally signed message part