Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1704497

Summary: DBAPIError exception when trying to update agents
Product: Red Hat OpenStack Reporter: Priscila <pveiga>
Component: openstack-neutronAssignee: Nate Johnston <njohnston>
Status: CLOSED DUPLICATE QA Contact: Nate Johnston <njohnston>
Severity: high Docs Contact:
Priority: unspecified    
Version: 13.0 (Queens)CC: amuller, chrisw, njohnston, scohen
Target Milestone: ---Keywords: ZStream
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-08-23 14:15:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Priscila 2019-04-29 23:07:49 UTC
Customer is facing

ERROR oslo_service.service NovaException: Unsupported VIF type binding_failed convert '_nova_to_osvif_vif_binding_failed'

and even after update the DB as solution https://access.redhat.com/solutions/3465681 propose, the problem persists. 

In neutron/server.log we found what seems to be the RC of the problem

ERROR oslo_db.sqlalchemy.exc_filters [req-c5e094e8-e792-4d2d-9847-352f10326483 - - - - -] DBAPIError exception wrapped from (pymysql.err.InternalError) (1305, u'SAVEPOINT sa_savepoint_17 does not exist') [SQL: u'ROLLBACK TO SAVEPOINT sa_savepoint_17'] (Background on this error at: http://sqlalche.me/e/2j85): InternalError: (1305, u'SAVEPOINT sa_savepoint_17 does not exist')

** This is very similar to https://bugzilla.redhat.com/show_bug.cgi?id=1567627 

https://review.opendev.org/#/c/326927/
https://review.opendev.org/#/c/326927/6/neutron/db/api.py

That was merged in 2016 and is in the code:
~~~
[root@undercloud-1 ~]# grep 'def is_retriable' -A10 -n /usr/lib/python2.7/site-packages/neutron/db/api.py
59:def is_retriable(e):
60-    if getattr(e, '_RETRY_EXCEEDED', False):
61-        return False
62-    if _is_nested_instance(e, (db_exc.DBDeadlock, exc.StaleDataError,
63-                               db_exc.DBConnectionError,
64-                               db_exc.DBDuplicateEntry, db_exc.RetryRequest,
65-                               obj_exc.NeutronDbObjectDuplicateEntry)):
66-        return True
67-    # looking savepoints mangled by deadlocks. see bug/1590298 for details.
68-    return _is_nested_instance(e, db_exc.DBError) and '1305' in str(e)
69-
~~~

the code changed a bit, but unless there's a regression, that specific upstream bug should be fixed.