← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1572555] Re: Nova reports memory_mb=0 for available Ironic node

 

Reviewed:  https://review.openstack.org/326100
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=3988911ba7a923a247d64914b4209ad5f7d0d295
Submitter: Jenkins
Branch:    master

commit 3988911ba7a923a247d64914b4209ad5f7d0d295
Author: Jay Pipes <jaypipes@xxxxxxxxx>
Date:   Mon Jun 6 15:06:14 2016 -0400

    Remove code referencing inventory table in cell DB
    
    The ComputeNode.save() and create() methods were still looking for
    fields that began with the prefix inv_ and treating those differently.
    Those fields are no longer in the return from compute_node_get() since
    the last patch reverted the code that joins compute_nodes to allocations
    and inventories within the cell DB.
    
    This patch undoes the calls to compute_node_get() that were done to grab
    that inventory information which should reduce the number of DB calls
    when compute nodes are saved or created.
    
    Change-Id: I5856c9e52c74e4f4530846f76f0a9d2735af23dc
    Closes-bug: #1572555


** 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/1572555

Title:
  Nova reports memory_mb=0 for available Ironic node

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  this is on latest devstack master and might be related to bug 1572472

  Reproduce

  1. deploy Ironic+Nova in DevStack as usual, 3 VMs x 1cpu,1024MB RAM,10GB disk posing as Ironic nodes
  ironic node-list
  +--------------------------------------+--------+---------------+-------------+--------------------+-------------+
  | UUID                                 | Name   | Instance UUID | Power State | Provisioning State | Maintenance |
  +--------------------------------------+--------+---------------+-------------+--------------------+-------------+
  | bb785191-e548-4a6d-820e-bf2c5cdba922 | node-0 | None          | power off   | available          | False       |
  | 2a508e69-08ab-4b0e-abaa-39e4e268bd47 | node-1 | None          | power off   | available          | False       |
  | 9e0763d9-6f96-4327-a189-3bf12f5856ac | node-2 | None          | power off   | available          | False       |
  +--------------------------------------+--------+---------------+-------------+--------------------+-------------+

  2. check nova hypervisor-stats and nova hypervisor-show <node-uuid>
      for all hypervisors nova reports memory_mb=1024, local_gb=10

  nova hypervisor-stats
  +----------------------+-------+
  | Property             | Value |
  +----------------------+-------+
  | count                | 3     |
  | current_workload     | 0     |
  | disk_available_least | 30    |
  | free_disk_gb         | 30    |
  | free_ram_mb          | 3072  |
  | local_gb             | 30    |
  | local_gb_used        | 0     |
  | memory_mb            | 3072  |
  | memory_mb_used       | 0     |
  | running_vms          | 0     |
  | vcpus                | 3     |
  | vcpus_used           | 0     |
  +----------------------+-------+

  3. put two ironic nodes into maintenance
  ironic node-set-maintenance node-1 on
  ironic node-set-maintenance node-2 on
  ironic node-list
  +--------------------------------------+--------+---------------+-------------+--------------------+-------------+
  | UUID                                 | Name   | Instance UUID | Power State | Provisioning State | Maintenance |
  +--------------------------------------+--------+---------------+-------------+--------------------+-------------+
  | bb785191-e548-4a6d-820e-bf2c5cdba922 | node-0 | None          | power off   | available          | False       |
  | 2a508e69-08ab-4b0e-abaa-39e4e268bd47 | node-1 | None          | power off   | available          | True        |
  | 9e0763d9-6f96-4327-a189-3bf12f5856ac | node-2 | None          | power off   | available          | True        |
  +--------------------------------------+--------+---------------+-------------+--------------------+-------------+

  4. wait for nova hypervisor-stats to be updated

  Expected result:
      total memory_mb is 1024, total local_gb is 10

  Actual result:
      total memory_mb is 0, total local_gb is 0
  nova hypervisor-stats
  +----------------------+-------+
  | Property             | Value |
  +----------------------+-------+
  | count                | 3     |
  | current_workload     | 0     |
  | disk_available_least | 10    |
  | free_disk_gb         | 10    |
  | free_ram_mb          | 1024  |
  | local_gb             | 0     |
  | local_gb_used        | 0     |
  | memory_mb            | 0     |
  | memory_mb_used       | 0     |
  | running_vms          | 0     |
  | vcpus                | 0     |
  | vcpus_used           | 0     |
  +----------------------+-------+

  also hypervisor-show shows these values as 0:

  nova hypervisor-show bb785191-e548-4a6d-820e-bf2c5cdba922
  +-------------------------+--------------------------------------+
  | Property                | Value                                |
  +-------------------------+--------------------------------------+
  | cpu_info                |                                      |
  | current_workload        | 0                                    |
  | disk_available_least    | 10                                   |
  | free_disk_gb            | 10                                   |
  | free_ram_mb             | 1024                                 |
  | host_ip                 | 192.168.100.12                       |
  | hypervisor_hostname     | bb785191-e548-4a6d-820e-bf2c5cdba922 |
  | hypervisor_type         | ironic                               |
  | hypervisor_version      | 1                                    |
  | id                      | 1                                    |
  | local_gb                | 0                                    |
  | local_gb_used           | 0                                    |
  | memory_mb               | 0                                    |
  | memory_mb_used          | 0                                    |
  | running_vms             | 0                                    |
  | service_disabled_reason | None                                 |
  | service_host            | ironic                               |
  | service_id              | 8                                    |
  | state                   | up                                   |
  | status                  | enabled                              |
  | vcpus                   | 0                                    |
  | vcpus_used              | 0                                    |
  +-------------------------+--------------------------------------+

  Also, when "watch"ing hypervisor-stats I had a glimpse at correct
  values that immediately jumped to zero on next query.

  Due to this bug the instance is failing to be scheduled to the actually
  available Ironic node due to Nova scheduler's RamFilter removing all hosts

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


References