Updating /seen from concurrent sessions

Andrew McNamara andrewm at object-craft.com.au
Fri Nov 15 04:49:14 EST 2002


>I don't use OE but I experienced the same (or similar) problem with 
>mozilla: since it uses many concurrent connections to the server, seen 
>messages came back as unseen various times, and it was very annoying.
>Switching to skiplist almost solves the problem (at least it did for 
>me): since I switched to skiplist I had seen messages come back as 
>unseen only 2 or 3 times.

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.

With skiplist, this problem no longer occurs (the skiplist database
makes changes made by other processes visible immediately). However,
another problem remains: updates are defered for performance reasons. So
one session will update the seen list, and the other processes will not
see the change (unless they and the updating process execute certain
commands, such as NOOP).

-- 
Andrew McNamara, Senior Developer, Object Craft
http://www.object-craft.com.au/




More information about the Info-cyrus mailing list