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 <ke...@benton.pub>
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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to