← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1781391] Re: cellv2_delete_host when host not found by ComputeNodeList

 

Reviewed:  https://review.openstack.org/582171
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=0ef4ed96d19a3576d67fdc9c1958610887d57ed4
Submitter: Zuul
Branch:    master

commit 0ef4ed96d19a3576d67fdc9c1958610887d57ed4
Author: Chen <dstbtgagt@xxxxxxxxxxx>
Date:   Thu Jul 12 20:33:14 2018 +0800

    fix cellv2 delete_host
    
    When trying to delete host that can be found in host_mappings
    but not in compute_nodes, current cellv2 delete_host will throw
    an exception but does not really handle it.
    
    This patch tries to handle this exception and allow the delete
    operation to continue since it shows the host has gone anyway.
    
    Change-Id: I99bd79fb45777edc0e33d846ba478b0a94a1191e
    Closes-Bug: #1781391


** Changed in: nova
       Status: In Progress => Fix Released

-- 
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/1781391

Title:
  cellv2_delete_host when host not found by ComputeNodeList

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  Problematic Situation:

  1 check the hosts visible to nova compute
  nova hypervisor-list
  id   hypervisor hostname  state  status
  xx         compute2         up    enbled
   
  2 check the hosts visible to cellv2
  nova-manage cell_v2 list_hosts
  cell name   cell uuid      hostname
  cell1         xxxx         compute1
  cell1         xxxx         compute2
  Here compute1 that actually does not exist (like renamed) still remains in cell_mappings

  3 now try to delete host compute1
  nova-manage cell_v2 delete_host --cell_uuid xxxx --host compute1
  then the following error is shown:
  Traceback (most recent call last):
    File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 1620, in main
      ret = fn(*fn_args, **fn_kwargs)
    File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 1558, in delete_host
      nodes = objects.ComputeNodeList.get_all_by_host(cctxt, host)
    File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 184, in wrapper
      result = fn(cls, context, *args, **kwargs)
    File "/usr/lib/python2.7/site-packages/nova/objects/compute_node.py", line 437, in get_all_by_host
      use_slave=use_slave)
    File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/api.py", line 225, in wrapper
      return f(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/nova/objects/compute_node.py", line 432, in _db_compute_node_get_all_by_host
      return db.compute_node_get_all_by_host(context, host)
    File "/usr/lib/python2.7/site-packages/nova/db/api.py", line 297, in compute_node_get_all_by_host
      return IMPL.compute_node_get_all_by_host(context, host)
    File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/api.py", line 270, in wrapped
      return f(context, *args, **kwargs)
    File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/api.py", line 672, in compute_node_get_all_by_host
      raise exception.ComputeHostNotFound(host=host)
  ComputeHostNotFound: Compute host compute1 could not be found.

  Not quite sure the exact way to reproduce it, but I think it would be nicer to allow the delete_host
  operation for situations like this.

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


References