After a kube-manager failover scenario, KM repeatedly trying to delete stale VM object
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Juniper Openstack | Status tracked in Trunk | |||||
R4.0 |
Fix Committed
|
High
|
Yuvaraja Mariappan | |||
Trunk |
Fix Committed
|
High
|
Yuvaraja Mariappan |
Bug Description
R4.0.1.0 Continuous Build 22 Ubuntu 16.04.2 containers
Logs : http://
On a 3 controller, 3 kube-manager setup, i stopped all containers on one of the nodes and trying to delete and add 2 pods during that time.
Pod 3f43c2cf-
KM log had this :
Traceback (most recent call last):
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
super(
File "/usr/lib/
del cls._ann_
KeyError: (u'default', u'k8s-default', u'k8s', u'Pod', u'busybox')
It is seen that kube-manager is repeatedly trying to delete it as shown below even though the object does not exist in cassandra
08/16/2017 07:01:24 PM [contrail-
08/16/2017 07:01:24 PM [contrail-
Python 2.7.12: /usr/bin/python
Wed Aug 16 19:01:24 2017
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/
374 uid = metadata.get('uid')
375 if kind == 'Pod':
376 self.pod_
377 elif kind == 'Service':
378 self.service_
self = <kube_manager.
self.pod_mgr = <kube_manager.
self.pod_
event = {'object': {'kind': 'Pod', 'metadata': {'labels': None, 'uid': u'3f43c2cf-
/usr/lib/
496 pod_namespace, pod_node, labels, vm_vmi)
497 if vm:
498 self._network_
499 elif event['type'] == 'DELETED':
500 self.vnc_
self = <kube_manager.
self.vnc_pod_delete = <bound method VncPod.
pod_id = u'3f43c2cf-
/usr/lib/
409 # So explicitly update this entry in config db.
410 if not vm.virtual_router:
411 vm.update()
412
413 self._clear_
vm = <kube_manager.
vm.update = <bound method VirtualMachineK
/usr/lib/
451 def update(self, obj=None):
452 if obj is None:
453 obj = self.read_
454 self.name = obj['fq_name'][-1]
455 self.fq_name = obj['fq_name']
obj = None
self = <kube_manager.
self.read_obj = <bound method __metaclass_
self.uuid = u'3f43c2cf-
/usr/lib/
305 def read_obj(cls, uuid, obj_type=None, fields=None):
306 ok, objs = cls._object_
307 field_names=fields)
308 if not ok:
309 cls._logger.error(
field_names undefined
fields = None
/usr/lib/
466 self._cassandra
467
468 return func(*args, **kwargs)
469 except (AllServersUnav
470 if self._conn_state != ConnectionStatu
func = <bound method VncCassandraCli
args = ('virtual_machine', [u'3f43c2cf-
kwargs = {'field_names': None}
/usr/lib/
813 if not obj_dicts:
814 if len(obj_uuids) == 1:
815 raise NoIdError(
816 else:
817 return (True, [])
global NoIdError = <class 'cfgm_common.
obj_uuids = [u'3f43c2cf-
<class 'cfgm_common.
__class__ = <class 'cfgm_common.
__delattr__ = <method-wrapper '__delattr__' of NoIdError object>
__dict__ = {'_unknown_id': u'3f43c2cf-
__doc__ = None
__format__ = <built-in method __format__ of NoIdError object>
__getattrib
__getitem__ = <method-wrapper '__getitem__' of NoIdError object>
__getslice__ = <method-wrapper '__getslice__' of NoIdError object>
__hash__ = <method-wrapper '__hash__' of NoIdError object>
__init__ = <bound method NoIdError.__init__ of NoIdError()>
__module__ = 'cfgm_common.
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of NoIdError object>
__reduce_ex__ = <built-in method __reduce_ex__ of NoIdError object>
__repr__ = <method-wrapper '__repr__' of NoIdError object>
__setattr__ = <method-wrapper '__setattr__' of NoIdError object>
__setstate__ = <built-in method __setstate__ of NoIdError object>
__sizeof__ = <built-in method __sizeof__ of NoIdError object>
__str__ = <bound method NoIdError.__str__ of NoIdError()>
__subclassh
__unicode__ = <built-in method __unicode__ of NoIdError object>
__weakref__ = None
_unknown_id = u'3f43c2cf-
args = ()
message = ''
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/
self.
File "/usr/lib/
self.
File "/usr/lib/
vm.update()
File "/usr/lib/
obj = self.read_
File "/usr/lib/
field_
File "/usr/lib/
return func(*args, **kwargs)
File "/usr/lib/
raise NoIdError(
NoIdError: Unknown id: 3f43c2cf-
summary: |
- After a kube-manager failover scenario, KM is trying to delete stale VM - object + After a kube-manager failover scenario, KM repeatedly trying to delete + stale VM object |
Review in progress for https:/ /review. opencontrail. org/34728
Submitter: Yuvaraja Mariappan