← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1461647] Re: HA - creating an ha router fails with internal sever error

 

*** This bug is a duplicate of bug 1461519 ***
    https://bugs.launchpad.net/bugs/1461519

** Also affects: neutron/kilo
   Importance: Undecided
       Status: New

** No longer affects: neutron/kilo

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1461647

Title:
  HA - creating an ha router fails with internal sever error

Status in neutron:
  Fix Committed

Bug description:
  When use attempts to create an ha router, the creation fails with an internal server error message. 
  After the first attempt, the command "neutron net-list" starts to fail with internal error as well. 

  The cause seems to be the creation of the ha_network. 
  After the first attempt to create the ha router, an ha_network gets created, then any access to that network (by net-list or attaching the router to it) causes an error which looks like the trace below. 

  The problem is that the ha network does not have a PortSecurityBinding
  associated with it because it is not created with the appropriate
  security_port_enabled value.

  
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource Traceback (most recent call last):
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/resource.py", line 83, in resource
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     result = method(request=request, **args)
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/base.py", line 461, in create
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     obj = obj_creator(request.context, **kwargs)
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/l3_hamode_db.py", line 376, in create_router
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     self.delete_router(context, router_dict['id'])
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 85, in __exit__
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/l3_hamode_db.py", line 372, in create_router
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     self._create_ha_interfaces(context, router_db, ha_network)
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/l3_hamode_db.py", line 328, in _create_ha_interfaces
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     l3_port_check=False)
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 85, in __exit__
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/l3_hamode_db.py", line 322, in _create_ha_interfaces
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     router.tenant_id)
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/l3_hamode_db.py", line 303, in add_ha_port
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     'name': constants.HA_PORT_NAME % tenant_id}})
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/plugins/ml2/plugin.py", line 1002, in create_port
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     result, mech_context = self._create_port_db(context, port)
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/plugins/ml2/plugin.py", line 984, in _create_port_db
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     network = self.get_network(context, result['network_id'])
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/plugins/ml2/plugin.py", line 669, in get_network
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     result = super(Ml2Plugin, self).get_network(context, id, None)
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/db_base_plugin_v2.py", line 1024, in get_network
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     return self._make_network_dict(network, fields)
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/db_base_plugin_v2.py", line 874, in _make_network_dict
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     attributes.NETWORKS, res, network)
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/common_db_mixin.py", line 163, in _apply_dict_extend_functions
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     func(*args)
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/plugins/ml2/plugin.py", line 488, in _ml2_md_extend_network_dict
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     self.extension_manager.extend_network_dict(session, netdb, result)
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/plugins/ml2/managers.py", line 804, in extend_network_dict
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     driver.obj.extend_network_dict(session, base_model, result)
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/plugins/ml2/extensions/port_security.py", line 60, in extend_network_dict
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     self._extend_port_security_dict(result, db_data)
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/plugins/ml2/extensions/port_security.py", line 67, in _extend_port_security_dict
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource     db_data['port_security'][psec.PORTSECURITY])
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource TypeError: 'NoneType' object has no attribute '__getitem__'
  2015-06-02 21:50:04.022 56731 TRACE neutron.api.v2.resource

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1461647/+subscriptions


References