snat: occasionally vrouter ref not reset for si vm upon snat delete/reset

Bug #1501019 reported by Senthilnathan Murugappan
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R2.20
Invalid
Medium
Unassigned
R3.0
Fix Committed
Medium
Rudra Rugge
R3.1
Fix Committed
Medium
Rudra Rugge
Trunk
Fix Committed
Medium
Rudra Rugge

Bug Description

Python 2.7.6: /usr/bin/python
Tue Sep 29 07:10:56 2015

A problem occurred in a Python script. Here is the sequence of
function calls leading up to the error, in the order they occurred.

 /usr/lib/python2.7/dist-packages/svc_monitor/svc_monitor.py in _delete_service_instance(self=<svc_monitor.svc_monitor.SvcMonitor object>, vm=<svc_monitor.config_db.VirtualMachineSM object>)
  707 self.vm_manager.delete_service(vm)
  708 elif vm.virtualization_type == svc_info.get_netns_instance_type():
  709 self.netns_manager.delete_service(vm)
  710 elif vm.virtualization_type == 'vrouter-instance':
  711 self.vrouter_manager.delete_service(vm)
self = <svc_monitor.svc_monitor.SvcMonitor object>
self.netns_manager = <svc_monitor.instance_manager.NetworkNamespaceManager object>
self.netns_manager.delete_service = <bound method NetworkNamespaceManager.delete_ser...instance_manager.NetworkNamespaceManager object>>
vm = <svc_monitor.config_db.VirtualMachineSM object>

 /usr/lib/python2.7/dist-packages/svc_monitor/instance_manager.py in delete_service(self=<svc_monitor.instance_manager.NetworkNamespaceManager object>, vm=<svc_monitor.config_db.VirtualMachineSM object>)
  516 (vm_obj.get_fq_name_str(), vr_obj.get_fq_name_str()))
  517
  518 self._vnc_lib.virtual_machine_delete(id=vm.uuid)
  519
  520 def check_service(self, si):
self = <svc_monitor.instance_manager.NetworkNamespaceManager object>
self._vnc_lib = <vnc_api.vnc_api.VncApi object>
self._vnc_lib.virtual_machine_delete = <bound method VncApi.virtual_machine_delete of <vnc_api.vnc_api.VncApi object>>
builtinid = <built-in function id>
vm = <svc_monitor.config_db.VirtualMachineSM object>
vm.uuid = u'ae0768d8-618b-47cc-92d0-6fd2c8c05f6d'

 /usr/lib/python2.7/dist-packages/vnc_api/gen/vnc_api_client_gen.py in virtual_machine_delete(self=<vnc_api.vnc_api.VncApi object>, fq_name=None, id=u'ae0768d8-618b-47cc-92d0-6fd2c8c05f6d', ifmap_id=None)
 3529 uri = vnc_api.gen.resource_client.VirtualMachine.resource_uri_base['virtual-machine'] + '/' + id
 3530
 3531 content = self._request_server(rest.OP_DELETE, uri)
 3532 #end virtual_machine_delete
 3533
