instance_create() DB API method implicitly creates additional DB transactions
Bug #1362233 reported by
Roman Podoliaka
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Undecided
|
Roman Podoliaka | ||
Icehouse |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
In DB API code we have a notion of 'public' and 'private' methods. The former are conceptually executed within a *single* DB transaction and the latter can either create a new transaction or participate in the existing one. The whole point is to be able to roll back the results of DB API methods easily and be able to retry method calls on connection failures. We had a bp (https:/
instance_create() is one of the methods that currently violates the rules of 'public' DB API methods and creates a concurrent transaction implicitly.
Changed in nova: | |
assignee: | nobody → Roman Podoliaka (rpodolyaka) |
Changed in nova: | |
status: | New → In Progress |
Changed in nova: | |
milestone: | none → juno-rc1 |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | juno-rc1 → 2014.2 |
To post a comment you must log in.
Reviewed: https:/ /review. openstack. org/115255 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=dbc46b99cc8 5402c087bb214c1 20bce2c65dfea9
Committed: https:/
Submitter: Jenkins
Branch: master
commit dbc46b99cc85402 c087bb214c120bc e2c65dfea9
Author: Roman Podoliaka <email address hidden>
Date: Tue Aug 19 14:05:50 2014 +0300
Add _security_ group_ensure_ default( ) DBAPI method
According to the convention we use for DB API methods, every public
method should have a private counterpart. The difference between
those two is that the latter accepts an optional 'session' argument,
which makes it possible for the method to participate in the existing
database transaction.
security_ group_ensure_ default( ) was called inside instance_create()
and thus implicitly created a new concurrent db transaction, which
is now fixed by making a call to a private counterpart and passing
the session instance.
Closes-Bug: #1362233
Change-Id: Ifa1b6430328fde 1ab0984f726bd83 92bbd3f7ee5