[Zope-dev] mysql: broken abort hangs zope

seb bacon seb@jamkit.com
08 May 2003 17:59:27 +0100


A client's site had been hanging under high loads.  The problem appeared
to be that the ZMySQLDA assumed transactions in the database even if the
underlying tables were not transactional.  I fixed it by changing the
tables to be transactional.  No more hangs.  

The abort was failing thus:

2003-05-08T13:32:59 ERROR(200) ZODB A storage error occured during
transaction abort.  This shouldn't happen.
...Transaction.py, line 392, in _commit_error
AttributeError: Surrogate instance has no attribute '_p_oid'

Under "normal" circumstances an aborted transaction against a
non-transactional table produces a sensible error explaining what is
going on.  Here, somehow, the 'Surrogate' transaction had ended up with
no attributes at all.

1) Where might those attributes have gone?
2) Why might this cause Zope to hang?

Note I have only been able to reproduce the problem on the live server
so far, and therefore I've not yet had an opportunity to debug in
detail.

seb

-- 

   [] j a m k i t

        seb bacon
T:  020 7549 0520
F:  020 7490 1152
M:  07968 301 336
W: www.jamkit.com