[Zope-dev] Re: [Bug] ZODB invalidation processing
Joachim Schmitz
js at aixtraware.de
Thu May 31 06:07:49 EDT 2007
Dieter Maurer schrieb:
> Perry wrote at 2007-5-25 13:16 +0200:
>> database conflict error (oid 0x7905e6, class BTrees._IOBTree.IOBucket,
>> serial this txn started with 0x036ddc2a44454dee 2007-05-25
>> 09:14:16.000950, serial currently committed 0x036ddc2c21950377
>> 2007-05-25 09:16:07.870801) (80 conflicts (10 unresolved) since startup
>> at Fri May 25 05:19:08 2007)
>> ...
>> ConflictError: database conflict error (oid 0x7905e6, class
>> BTrees._IOBTree.IOBucket, serial this txn started with
>> 0x036ddc2b3e989fdd 2007-05-25 09:15:14.670982, serial currently
>> committed 0x036ddc2dd48f4e33 2007-05-25 09:17:49.818700)
>
> These log entries indicate a bug in ZODB's invalidation processing.
>
> The first entry tells us that the object was read at 9:14:16
> and the modification conflicts with a write from 9:16:07.
>
> The second entry tells us that the object was read at 9:15:14
> *BUT* at the time this transaction has started,
> the ZODB should already have known the modification from 9:16:07
> and the object read at 9:15:14 should have been invalidated.
> The new transaction should not have seen any state older than 9:16:07
> (as it begins after this time).
I could reproduce the conflict error on my local machine not using ZEO.
I invoked the longrunning process "create_level" for two users after a
zope-restart.
here is the log:
2007-05-31 09:44:24 INFO Zope Ready to handle requests
2007-05-31 09:44:39 INFO Skins.create_level A923157 started to create
level 200
2007-05-31 09:44:41 INFO Skins.create_level Y617041 started to create
level 400
the next two entries are printed before the redirect/commit
2007-05-31 09:45:01 INFO Skins.create_level Y617041 finished to create
level 400
2007-05-31 09:45:06 INFO Skins.create_level A923157 finished to create
level 200
Now the conflict error, look at the transaction start-time, this is
before the restart of zope !!
2007-05-31 09:45:25 INFO ZPublisher.Conflict ConflictError at
/uniben/campus/students/A923157/study_course/create_level: database
conflict error (oid 0x3360e3, class BTrees._OIBTree.OIBucket, serial
this txn started with 0x036dfd7c73dfc1dd 2007-05-31 07:24:27.157981,
serial currently committed 0x036dfd9131112455 2007-05-31
07:45:11.500069) (1 conflicts (0 unresolved) since startup at Thu May 31
09:44:24 2007)
now this is retried for A923157
2007-05-31 09:45:26 INFO Skins.create_level A923157 started to create
level 200
2007-05-31 09:45:45 INFO Skins.create_level A923157 finished to create
level 200
--
Gruß Joachim
More information about the Zope-Dev
mailing list