[ZODB-Dev] RE: Re: "Time travel" conflict errors in Zope
Malcolm Cleaton
malcolm at jamkit.com
Mon Dec 20 10:36:50 EST 2004
On Mon, 20 Dec 2004 10:21:35 -0500, Tim Peters wrote:
> [Malcolm Cleaton]
>> ConflictError: database conflict error (oid 0x10fd16,
>> serial this txn started with 0x0359debd2d2ababb
>> 2004-12-14 14:53:10.585995,
>> seria> currently committed 0x0359defb79b34a88
>> 2004-12-14 15:55:28.523521)
...
>> This traceback was seen late in the afternoon
>
> Which time zone are you in? IIRC, ZODB timestamps are given in UTC.
I'm in London, so in the winter UTC == Local Time.
> Which of the two timestamps displayed do you mean by "the timestamp on the
> committed transaction"? They're actually *both* timestamps on committed
> transactions. It says that, for oid 0x10fd16, the revision current when the
> transaction began was committed at
>
> 2004-12-14 14:53:10
>
> but that another revision was committed since then, at
>
> 2004-12-14 15:55:28
Ah! Ok, that helps my understanding, that the earlier time is the time of
the commit of the revision which was current at the start of the
transaction. Although now I think about it, it couldn't be anything else,
really.
>> and the mystery is why the "serial this txn started with" is many hours
>> in the past.
>
> Those timestamps are an hour apart, so it's unclear how one of them
> could be seen as "reasonable" but the other one "many hours in the past".
>
> What we can't guess here is when the failing transaction began. For
> example, perhaps it began at 15:55:00, oid 0x10fd16 hadn't been changed for
> about an hour (14:53:10), another transaction committed a change to oid
> 0x10fd16 28 seconds later (15:55:28), and then the current transaction tried
> to commit at 15:55:29. IOW, there's no way to deduce from the timestamps
> displayed when the current transaction started, or how long it was in
> progress. It could all have occurred in less than a second. The only
> deductions I can make from this info are that the failing transaction:
>
> 1) Began sometime (any time) between 14:53:10 and 15:55:28.
> 2) And failed to commit sometime (any time) after 15:55:28.
>
>> Although I've never come across the errors when turning a clock back, I'd
>> expect them to be in the opposite direction - a committed transaction
>> which thinks it was in the future, rather than an open transaction which
>> thinks it was opened ages ago.
>
> I agree the system clock shouldn't be relevant here.
This is all in the context of a regular Zope request, so the transaction
was begun something less than a second before it was committed. Apologies
for not including this vital information in the original question!
So, the question becomes, why was the version of the object committed at
14:53 being repeatedly loaded into transactions begun after 16:00, when a
later version was available? Given the known issue with the hard drive
filling up, it's starting to sound like this is a symptom of a broken ZEO
client cache file...?
Thanks,
Malcolm.
--
[] j a m k i t
web solutions for charities
malcolm cleaton
T: 020 7549 0520
F: 020 7490 1152
M: 07986 563852
W: www.jamkit.com
More information about the ZODB-Dev
mailing list