← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1721670] Re: Build notification in conductor fails to send due to InstanceNotFound

 

Reviewed:  https://review.openstack.org/509967
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=54cf9f5a90d745896d133669e6d1260e6adee51b
Submitter: Jenkins
Branch:    master

commit 54cf9f5a90d745896d133669e6d1260e6adee51b
Author: melanie witt <melwittt@xxxxxxxxx>
Date:   Thu Oct 5 23:55:58 2017 +0000

    Target context for build notification in conductor
    
    When sending notifications about an instance, it's possible the
    notification payload will have attributes not already loaded on
    the instance. In this case, a lazy-load will happen and if the
    load method needs to lookup the instance (example: in the
    _check_instance_exists_in_project method in the DB layer), the
    InstanceNotFound exception will be raised and the notification
    will fail to be sent.
    
    This targets the instance context to the instance's cell when
    calling the send notification method.
    
    Closes-Bug: #1721670
    
    Change-Id: I6b9eb120b6e7fcbf919a3791afe2d1f6a7bd3b60


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

Title:
  Build notification in conductor fails to send due to InstanceNotFound

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  I found this issue while working on improving the CellDatabases
  fixture by defaulting untargeted DB access to 'cell0' instead of
  'cell1'.

  While building an instance in conductor, it sends a notification about
  the changed state using notifications.send_update_with_states. In
  notifications.send_update_with_states, one of the arguments is an
  Instance and if an attribute needs to be lazy-loaded, (example: tags,
  as part of the InstanceUpdatePayload) and the load method contains a
  _check_instance_exists_in_project call in the DB layer,
  InstanceNotFound is raised at that point because the context wasn't
  targeted to the instance's cell.

  We need to target the context in case the notification call needs to
  load something from the instance's cell database.

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


References