content undefined
self = <vnc_api.vnc_api.VncApi object>
self._request_server = <bound method VncApi._request_server of <vnc_api.vnc_api.VncApi object>>
global rest = <module 'cfgm_common.rest' from '/usr/lib/python2.7/dist-packages/cfgm_common/rest.pyc'>
rest.OP_DELETE = 4
uri = u'/virtual-machine/ae0768d8-618b-47cc-92d0-6fd2c8c05f6d'

 /usr/lib/python2.7/dist-packages/vnc_api/vnc_api.py in _request_server(self=<vnc_api.vnc_api.VncApi object>, op=4, url=u'/virtual-machine/ae0768d8-618b-47cc-92d0-6fd2c8c05f6d', data=None, retry_on_error=True, retry_after_authn=False, retry_count=30)
  366 return self._request(op, url, data=data, retry_on_error=retry_on_error,
  367 retry_after_authn=retry_after_authn,
  368 retry_count=retry_count)
  369
  370 def _request(self, op, url, data=None, retry_on_error=True,
retry_count = 30

 /usr/lib/python2.7/dist-packages/vnc_api/vnc_api.py in _request(self=<vnc_api.vnc_api.VncApi object>, op=4, url=u'/virtual-machine/ae0768d8-618b-47cc-92d0-6fd2c8c05f6d', data=None, retry_on_error=True, retry_after_authn=False, retry_count=30)
  411 raise PermissionDenied(content)
  412 elif status == 409:
  413 raise RefsExistError(content)
  414 elif status == 504:
  415 # Request sent to API server, but no response came within 50s
global RefsExistError = <class 'cfgm_common.exceptions.RefsExistError'>
content = u'Back-References from http://10.84.25.27:8082/v...b38c0011-7d4b-47da-93d3-73d600a41b8f still exist'
<class 'cfgm_common.exceptions.RefsExistError'>: Back-References from http://10.84.25.27:8082/virtual-router/b38c0011-7d4b-47da-93d3-73d600a41b8f still exist
    __class__ = <class 'cfgm_common.exceptions.RefsExistError'>
    __delattr__ = <method-wrapper '__delattr__' of RefsExistError object>
    __dict__ = {}
    __doc__ = None
    __format__ = <built-in method __format__ of RefsExistError object>
    __getattribute__ = <method-wrapper '__getattribute__' of RefsExistError object>
    __getitem__ = <method-wrapper '__getitem__' of RefsExistError object>
    __getslice__ = <method-wrapper '__getslice__' of RefsExistError object>
    __hash__ = <method-wrapper '__hash__' of RefsExistError object>
    __init__ = <method-wrapper '__init__' of RefsExistError object>
    __module__ = 'cfgm_common.exceptions'
    __new__ = <built-in method __new__ of type object>
    __reduce__ = <built-in method __reduce__ of RefsExistError object>
    __reduce_ex__ = <built-in method __reduce_ex__ of RefsExistError object>
    __repr__ = <method-wrapper '__repr__' of RefsExistError object>
    __setattr__ = <method-wrapper '__setattr__' of RefsExistError object>
    __setstate__ = <built-in method __setstate__ of RefsExistError object>
    __sizeof__ = <built-in method __sizeof__ of RefsExistError object>
    __str__ = <method-wrapper '__str__' of RefsExistError object>
    __subclasshook__ = <built-in method __subclasshook__ of type object>
    __unicode__ = <built-in method __unicode__ of RefsExistError object>
    __weakref__ = None
    args = (u'Back-References from http://10.84.25.27:8082/v...b38c0011-7d4b-47da-93d3-73d600a41b8f still exist',)
    message = u'Back-References from http://10.84.25.27:8082/v...b38c0011-7d4b-47da-93d3-73d600a41b8f still exist'

The above is a description of an error in a Python program. Here is
the original traceback:

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/svc_monitor/svc_monitor.py", line 709, in _delete_service_instance
    self.netns_manager.delete_service(vm)
  File "/usr/lib/python2.7/dist-packages/svc_monitor/instance_manager.py", line 518, in delete_service
    self._vnc_lib.virtual_machine_delete(id=vm.uuid)
  File "/usr/lib/python2.7/dist-packages/vnc_api/gen/vnc_api_client_gen.py", line 3531, in virtual_machine_delete
    content = self._request_server(rest.OP_DELETE, uri)
  File "/usr/lib/python2.7/dist-packages/vnc_api/vnc_api.py", line 368, in _request_server
    retry_count=retry_count)
  File "/usr/lib/python2.7/dist-packages/vnc_api/vnc_api.py", line 413, in _request
    raise RefsExistError(content)
RefsExistError: Back-References from http://10.84.25.27:8082/virtual-router/b38c0011-7d4b-47da-93d3-73d600a41b8f still exist

Tags: snat
Changed in juniperopenstack:
milestone: none → r2.22
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Bug update]

bug update...

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.