On Tue, 15 Mar 2011 12:14:32 -0400 "Edgecombe, Jason" <[email protected]> wrote:
> I'm thinking of using a file lock (i.e. flock) in AFS to determine who > fetches the email, but I need to know about the failure scenarios. > Does the lock persist if the machine freezes or dies? Will an orphaned > lock expire, and if so, how long does it take to expire? It expires after five minutes. Well, a maximum of five minutes; it's five minutes since the last time the client set/extended the lock, so it may be less than that. This is a compile-time constant in the fileserver (AFS_LOCKWAIT). > Any other suggestions are welcome. Another way of doing this is to logically "lock" the process by creating a file with O_CREAT | O_EXCL. That has the benefit of clients being able to override the lock by deleting the file and attempting to recreate it, and clients can get more information on the lock setter. That is, they could know when the lock was last set (from the mtime), or if you write some information to the file about the node that set the lock, you know who set it (and/or why they set it, other information, etc). So, whatever program you're writing can make a more informed decision on whether the lock is stale and whether to override the lock. One thing to keep in mind is that filesystem-level locks like flock go away if the process holding them unexpectedly dies (or closes the file for any other reason). Usually that's desirable, since the lock doesn't stay held if you segfault or whatever, but if you have one process holding the lock for something being done by another process, it may not be a good thing. -- Andrew Deason [email protected] _______________________________________________ OpenAFS-info mailing list [email protected] https://lists.openafs.org/mailman/listinfo/openafs-info
