[Zope-dev] Re: [ZODB-Dev] Re: [Bug] ZODB invalidation processing
Joachim Schmitz
js at aixtraware.de
Mon May 28 14:03:47 EDT 2007
Joachim Schmitz schrieb:
> Hi Dieter,
>
> thanks for this hint.
>
> 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)
>>
>> In our private Zope version, I have still a note like this:
>>
>> # DM 2005-08-22: always call '_flush_invalidations' as it does
>> # more than cache handling only
>> self._flush_invalidations()
>> if self._reset_counter != global_reset_counter:
>> # New code is in place. Start a new cache.
>> self._resetCache()
>> # DM 2005-08-22: always call '_flush_invalidations'
>> ## else:
>> ## self._flush_invalidations()
>>
>> The note indicates that the bug was fixed at least at 2005-08-22
>> (though the handling was not completely right in case the cache
>> was reset).
> In ZODB.Connection.Connection.open I see:
>
> if self._reset_counter != global_reset_counter:
> # New code is in place. Start a new cache.
> self._resetCache()
> else:
> self._flush_invalidations()
>
> So self._flush_invalidations() is only called in the else-condition.
> In your patch it is always called. I try your version and report back.
>
I patched the ZODB to always do the self._flush_invalidations(). But
that didn't change anything, and after looking at the code it couldn't
cause it was already always called.
here again is the history of a conflict error for one user which finally
fails:
2007-05-28T18:32:12 INFO ZPublisher.Conflict ConflictError at
/VirtualHostBase/http/uniben.waeup.org:80/uniben/VirtualHostRoot/campus/students/V659242/study_course/create_level:
database conflict error (oid 0x7fd771, class BTrees._IOBTree.IOBucket,
serial this txn started with 0x036deefb352fd600 2007-05-28
17:31:12.465670, serial currently committed 0x036deefb9aa4d733
2007-05-28 17:31:36.244666) (34 conflicts (4 unresolved) since startup
at Mon May 28 17:41:55 2007)
2007-05-28T18:32:44 INFO ZPublisher.Conflict ConflictError at
/VirtualHostBase/http/uniben.waeup.org:80/uniben/VirtualHostRoot/campus/students/V659242/study_course/create_level:
database conflict error (oid 0x7fd771, class BTrees._IOBTree.IOBucket,
serial this txn started with 0x036deefb9aa4d733 2007-05-28
17:31:36.244666, serial currently committed 0x036deefc2e4ff122
2007-05-28 17:32:10.854439) (35 conflicts (4 unresolved) since startup
at Mon May 28 17:41:55 2007)
2007-05-28T18:33:15 INFO Skins.create_level V659242 finished to create
level 1002007-05-28T18:34:29 INFO ZPublisher.Conflict ConflictError at
/VirtualHostBase/http/uniben.waeup.org:80/uniben/VirtualHostRoot/campus/students/V659242/study_course/create_level:
database conflict error (oid 0x7fd771, class BTrees._IOBTree.IOBucket,
serial this txn started with 0x036deefc2e4ff122 2007-05-28
17:32:10.854439, serial currently committed 0x036deefe18489244
2007-05-28 17:34:05.691441) (36 conflicts (4 unresolved) since startup
at Mon May 28 17:41:55 2007)
2007-05-28T18:35:21 INFO Skins.create_level V659242 finished to create
level 1002007-05-28T18:38:36 INFO ZPublisher.Conflict ConflictError at
/VirtualHostBase/http/uniben.waeup.org:80/uniben/VirtualHostRoot/campus/students/V659242/study_course/create_level:
database conflict error (oid 0x7fd771, class BTrees._IOBTree.IOBucket,
serial this txn started with 0x036deefe18489244 2007-05-28
17:34:05.691441, serial currently committed 0x036def009207e011
2007-05-28 17:36:34.225960) (42 conflicts (4 unresolved) since startup
at Mon May 28 17:41:55 2007)
------
2007-05-28T18:38:36 ERROR Zope.SiteErrorLog
http://uniben.waeup.org/campus/students/V659242/study_course/create_level
Traceback (innermost last):
Module Zope2.App.startup, line 173, in zpublisher_exception_hook
Module ZPublisher.Publish, line 121, in publish
Module Zope2.App.startup, line 240, in commit
Module transaction._manager, line 96, in commit
Module Products.CPSCompat.PatchZODBTransaction, line 175, in commit
Module transaction._transaction, line 436, in _commitResources
Module ZODB.Connection, line 665, in tpc_vote
Module ZEO.ClientStorage, line 893, in tpc_vote
Module ZEO.ClientStorage, line 877, in _check_serials
ConflictError: database conflict error (oid 0x7fd771, class
BTrees._IOBTree.IOBucket, serial this txn started with
0x036deefe18489244 2007-05-28 17:34:05.691441, serial currently
committed 0x036def009207e011 2007-05-28 17:36:34.225960)
------
How can I find out, which objects are really involved in the conflict.
--
Gruß Joachim
More information about the Zope-Dev
mailing list