Schema crash @ import_default_ri_route_target_to_service_ri

Bug #1590278 reported by Senthilnathan Murugappan
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R3.0
Fix Committed
High
Sachin Bansal
Trunk
Fix Committed
High
Sachin Bansal

Bug Description

Schema crashes if the left vn has been deleted(LR/SI was deleted). Guess schema was down when the LR/SI was deleted or so. Not sure about the trigger. Quick fix would be to check for the validity of the VNs.

Traceback (most recent call last):
  File "/usr/bin/contrail-schema", line 9, in <module>
    load_entry_point('schema-transformer==0.1dev', 'console_scripts', 'contrail-schema')()
  File "/usr/lib/python2.7/dist-packages/schema_transformer/to_bgp.py", line 840, in server_main
    main()
  File "/usr/lib/python2.7/dist-packages/schema_transformer/to_bgp.py", line 834, in main
    args)
  File "/usr/lib/python2.7/dist-packages/cfgm_common/zkclient.py", line 335, in master_election
    self._election.run(func, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/kazoo/recipe/election.py", line 48, in run
    func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/schema_transformer/to_bgp.py", line 815, in run_schema_transformer
    transformer = SchemaTransformer(args)
  File "/usr/lib/python2.7/dist-packages/schema_transformer/to_bgp.py", line 215, in __init__
    self.reinit()
  File "/usr/lib/python2.7/dist-packages/schema_transformer/to_bgp.py", line 438, in reinit
    RoutingInstanceST.locate(si_ri_name, si_ri_obj)
  File "/usr/lib/python2.7/dist-packages/schema_transformer/config_db.py", line 104, in locate
    obj = super(DBBaseST, cls).locate(key, *args)
  File "/usr/lib/python2.7/dist-packages/cfgm_common/vnc_db.py", line 64, in locate
    obj = cls(key, *args)
  File "/usr/lib/python2.7/dist-packages/schema_transformer/config_db.py", line 1780, in __init__
    self.locate_route_target()
  File "/usr/lib/python2.7/dist-packages/schema_transformer/config_db.py", line 1963, in locate_route_target
    self.import_default_ri_route_target_to_service_ri()
  File "/usr/lib/python2.7/dist-packages/schema_transformer/config_db.py", line 1896, in import_default_ri_route_target_to_service_ri
    sc = ServiceChain.get(self.service_chain)
AttributeError: 'NoneType' object has no attribute 'multi_policy_service_chains_enabled'

> /usr/lib/python2.7/dist-packages/schema_transformer/config_db.py(1896)import_default_ri_route_target_to_service_ri()
-> sc = ServiceChain.get(self.service_chain)
(Pdb) list
1891
1892 def import_default_ri_route_target_to_service_ri(self):
1893 if not self.service_chain:
1894 return
1895 import pdb; pdb.set_trace()
1896 -> sc = ServiceChain.get(self.service_chain)
1897 if sc is None or not sc.created:
1898 return
1899 left_vn = VirtualNetworkST.get(sc.left_vn)
1900 right_vn = VirtualNetworkST.get(sc.right_vn)
1901 multi_policy_enabled = (
(Pdb) self.service_chain
u'd0511a9e-bd25-41f6-be3b-c17f8765a8d3'
(Pdb) self.name
u'default-domain:admin:Public:service-d0511a9e-bd25-41f6-be3b-c17f8765a8d3-default-domain_TestPublicTenant_si_1fa30207-8323-48d5-966e-9bf6eec2d389'
(Pdb) self.virtual_network
u'default-domain:admin:Public'
 (Pdb) self.service_chain_info.__dict__
{'routing_instance': None, 'source_routing_instance': None, 'prefix': [u'100.64.0.0/29'], 'service_instance': u'default-domain:TestPublicTenant:si_1fa30207-8323-48d5-966e-9bf6eec2d389', 'service_chain_address': None}
 (Pdb) n
> /usr/lib/python2.7/dist-packages/schema_transformer/config_db.py(1897)import_default_ri_route_target_to_service_ri()
-> if sc is None or not sc.created:
 (Pdb) sc.__dict__
{'direction': u'<>', 'protocol': u'any', 'name': u'd0511a9e-bd25-41f6-be3b-c17f8765a8d3', 'created': True, 'service_list': [u'default-domain:TestPublicTenant
:si_1fa30207-8323-48d5-966e-9bf6eec2d389'], 'partially_created': False, 'sp_list': [<vnc_api.gen.resource_xsd.PortType object at 0x7efe81098ad0>], 'error_msg
': None, 'right_vn': u'default-domain:admin:Public', 'dp_list': [<vnc_api.gen.resource_xsd.PortType object at 0x7efe81098a90>], 'left_vn': u'default-domain:TestPublicTenant:snat-si-left_si_1fa30207-8323-48d5-966e-9bf6eec2d389', 'present_stale': True, 'created_stale': True}
 (Pdb) n
> /usr/lib/python2.7/dist-packages/schema_transformer/config_db.py(1899)import_default_ri_route_target_to_service_ri()
-> left_vn = VirtualNetworkST.get(sc.left_vn)
(Pdb) n
> /usr/lib/python2.7/dist-packages/schema_transformer/config_db.py(1900)import_default_ri_route_target_to_service_ri()
-> right_vn = VirtualNetworkST.get(sc.right_vn)
 (Pdb) p left_vn
None
(Pdb) n
> /usr/lib/python2.7/dist-packages/schema_transformer/config_db.py(1902)import_default_ri_route_target_to_service_ri()
-> left_vn.multi_policy_service_chains_enabled and
(Pdb) p right_vn
<schema_transformer.config_db.VirtualNetworkST object at 0x7efe80dc5f90>

Tags: config schema
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R3.0

Review in progress for https://review.opencontrail.org/21023
Submitter: Sachin Bansal (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/21024
Submitter: Sachin Bansal (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R3.0

Review in progress for https://review.opencontrail.org/21023
Submitter: Sachin Bansal (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/21023
Committed: http://github.org/Juniper/contrail-controller/commit/bec7bf8fd1c581ba9abfba136ec8557b1bb05756
Submitter: Zuul
Branch: R3.0

commit bec7bf8fd1c581ba9abfba136ec8557b1bb05756
Author: Sachin Bansal <email address hidden>
Date: Wed Jun 8 11:38:52 2016 -0700

Add check for left and right vn

left or right vn of a service chain could have been deleted while
schema transformer was down. When it comes back up, it tries to
read these networks. We should add a check for None before accessing
these networks to avoid generating a traceback.

Change-Id: If2d3ffccdc912eaa64a84e17233a2fb3e3a84477
Closes-Bug: 1590278

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote :

Reviewed: https://review.opencontrail.org/21024
Committed: http://github.org/Juniper/contrail-controller/commit/b9a4e5479392f9e07154d861a54a68965a346850
Submitter: Zuul
Branch: master

commit b9a4e5479392f9e07154d861a54a68965a346850
Author: Sachin Bansal <email address hidden>
Date: Wed Jun 8 11:38:52 2016 -0700

Add check for left and right vn

left or right vn of a service chain could have been deleted while
schema transformer was down. When it comes back up, it tries to
read these networks. We should add a check for None before accessing
these networks to avoid generating a traceback.

Change-Id: If2d3ffccdc912eaa64a84e17233a2fb3e3a84477
Closes-Bug: 1590278
(cherry picked from commit d8518b11cc9d8a49451caa51b50c334c36189cfe)

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.