← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1721843] Re: Unversioned notifications not being sent.

 

Marking as high severity since this is a regression introduced in Pike.

** Changed in: nova
   Importance: Undecided => Medium

** Also affects: nova/pike
   Importance: Undecided
       Status: New

** Changed in: nova
   Importance: Medium => High

** Changed in: nova/pike
       Status: New => Confirmed

** Changed in: nova/pike
   Importance: Undecided => High

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

Title:
  Unversioned notifications not being sent.

Status in OpenStack Compute (nova):
  In Progress
Status in OpenStack Compute (nova) pike series:
  In Progress

Bug description:
  Description
  ===========
  After a vm moves from state 'building' to 'error' an unversioned notification is no longer sent if CONF.notifications.notification_format is set to 'unversioned'.

  Steps to reproduce
  ==================
  In nova.conf set
  [notifications]
  notification_format = unversioned

  Setup environment so VM deploy fails.
  To reproduce easily in my environment I raised a generic Exception just after the call to spawn in orchestrator's start_deploy_simple()
  Attempt to deploy VM.
  Wait for deploy to fail.

  Expected result
  ===============
  When the vm_state changes to 'error' an unversioned notification should be sent.

  Actual result
  =============
  The unversioned notification is not sent.

  Environment
  ===========
  (pike)nova-compute/now 10:16.0.0-201710030907

  
  Additional Info:
  ================
  Problem seems to stem from this change: https://github.com/openstack/nova/commit/29cb8f1c459e6d23dd9303fb570cee773d9c4d02 at:
          if (NOTIFIER.is_enabled() and
                  CONF.notifications.notification_format in ('both',
                                                             'versioned')):
  Because 'unversioned' is not in the list, the @rpc.if_notifications_enabled decorator causes send_instance_update_notification() as well as _send_versioned_instance_update() to effectively be skipped. The name of the decorator and the comment describing it's functionality make it hard to determine is precise intended purpose. The decorator name implies it's checking if notifications are enabled at all. The comment in the decorator states it's specificly checking if versioned notifications are enabled and is in fact what it appears to be doing. Since the decorator was applied to send_instance_update_notification it's effectively blocking unversioned notifications if versioned notifications are not enabled.

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


References