<div dir="ltr">Nested commits in sqlalchemy should be seen as a single transaction on the backend, shouldn't they?<div>I don't know anything about this specific problem, but the fact that unit tests use sqlite might be a reason, since it's not really a full DBMS...</div><div><br></div><div>I think that wrapping tests in transaction also will require some changes in the architecture of the tests themselves, as many tests call the API router or the plugin which then gets a db session and open a new transaction. Furthermore, it will change the test behaviour possibly hiding errors; some operations indeed perform several distinct transactions, which in this case will be seen a single transaction.</div><div><br></div><div>What Kevin is doing here I think was the original way we used to do that in Neutron (Folsom). Then at some point we realised that due to plugin schema differences we were laving tables behind and switched to drop_all and rebuilding the schema using autogeneration at each test.</div><div><br></div><div>I think it should be ok to merge this patch. I will hold off the +A to give other core reviewers a chance to look at it.</div><div><br></div><div>Salvatore</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 18 September 2014 11:44, Maru Newby <span dir="ltr"><<a href="mailto:marun@redhat.com" target="_blank">marun@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">For legacy reasons, the Neutron test suite creates and destroys a db for each test.  There is a patch proposed to create the tables once and then ensure the tables are wiped at the end of each test [1], providing a performance improvement of ~10%.  I was wondering if this is the best way to provide isolation, since I’ve heard that isolation via per-test transactions should also work.  The patch author reported problems with this approach - apparently nested commits were not being rolled back.  Is there some trick to isolating with transactions that wouldn’t be immediately obvious?<br>
<br>
Thanks,<br>
<br>
<br>
Maru<br>
<br>
1: <a href="https://review.openstack.org/#/c/122028/" target="_blank">https://review.openstack.org/#/c/122028/</a><br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div><br></div>