[Zope] ZODB A storage error occured during transaction abort.

Dennis Allison allison at sumeru.stanford.EDU
Tue Jan 13 21:53:42 EST 2004


This is new in code that has been running for ages.  The impact is
significant--it brings the system to a halt, restarting is the only 
option.  The database appears to have been left unsullied.

QLOG is a ZSQL method that saves some data in the database.  It
references an external method that generates a string that's guaranteed 
to be unique.  It keeps its persistent state in the local file system 
and uses file locking--all outside of the usual Zope context.  The 
database method references a Zope python script method which computes
a portion of the SQL query.  There's nothing unusual about the script 
but for the fact that it embeds a sub-procedure.

I read Dieter's lucid description of the source of this error in the
mailing list archives, but I am at a loss to identify the method that 
registers the surrogate and does not have an _p_oid instance.

This is all running on Zope 2.6.2b3, Python 2.3.1, RH7.3.

I know there was a bug in 2.6.1 of this sort, but I believe it was
expunged.

>From the error log:

2004-01-13T17:15:21 ERROR(200) ZODB A storage error occured during
transaction abort.  This shouldn't happen.
Traceback (innermost last):
  File /home/zopesys/lib/python/ZODB/Transaction.py, line 262, in commit
  File /home/zopesys/lib/python/ZODB/Transaction.py, line 393, in
_commit_error
AttributeError: Surrogate instance has no attribute '_p_oid'
------
2004-01-13T17:15:21 INFO(0) ZODB conflict error at /lms/QLOG (2 conflicts
since startup at 2004-01-13T12:24:00)
------
2004-01-13T17:29:07 INFO(0) Z2 Caught signal SIGTERM
------
2004-01-13T17:29:07 INFO(0) Z2 Closing all open ZODB databases
------


Any help tracking this one down appreciated.




More information about the Zope mailing list