[Mailman3-dev] Re: [RETRANSMIT] Re: [Mailman-Developers] Debate about Mailman on BytesForAll

J C Lawrence claw at kanga.nu
Thu Aug 26 23:16:09 CEST 2004


On Thu, 26 Aug 2004 16:57:55 -0400 
Kevin McCann <kmccann at bellanet.org> wrote:

> "SQLite uses POSIX advisory locks to implement locking on Unix. On
> windows it uses the LockFile(), LockFileEx(), and UnlockFile() system
> calls. SQLite assumes that these system calls all work as
> advertised. If that is not the case, then database corruption can
> result. One should note that POSIX advisory locking is known to be
> buggy or even unimplemented on many NFS implementations (including
> recent versions of Mac OS X) and that there are reports of locking
> problems for network filesystems under windows. Your best defense is
> to not use SQLite for files on a network filesystem."

I've spent some time mucking about in this area and it is a minefield.
Very simply, throwing out all of the messy details, there is only one
operation which is atomic under the network filesystems: creat (2).  The
exceptions where creat(2) is not guaranteed atomic are for some of the
more obscure cacheing network filesystes which attempt to be resilient
across intermittent/bad connectivity and node failures.  If you want to
account for those filesystems as well then sorry, there's just no
guaranteed correct locking methodology.

Yes, it is that bad.

-- 
J C Lawrence
---------(*)                Satan, oscillate my metallic sonatas.
claw at kanga.nu               He lived as a devil, eh?
http://www.kanga.nu/~claw/  Evil is a name of a foeman, as I live.


More information about the Mailman-Developers mailing list