Comment 15 for bug 1784705

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (stable/pike)

Reviewed: https://review.openstack.org/588037
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=e279ac404673784f33610cad55288e2e60649f88
Submitter: Zuul
Branch: stable/pike

commit e279ac404673784f33610cad55288e2e60649f88
Author: Matt Riedemann <email address hidden>
Date: Tue Jul 31 17:26:47 2018 -0400

    Make ResourceTracker.stats node-specific

    As of change I6827137f35c0cb4f9fc4c6f753d9a035326ed01b in
    Ocata, the ResourceTracker manages multiple compute nodes
    via its "compute_nodes" variable, but the "stats" variable
    was still being shared across all nodes, which leads to
    leaking stats across nodes in an ironic deployment where
    a single nova-compute service host is managing multiple
    ironic instances (nodes).

    This change makes ResourceTracker.stats node-specific
    which fixes the ironic leak but also allows us to remove
    the stats deepcopy while iterating over instances which
    should improve performance for single-node deployments with
    potentially a large number of instances, i.e. vCenter.

    Conflicts:
          nova/compute/manager.py

    NOTE(mriedem): The conflict was due to not having change
    Iae904afb6cb4fcea8bb27741d774ffbe986a5fb4 in Pike.

    NOTE(mriedem): The check for node is None was moved from
    _do_build_and_run_instance to build_and_run_instance because
    the functional tests are using the ChanceScheduler since we
    don't have change I12de2e195022593ea2a3e2894f2c3b5226930d4f
    and the ChanceScheduler does not return the nodename during
    select_destinations so the compute has to get it from the
    driver.

    Change-Id: I0b9e5b711878fa47ba90e43c0b41437b57cf8ef6
    Closes-Bug: #1784705
    Closes-Bug: #1777422
    (cherry picked from commit b5b7d86bb04f92d21cf954cd6b3463c9fcc637e6)
    (cherry picked from commit 7d99f5753f992bd4b58b0aaa7f83f71fb044776f)