ST crashing in add_rules for network policy
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Juniper Openstack | Status tracked in Trunk | |||||
R3.0 |
Fix Committed
|
High
|
Praneet Bachheti | |||
Trunk |
Fix Committed
|
High
|
Praneet Bachheti |
Bug Description
3.0 2726
convert list to set before attempting union. traceback:
<type 'exceptions.
Python 2.7.6: /usr/bin/python
Mon Mar 21 13:31:47 2016
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/bin/
6
7 if __name__ == '__main__':
8 sys.exit(
9 load_entry_
10 )
load_entry_point = <function load_entry_point>
/usr/lib/
829 def server_main():
830 cgitb.enable(
831 main()
832 # end server_main
833
global main = <function main>
/usr/lib/
823 _zookeeper_
824 os.getpid(), run_schema_
825 args)
826 # end main
827
args = Namespace(
/usr/lib/
333 def master_
334 self._election = self._zk_
335 self._election.
336 # end master_election
337
self = <cfgm_common.
self._election = <kazoo.
self._election.run = <bound method Election.run of <kazoo.
func = <function run_schema_
args = (Namespace(
kwargs = {}
/usr/lib/
46 try:
47 with self.lock:
48 func(*args, **kwargs)
49
50 except CancelledError:
func = <function run_schema_
args = (Namespace(
kwargs = {}
/usr/lib/
804
805 global transformer
806 transformer = SchemaTransform
807 gevent.
808 # end run_schema_
global transformer = None
global SchemaTransformer = <class 'schema_
args = Namespace(
/usr/lib/
211 DBBaseST._vnc_lib = _vnc_lib
212 ServiceChain.init()
213 self.reinit()
214 # create cpu_info object to send periodic updates
215 sysinfo_req = False
self = <schema_
self.reinit = <bound method SchemaTransform
/usr/lib/
429 RoutingInstance
430
431 NetworkPolicyST
432 gevent.sleep(0.001)
433 VirtualMachineI
global NetworkPolicyST = <class 'schema_
NetworkPolicyST
/usr/lib/
97 def reinit(cls):
98 for obj in cls.list_vnc_obj():
99 cls.locate(
100 # reinit
101
cls = <class 'schema_
cls.locate = <bound method __metaclass_
obj = <vnc_api.
obj.get_fq_name_str = <bound method NetworkPolicy.
/usr/lib/
102 @classmethod
103 def locate(cls, key, *args):
104 obj = super(DBBaseST, cls).locate(key, *args)
105 if obj.obj.uuid not in cls._uuid_
106 cls._uuid_
obj undefined
builtinsuper = <type 'super'>
global DBBaseST = <class 'schema_
cls = <class 'schema_
).locate = <bound method __metaclass_
key = u'default-
args = (<vnc_api.
/usr/lib/
62 if key not in cls._dict:
63 try:
64 obj = cls(key, *args)
65 cls._dict[key] = obj
66 return obj
obj undefined
cls = <class 'schema_
key = u'default-
args = (<vnc_api.
/usr/lib/
1439 self.referred_
1440 # policies referring to this policy as src or dst
1441 self.update(obj)
1442 for vn_ref in self.obj.
1443 vn_name = ':'.join(
self = <schema_
self.update = <bound method NetworkPolicyST
obj = <vnc_api.
/usr/lib/
1473 def update(self, obj=None):
1474 self.obj = obj or self.read_
1475 self.add_
1476 # end update
1477
self = <schema_
self.add_rules = <bound method NetworkPolicyST
self.obj = <vnc_api.
self.obj.
/usr/lib/
1490 si_set.
1491 if prule.action_
1492 si_set = si_set.
1493 for addr in prule.src_addresses + prule.dst_
1494 if addr.network_
si_set = set([])
si_set.union = <built-in method union of set object>
prule = <vnc_api.
prule.action_list = <vnc_api.
prule.action_
<type 'exceptions.
__class__ = <type 'exceptions.
__delattr__ = <method-wrapper '__delattr__' of exceptions.
__dict__ = {}
__doc__ = 'Inappropriate argument type.'
__format__ = <built-in method __format__ of exceptions.
__getattrib
__getitem__ = <method-wrapper '__getitem__' of exceptions.
__getslice__ = <method-wrapper '__getslice__' of exceptions.
__hash__ = <method-wrapper '__hash__' of exceptions.
__init__ = <method-wrapper '__init__' of exceptions.
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of exceptions.
__reduce_ex__ = <built-in method __reduce_ex__ of exceptions.
__repr__ = <method-wrapper '__repr__' of exceptions.
__setattr__ = <method-wrapper '__setattr__' of exceptions.
__setstate__ = <built-in method __setstate__ of exceptions.
__sizeof__ = <built-in method __sizeof__ of exceptions.
__str__ = <method-wrapper '__str__' of exceptions.
__subclassh
__unicode__ = <built-in method __unicode__ of exceptions.
args = ("unhashable type: 'list'",)
message = "unhashable type: 'list'"
The above is a description of an error in a Python program. Here is
the original traceback:
Traceback (most recent call last):
File "/usr/bin/
load_
File "/usr/lib/
main()
File "/usr/lib/
args)
File "/usr/lib/
self.
File "/usr/lib/
func(*args, **kwargs)
File "/usr/lib/
transformer = SchemaTransform
File "/usr/lib/
self.reinit()
File "/usr/lib/
NetworkPoli
File "/usr/lib/
cls.
File "/usr/lib/
obj = super(DBBaseST, cls).locate(key, *args)
File "/usr/lib/
obj = cls(key, *args)
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
si_set = si_set.
TypeError: unhashable type: 'list'
description: | updated |
description: | updated |
Review in progress for https:/ /review. opencontrail. org/18584
Submitter: Sachin Bansal (<email address hidden>)