← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1471958] [NEW] Updates to network_info in info_cache lost with Cells + NeutronV2

 

Public bug reported:

Background: Nova commit eaaa659333c7586a71155c065dfb0f7b7e3758fc
modified the Cells code (specifically instance_update_at_top()) to use
objects instead of primitive dicts.  One consequence of this is that the
changed fields tracking now controls what updates are applied to the
parent DB.

The nova.networking.neutronv2 module retrieves the result of
asynchronous network allocation and stores it in info_cache via the
get_instance_nw_info() method, which takes an update_cells parameter
(default True), which is ultimately passed to
nova.objects.InstanceInfoCache.save().  In this case
(allocate_for_instance() in neutronv2), update_cells was set to False
(for reasons I don't understand).  This leads to the update message
never being sent to the cells service and so network_info is not set in
the parent cell on instance creation.  This has been true for a long
time, but the network_info would be included very shortly thereafter in
a subsequent call to instance_update_at_top.  However, the network_info
field is not marked as updated in that update, and so as of the commit
referenced above, with change tracking now in place, the network_info
field is never updated.

** Affects: nova
     Importance: Undecided
     Assignee: R. Nortman (launchpad-wonderclown)
         Status: In Progress


** Tags: cells

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

Title:
  Updates to network_info in info_cache lost with Cells + NeutronV2

Status in OpenStack Compute (Nova):
  In Progress

Bug description:
  Background: Nova commit eaaa659333c7586a71155c065dfb0f7b7e3758fc
  modified the Cells code (specifically instance_update_at_top()) to use
  objects instead of primitive dicts.  One consequence of this is that
  the changed fields tracking now controls what updates are applied to
  the parent DB.

  The nova.networking.neutronv2 module retrieves the result of
  asynchronous network allocation and stores it in info_cache via the
  get_instance_nw_info() method, which takes an update_cells parameter
  (default True), which is ultimately passed to
  nova.objects.InstanceInfoCache.save().  In this case
  (allocate_for_instance() in neutronv2), update_cells was set to False
  (for reasons I don't understand).  This leads to the update message
  never being sent to the cells service and so network_info is not set
  in the parent cell on instance creation.  This has been true for a
  long time, but the network_info would be included very shortly
  thereafter in a subsequent call to instance_update_at_top.  However,
  the network_info field is not marked as updated in that update, and so
  as of the commit referenced above, with change tracking now in place,
  the network_info field is never updated.

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


Follow ups

References