Re-running undercloud install fails with neutron error

Bug #1552288 reported by Steven Hardy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Fix Released
Critical
Unassigned

Bug Description

If you try re-running the undercloud install, it fails when we do this step:

neutron subnet-update 4854ff1a-d12e-4dcd-a388-fff0b3c39128 --allocation-pool start=192.0.2.5,end=192.0.2.24 --gateway 192.0.2.1 --host-route destination=169.254.169.254/32,nexthop=192.0.2.1

Arguably we shouldn't need to update the subnet because nothing has changed, but we do, which makes neutron error like this:

2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource [req-20b24688-df8a-4ec9-868e-9e5bae1687c6 04bd0cb3d5c040ada632e1c74f906d58 82abd5cc02aa45e19a3a4d2ea62446f4 - - -] update failed
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource Traceback (most recent call last):
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/neutron/api/v2/resource.py", line 83, in resource
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource result = method(request=request, **args)
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/neutron/api/v2/base.py", line 579, in update
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource return self._update(request, id, body, **kwargs)
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/oslo_db/api.py", line 147, in wrapper
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource ectxt.value = e.inner_exc
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource self.force_reraise()
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/oslo_db/api.py", line 137, in wrapper
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource return f(*args, **kwargs)
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/neutron/api/v2/base.py", line 624, in _update
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource obj = obj_updater(request.context, id, **kwargs)
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/neutron/plugins/ml2/plugin.py", line 910, in update_subnet
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource context, id, subnet)
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/neutron/db/db_base_plugin_v2.py", line 680, in update_subnet
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource self._validate_subnet(context, s, cur_subnet=db_subnet)
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/neutron/db/db_base_plugin_v2.py", line 479, in _validate_subnet
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource alloc_qry = alloc_qry.join("port", "routerport")
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 1946, in join
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource from_joinpoint=from_joinpoint)
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource File "<string>", line 2, in _join
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/base.py", line 201, in generate
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource fn(self, *args[1:], **kw)
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 2026, in _join
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource descriptor = _entity_descriptor(left_entity, onclause)
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/base.py", line 383, in _entity_descriptor
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource (description, key)
2016-03-02 15:43:33.784 14387 ERROR neutron.api.v2.resource InvalidRequestError: Entity '<class 'neutron.db.models_v2.Port'>' has no property 'routerport'

Ben Nemec (bnemec)
Changed in tripleo:
status: New → Triaged
importance: Undecided → Critical
Revision history for this message
James Slagle (james-slagle) wrote :

I'm not seeing this on stable/liberty. The code that runs the subnet-update has been there for a little while, I wonder if something in neutron changed.

Revision history for this message
James Slagle (james-slagle) wrote :

i can reproduce this using master, but i also notice that even if I do change something in the subnet values, such as allocation pool end, I get the same traceback, this leads me to believe that subnet-update'ing is just broken in neutron in various ways right now.

Revision history for this message
Ben Nemec (bnemec) wrote :

Whatever the problem was, it seems to have been fixed. The CI change to test this behavior is now passing: https://review.openstack.org/#/c/279218/

Changed in tripleo:
status: Triaged → Fix Released
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.