[Zope] Rollback and delete weird behavior
Luiz Fernando B. Ribeiro
luiz at engenhosolucoes.com.br
Sat Jul 1 13:24:44 EDT 2006
Hello,
In a python script I got a structure like this:
# Many request checks
# A zSQl method deleting some old data
cotainer.doDelete(key=key)
errors = [ ]
for data in list:
# Other checks
if error:
errors.append(error)
continue
# Inserts in mysql database
cotainer.doInsert(data=data, other=stuff)
if errors:
raise "An Error with list of error: %s" % ', '.join(errors)
# --- cut ---
The problem is that the raise is not rolling back the delete, looking in
mysql log the following sequence was found:
--Begin transaction
[delete statement]
[the insert statements]
--Rollback
--Begin transaction !!
[delete statement again] !!
--Commit !!!
We tried it many times and revised our code. The only solution was to
put the delete statement in weird block like this:
if True:
cotainer.doDelete(key=key)
As if the rollback was only effective against a "2nd level" instruction.
This is a really odd behavior but with this trick the rollback was done
correctly.
Has anyone ever seen this?
Luiz Fernando B. Ribeiro
More information about the Zope
mailing list