yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #56465
[Bug 1596075] Re: Neutron confused about overlapping subnet creation
Reviewed: https://review.openstack.org/367180
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=12420c1585abadc741440dcd48a5540ef85357db
Submitter: Jenkins
Branch: master
commit 12420c1585abadc741440dcd48a5540ef85357db
Author: Kevin Benton <kevin@xxxxxxxxxx>
Date: Wed Sep 7 18:51:58 2016 -0700
Mark quota operations as retriable
This decorates the quota system operations with
the retry decorators. This will help significantly
with the bug this marks as closed since operations
in the quota engine after commit should no longer
trigger retries of the full API operation.
The logic to find the args in the decorator had
to be adjusted to deal with functions already decorated.
This just uses the getargspec function from pecan that
deals with decorated functions.
Partial-Bug: #1612798
Closes-Bug: #1596075
Change-Id: Ib786117dcea08af75551770ea4c30d460382b829
** Changed in: neutron
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1596075
Title:
Neutron confused about overlapping subnet creation
Status in neutron:
Fix Released
Bug description:
If I use heat to create a set of networks, each with its own subnet,
sometimes I will get an error from Neutron that there is an overlap.
There is an example heat template attached. In my environment, this
will fail about 1 or 2 times in 10.
The heat template does:
for X in seq 0 10
create network X
assign subnet 172.16.X.0/24 to network X
One of the stacks will get an error on one of the subnets, indicating:
Requested Subnet With Cidr: 172.16.7.0/24 For Network: 73f99807-0b2a-
49d3-8d11-B7bd74d02f4d Overlaps With Another Subnet.
This is in turn coming from _validate_subnet_cidr() in db/ipam_backend_mixin.py.
What is happening is that the 'new_subnet_cidr' passed in is matching against itself.
Since I have 'allow_overlapping_ips=true', it does:
subnet_list = network.subnets
but, in the failure case, this subnet is already there. In the 'no
failure case' it is not yet there.
I have 3 heat API servers, and 72 heat workers (3 servers). The api
servers are round-robin load balanced
I just (2016-06-24) reproduced this against the master/head from
github (so midway between mitaka and newton).
I'm not sure if there is some missing locking, but for sure this is a
race condition.
I have ipam_driver unset
If i comment out the exception in _validate_subnet_cidr() then it
works OK.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1596075/+subscriptions
References