yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #56176
[Bug 1616126] Re: detachedinstance error when creating router from auto allocate
Reviewed: https://review.openstack.org/359303
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=fef301979eefad717f185170bb5f7ee2ed365aaf
Submitter: Jenkins
Branch: master
commit fef301979eefad717f185170bb5f7ee2ed365aaf
Author: Kevin Benton <kevin@xxxxxxxxxx>
Date: Wed Sep 7 18:09:21 2016 -0700
Don't return ext net DB object in auto allocate
Returning a DB object for the external network and passing
that to the create_router operation makes the life of the
DB object transition many operations. If any of those operations
detech it from the session or expire it, it can result in
an exception down in the router operations.
This patch just returns the network ID since that's all we need.
Closes-Bug: #1616126
Change-Id: Ib9c4ba9f00ca7f7a713a89be4f75a230b086ac38
** Changed in: neutron
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1616126
Title:
detachedinstance error when creating router from auto allocate
Status in neutron:
Fix Released
Bug description:
Traceback below seems to be caused by passing a DB object into
create_router for the gw_info rather than a standard dict.
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource [req-152d2fff-ec6f-4049-9753-e9bcf35bd7ef tempest-AutoAllocateNetworkTest-145714278 -] show failed: No details.
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource Traceback (most recent call last):
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/api/v2/resource.py", line 79, in resource
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource result = method(request=request, **args)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 151, in wrapper
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource ectxt.value = e.inner_exc
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource self.force_reraise()
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 139, in wrapper
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource return f(*args, **kwargs)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/api.py", line 92, in wrapped
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource traceback.format_exc())
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource self.force_reraise()
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/api.py", line 87, in wrapped
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource return f(*dup_args, **dup_kwargs)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/api/v2/base.py", line 347, in show
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource parent_id=parent_id),
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/api/v2/base.py", line 310, in _item
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource obj = obj_getter(request.context, id, **kwargs)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/services/auto_allocate/db.py", line 138, in get_auto_allocated_topology
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource context, tenant_id, default_external_network)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/services/auto_allocate/db.py", line 165, in _build_topology
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource router_id=router_id, subnets=subnets)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource self.force_reraise()
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/services/auto_allocate/db.py", line 151, in _build_topology
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource context, default_external_network, subnets, tenant_id)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/services/auto_allocate/db.py", line 289, in _provision_external_connectivity
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource context, {'router': router_args})
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/api.py", line 103, in wrapped
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource return method(self, context, *args, **kwargs)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 151, in wrapper
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource ectxt.value = e.inner_exc
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource self.force_reraise()
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 139, in wrapper
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource return f(*args, **kwargs)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/api.py", line 92, in wrapped
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource traceback.format_exc())
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource self.force_reraise()
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/api.py", line 87, in wrapped
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource return f(*dup_args, **dup_kwargs)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/l3_hamode_db.py", line 474, in create_router
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource self).create_router(context, router)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/l3_db.py", line 1747, in create_router
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource router)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/api.py", line 103, in wrapped
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource return method(self, context, *args, **kwargs)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 151, in wrapper
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource ectxt.value = e.inner_exc
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource self.force_reraise()
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 139, in wrapper
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource return f(*args, **kwargs)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/api.py", line 92, in wrapped
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource traceback.format_exc())
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource self.force_reraise()
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/api.py", line 87, in wrapped
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource return f(*dup_args, **dup_kwargs)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/l3_db.py", line 273, in create_router
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource transaction=False)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/common_db_mixin.py", line 76, in safe_creation
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource 'exc': e})
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource self.force_reraise()
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/common_db_mixin.py", line 68, in safe_creation
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource value = create_bindings(obj['id'])
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/l3_db.py", line 260, in _update_gw_for_create_router
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource gw_info, router=router_db)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/l3_gwmode_db.py", line 69, in _update_router_gw_info
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource context, router_id, info, router=router)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/l3_db.py", line 517, in _update_router_gw_info
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource network_id = self._validate_gw_info(context, gw_port, info, ext_ips)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/l3_db.py", line 408, in _validate_gw_info
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource network_id = info['network_id'] if info else None
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/sqlalchemy/models.py", line 54, in __getitem__
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource return getattr(self, key)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/attributes.py", line 237, in __get__
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource return self.impl.get(instance_state(instance), dict_)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/attributes.py", line 578, in get
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource value = state._load_expired(state, passive)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/state.py", line 474, in _load_expired
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource self.manager.deferred_scalar_loader(self, toload)
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/loading.py", line 610, in load_scalar_attributes
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource (state_str(state)))
2016-08-23 12:29:55.959 18391 ERROR neutron.api.v2.resource DetachedInstanceError: Instance <ExternalNetwork at 0x7f518457ba50> is not bound to a Session; attribute refresh operation cannot proceed
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1616126/+subscriptions
References