Public bug reported:

Steps to reproduce:
Create HA router (Observe that HA ports were created)
Attach an interface
Delete router

Result:
The deletion fails because the router has an interface attached, however all of 
its HA ports were deleted, leaving the system in an inconsistent state. Any L3 
agents that attempt to configure this HA router will fail because it doesn't 
have HA ports.

Expected behavior:
Deletion validations should occur before deleting any resources. The deletion 
should fail and the router should continue to exist properly, with HA ports and 
all.

Reason:
As per 
https://github.com/openstack/neutron/blob/master/neutron/db/l3_hamode_db.py#L411:

When deleting a router, the call first reaches the L3 HA DB mixin, which
deletes HA-specific resources first, in its own commit. It then calls to
the super class, which will eventually try to delete the router object
itself. If any deletion validation fails, the router object itself is
not deleted, but the HA ports and their VRID allocations were already
deleted and the transaction was commited.

** Affects: neutron
     Importance: Undecided
         Status: New


** Tags: juno-backport-potential l3-ha

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1402698

Title:
  Deleting an HA router with interfaces attached leaves the DB in an
  inconsistent state

Status in OpenStack Neutron (virtual network service):
  New

Bug description:
  Steps to reproduce:
  Create HA router (Observe that HA ports were created)
  Attach an interface
  Delete router

  Result:
  The deletion fails because the router has an interface attached, however all 
of its HA ports were deleted, leaving the system in an inconsistent state. Any 
L3 agents that attempt to configure this HA router will fail because it doesn't 
have HA ports.

  Expected behavior:
  Deletion validations should occur before deleting any resources. The deletion 
should fail and the router should continue to exist properly, with HA ports and 
all.

  Reason:
  As per 
https://github.com/openstack/neutron/blob/master/neutron/db/l3_hamode_db.py#L411:

  When deleting a router, the call first reaches the L3 HA DB mixin,
  which deletes HA-specific resources first, in its own commit. It then
  calls to the super class, which will eventually try to delete the
  router object itself. If any deletion validation fails, the router
  object itself is not deleted, but the HA ports and their VRID
  allocations were already deleted and the transaction was commited.

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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to