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.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.
Larry