[ZODB-Dev] "Time travel" conflict errors in Zope

Tim Peters tim at zope.com
Mon Dec 20 10:37:58 EST 2004


[Malcolm Cleaton]
> One of our servers, after the disk filled up, started showing some "time
> travel" conflict errors.
>
> When trying to commit a change, the error shown would say that a conflict
> occurred, and would show two dates, which appeared to be the date the
> object was loaded and the (later) date some other thread had changed it.

A ConflictError message doesn't say when the object was loaded.  WRT your
later message, "serial this txn started with" is the most recent time in the
past at which the object in question was committed, relative to the time the
failing transaction began.  For example, if I last changed a particular
object in 1976, and started a transaction today that tried to modify that
object, but got a conflict error, it's expected that the message would say
the serial I started with was from 1976.  If it's a long time in the past,
that just means the object was last modified a long time in the past.

> The strange issue was, the date the error claimed the object had been
> loaded was several hours in the past,

Now that you know it never tries to say anything about when the object was
loaded, does that still seem strange to you?

> and remained there even after restarting the server.

If no change to the object was successfully committed, then the serial of
the most recently committed change would not change.

> We were able to get rid of the errors by truncating the Data.fs. They
> later returned immediately after a cache rotation, but we deleted the
> cache files.

With what effect?  I'm really not clear on what "the errors" are here, but
whatever they were, did deleting the cache files make (or appear to make)
them "go away"?

> I feel like I'm playing whack-a-mole, and I'd prefer to understand what
> on earth could cause these "conflict" errors where there is no conflict.
>
> Can anybody shed any light?

So far, I don't think so.  As explained in my other reply, the ConflictError
you gave an actual message for didn't even look slightly odd to me.

Have you run fstest and fsrefs?  ZODB/ZEO aren't normally tested under
"oops!  we ran out of disk space" conditions, and it's plausible something
got wedged when that happened to you.  More info about fstest and fsrefs
here:

    http://zope.org/Wikis/ZODB/FileStorageBackup




More information about the ZODB-Dev mailing list