[Buildbot-devel] sqlalchemy putting several operations into transactions

Maria Marcano mariangemarcano at gmail.com
Sun Nov 24 00:39:15 UTC 2013


Ok, the problem really was the following: MyISAM buidbot's storage engine
for mysql does not support transactions.

I've changed only the buildrequest_claims table to InnoDB engine and the
code I was trying works as expected (no need to set autocommit as there is
an explicit transaction).

but the documentations says we can't support InnoDB, so what can we do?.

thank you,
Maria

Source Info: http://docs.buildbot.net/0.8.6/manual/cfg-global.html#mysql
"MySQL defaults to the MyISAM storage engine, but this can be overridden
with thestorage_engine URL argument. Note that, because of InnoDB's
extremely short key length limitations, it cannot be used to run Buildbot.
See http://bugs.mysql.com/bug.php?id=4541for more information."


On Fri, Nov 22, 2013 at 4:41 PM, Dustin J. Mitchell <dustin at v.igoro.us>wrote:

> Correct - Buildbot never disables autocommit.  So I think you may have
> discovered a pretty substantial flaw in the Buildbot DB connector.
>
> Rather than disable autocommit for the cases where we want to do
> rollbacks, I wonder if we could handle this in the DB pool.  Before
> calling a DB method in its thread, disable autocommit on the
> connector.  Then, when the method returns successfully, call
> conn.commit().  In a way, this means Buildbot is doing its own version
> of autocommit -- but after each method, rather than after each query.
>
> Does that make sense?  Do you want to work up a patch to Buildbot
> itself to fix this?
>
> Dustin
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://buildbot.net/pipermail/devel/attachments/20131124/1b9862d6/attachment.html>


More information about the devel mailing list