Neutron DB is made inconsistent when plugin fails
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Expired
|
Undecided
|
Unassigned |
Bug Description
Numerous issues identified due to the fact that there is no transactional consistency between Neutrons own Database operations and implementing plugin operations.
Specifically issue identified with the use of NSXV plugin.
Situation#1:
- Load Balancer being created
- Healthmonitor created
- Pool created
- Provisioning fails due to NSX Manager API error assigning the monitor to the pool
- Yet, details of the pool association are recorded into the Neutron Database
- Subsequent deletion of the pool will fail inside NSXV plugin due to DB inconsistency
Situation#2:
- Similar situation
- Pool creation may fail due to NSX issues
- Neutron erroneously records the new pool details despite the provisioning errors
- Deletion attempts of such pool will fail
Situation#3:
- Security group creation
- Security group fails to create firewall section in NSXV, but group is recorded in Openstack
- Deletion attempts of this group will fail
General note:
- Can the MySQL Database transaction wrap be used as a general rule to prevent inconsistent DB updates where backing plugin actions result in an exception ?
Even though NSXV is clearly identified as a culprit in this case, other plugins may easily fail in exactly the same way. End to end API call consistency is important, as partial updates may harm operations in a variety of ways.
Neutron Version: Mitaka as supplied with VMWARE Integrated Openstack 3.1
NSX Version: 6.3.0
Mitaka is EOL now. Are you able to reproduce the issue with the latest stable Pike version?