Re: Updating /seen from concurrent sessions

From: Lawrence Greenfield (leg plus at andrew dot cmu dot edu)
Date: Fri Nov 15 2002 - 10:08:52 EST


--On Friday, November 15, 2002 8:49 PM +1100 Andrew McNamara
<> wrote:

> I suspect there is a bug in the flat-file seen implementation. Each
> process opens the seen file and holds this file descriptor open. Then one
> process wants to update the file. It does this by writing a new file,
> and renaming it into place. But all the other processes still have the
> now unlinked and out of date copy open.

I'm still very dubious about this explanation. If you examine cyrusdb_flat,
you'll see that "fetch()" calls "starttxn_or_refetch()", which either locks
the file and makes sure we have the latest version or (if it's in a
non-transactional read) makes sure it's reasonably up to date.

Larry








Hosted Email Solutions

Invaluement Anti-Spam DNSBLs



Powered By FreeBSD   Powered By FreeBSD