Bo M. Maryniuck wrote at 2003-3-31 10:34 +0200:
Can somebody explain what this error means? I think this sounds like a bug in ZODB somewhere... :(
Zope: 2.6.1 OS: Linux SuSE 8.0 Pro
============================================== Traceback (innermost last):
* Module ZPublisher.Publish, line 102, in publish * Module Zope.App.startup, line 200, in commit * Module ZODB.Transaction, line 261, in commit * Module ZODB.Transaction, line 392, in _commit_error
AttributeError: Surrogate instance has no attribute '_p_oid'
When an object needs to have special treatment at transaction commit/abort, it registers either itself or a surrogate object with the transaction. The transaction expects the object registered to have a "_p_jar" attribute. It calls this object's "tpc_begin/finish/vote/commit/abort" method when the transaction commits/aborts. When "_p_jar" is a ZODB connection (the most usual case), the connection expects the object to have a "_p_oid" attribute. Apparently, one of your objects registers a surrogate with a ZODB connection as "_p_jar" but without a "_p_oid". This is definitely a bug. You must find this object and fix its class. Dieter