← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1452697] Re: Error Instance can't be deleted when its host is NULL

 

@yjx (yjx1991):

The version "2013.2.b1" you've referenced to has reached 
"End-Of-Life" [1]. I tried to reproduce the issue as you described with
the current master branch [2]:
* launch an instance (in Horizon)
* log in to mysql database
* in the table "instances" set the field "host" to NULL
* delete instance (in Horizon)

The instance was successfully deleted. The db entry of the instance has
the "deleted" flag:

    mysql> select display_name, hostname, host, deleted from instances;
    +--------------+----------+------+---------+
    | display_name | hostname | host | deleted |
    +--------------+----------+------+---------+
    | test         | test     | NULL |       1 |
    +--------------+----------+------+---------+

The code you referenced to was replaced since stable/icehouse [3].

I set the bug to "invalid". If I understood in a wrong way and you 
could provide more information, please feel free to set the bug to "new"
again.

References:
[1] https://wiki.openstack.org/wiki/Releases
[2] nova: c9ad9549 2015-06-12 libvirt: convert imagebackend to suppo...
[3] https://github.com/openstack/nova/blob/stable/icehouse/nova/compute/api.py#L1484
    https://github.com/openstack/nova/blob/stable/icehouse/nova/objects/instance.py#L354

** Changed in: nova
       Status: Incomplete => Invalid

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1452697

Title:
  Error Instance can't be deleted when its host is NULL

Status in OpenStack Compute (Nova):
  Invalid

Bug description:
       When I created an instance,it failed and VM-state is ERROR.I query the table which named nova.instances ,host is NULL,it results to that I can't be able to delete this instance .
  the log is :
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack Traceback (most recent call last):
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/api/openstack/__init__.py", line 119, in __call__
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     return req.get_response(self.application)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     application, catch_exc_info=False)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     app_iter = application(self.environ, start_response)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     return resp(environ, start_response)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/keystoneclient/middleware/auth_token.py", line 690, in __call__
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     return self.app(env, start_response)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     return resp(environ, start_response)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     return resp(environ, start_response)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     response = self.app(environ, start_response)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     return resp(environ, start_response)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     content_type, body, accept)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py", line 997, in _process_stack
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     action_result = self.dispatch(meth, request, action_args)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py", line 1078, in dispatch
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     return method(req=request, **action_args)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/api/openstack/compute/servers.py", line 989, in _delete
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     self.compute_api.delete(context, instance)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 202, in wrapped
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     return func(self, context, target, *args, **kwargs)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 192, in inner
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     return function(self, context, instance, *args, **kwargs)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 219, in _wrapped
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     return fn(self, context, instance, *args, **kwargs)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 173, in inner
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     return f(self, context, instance, *args, **kw)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 1586, in delete
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     self._delete_instance(context, instance)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 1576, in _delete_instance
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     task_state=task_states.DELETING)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 1410, in _delete
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     user_id=user_id)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 1357, in _delete
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     instance.destroy()
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/objects/base.py", line 147, in wrapper
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     return fn(self, ctxt, *args, **kwargs)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/objects/instance.py", line 351, in destroy
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     db.instance_destroy(context, self.uuid, constraint=constraint)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/db/api.py", line 593, in instance_destroy
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     rv = IMPL.instance_destroy(context, instance_uuid, constraint)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/api.py", line 126, in wrapper
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     return f(*args, **kwargs)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/api.py", line 1661, in instance_destroy
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     query = constraint.apply(models.Instance, query)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/api.py", line 338, in apply
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     for clause in condition.clauses(getattr(model, key)):
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/api.py", line 349, in clauses
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     return or_([field == value for value in self.values])
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "<string>", line 2, in or_
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line 1870, in or_
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     return cls._construct(operators.or_, False_, True_, *clauses)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line 1774, in _construct
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     clause = _literal_as_text(clause)
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line 3462, in _literal_as_text
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack     "SQL expression object or string expected."
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack ArgumentError: SQL expression object or string expected.
  2015-05-07 16:55:38.240 23178 TRACE nova.api.openstack

  my version is havana and icehouse,I test both,all ERROR.

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


References