NoMoreFloatingIps: Zero floating ips available after repeatedly creating and destroying instances over time
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Critical
|
Vish Ishaya | ||
Essex |
Fix Released
|
Critical
|
Vish Ishaya | ||
nova (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Precise |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Problem: NoMoreFloatingIps: Zero floating ips available
Configuration: FlatDHCP, auto_assign_
multi_host
Floating Ranges created using:
nova-manage floating create 172.29.3.0/24
nova-manage floating create 172.29.4.0/24
This gives me 512 floating addresses I can use.
Public: bond0 (eth0 and eth1)
Private: eth2 (unbonded)
OS: Ubuntu 12.04 LTS
ii nova-api 2012.1-0ubuntu2.3 OpenStack Compute - API frontend
ii nova-common 2012.1-0ubuntu2.3 OpenStack Compute - common files
ii nova-compute 2012.1-0ubuntu2.3 OpenStack Compute - compute node
ii nova-compute-kvm 2012.1-0ubuntu2.3 OpenStack Compute - compute node (KVM)
ii nova-network 2012.1-0ubuntu2.3 OpenStack Compute - Network manager
ii python-glance 2012.1-0ubuntu2.1 OpenStack Image Registry and Delivery Service - Python library
ii python-keystone 2012.1-0ubuntu1 OpenStack identity service - Python library
ii python-
ii python-nova 2012.1-0ubuntu2.3 OpenStack Compute Python libraries
ii python-novaclient 2012.1-0ubuntu1 client library for OpenStack Compute API
I run a script to create and destroy instances repeatedly and report on the number of instances that made it to active state and the number of machines set to error state.
After a while of running the script (which just creates instances of the same type, waits for 20 seconds, then deletes them, waits for 20 seconds, and repeats) I get ERRORS.
On viewing the logs I see lots of errors relating to Floating IPs:
/var/log/
2012-06-25 10:11:13 ERROR nova.rpc.amqp [req-6814af4e-
2012-06-25 10:11:13 TRACE nova.rpc.amqp Traceback (most recent call last):
2012-06-25 10:11:13 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:11:13 TRACE nova.rpc.amqp rval = node_func(
2012-06-25 10:11:13 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:11:13 TRACE nova.rpc.amqp return func(self, context, *args, **kwargs)
2012-06-25 10:11:13 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:11:13 TRACE nova.rpc.amqp affect_
2012-06-25 10:11:13 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:11:13 TRACE nova.rpc.amqp return func(self, context, *args, **kwargs)
2012-06-25 10:11:13 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:11:13 TRACE nova.rpc.amqp raise exception.
2012-06-25 10:11:13 TRACE nova.rpc.amqp FloatingIpNotAs
2012-06-25 10:11:13 TRACE nova.rpc.amqp
Run 1, Num Errors: 0, Num Active: 21
Run 2, Num Errors: 0, Num Active: 19
Run 3, Num Errors: 0, Num Active: 19
Run 4, Num Errors: 0, Num Active: 17
Run 5, Num Errors: 2, Num Active: 19
Run 6, Num Errors: 0, Num Active: 18
Run 7, Num Errors: 0, Num Active: 21
Run 8, Num Errors: 1, Num Active: 20
Run 9, Num Errors: 1, Num Active: 19
Run 10, Num Errors: 0, Num Active: 21
Run 11, Num Errors: 0, Num Active: 21
Run 12, Num Errors: 0, Num Active: 21
Run 13, Num Errors: 0, Num Active: 19
Run 14, Num Errors: 0, Num Active: 21
Run 15, Num Errors: 1, Num Active: 17
nova list
+----+-
| ID | Name | Status | Networks |
+----+-
+----+-
nova-manage floating list
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
b3ecef20bbb8429
Showing what is not in this "Missing instance" state:
nova-manage floating list | egrep -v "Missing"
b3ecef20bbb8429
None 172.29.4.193 None nova bond0
None 172.29.4.194 None nova bond0
None 172.29.4.195 None nova bond0
None 172.29.4.196 None nova bond0
None 172.29.4.197 None nova bond0
None 172.29.4.198 None nova bond0
None 172.29.4.199 None nova bond0
None 172.29.4.200 None nova bond0
None 172.29.4.201 None nova bond0
None 172.29.4.202 None nova bond0
None 172.29.4.203 None nova bond0
None 172.29.4.204 None nova bond0
None 172.29.4.205 None nova bond0
None 172.29.4.206 None nova bond0
None 172.29.4.207 None nova bond0
None 172.29.4.208 None nova bond0
None 172.29.4.209 None nova bond0
None 172.29.4.210 None nova bond0
None 172.29.4.211 None nova bond0
None 172.29.4.212 None nova bond0
None 172.29.4.213 None nova bond0
None 172.29.4.214 None nova bond0
None 172.29.4.215 None nova bond0
None 172.29.4.216 None nova bond0
None 172.29.4.217 None nova bond0
None 172.29.4.218 None nova bond0
None 172.29.4.219 None nova bond0
None 172.29.4.220 None nova bond0
None 172.29.4.221 None nova bond0
None 172.29.4.222 None nova bond0
None 172.29.4.223 None nova bond0
None 172.29.4.224 None nova bond0
None 172.29.4.225 None nova bond0
None 172.29.4.226 None nova bond0
None 172.29.4.227 None nova bond0
None 172.29.4.228 None nova bond0
None 172.29.4.229 None nova bond0
None 172.29.4.230 None nova bond0
None 172.29.4.231 None nova bond0
None 172.29.4.232 None nova bond0
None 172.29.4.233 None nova bond0
None 172.29.4.234 None nova bond0
None 172.29.4.235 None nova bond0
None 172.29.4.236 None nova bond0
None 172.29.4.237 None nova bond0
None 172.29.4.238 None nova bond0
None 172.29.4.239 None nova bond0
None 172.29.4.240 None nova bond0
None 172.29.4.241 None nova bond0
None 172.29.4.242 None nova bond0
None 172.29.4.243 None nova bond0
None 172.29.4.244 None nova bond0
None 172.29.4.245 None nova bond0
None 172.29.4.246 None nova bond0
None 172.29.4.247 None nova bond0
None 172.29.4.248 None nova bond0
None 172.29.4.249 None nova bond0
None 172.29.4.250 None nova bond0
None 172.29.4.251 None nova bond0
None 172.29.4.252 None nova bond0
None 172.29.4.253 None nova bond0
None 172.29.4.254 None nova bond0
Kick off test again:
on compute hosts /var/log/
2012-06-25 10:49:28 ERROR nova.rpc.amqp [req-9911e91f-
2012-06-25 10:49:28 TRACE nova.rpc.amqp Traceback (most recent call last):
2012-06-25 10:49:28 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:49:28 TRACE nova.rpc.amqp rval = node_func(
2012-06-25 10:49:28 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:49:28 TRACE nova.rpc.amqp return func(self, context, *args, **kwargs)
2012-06-25 10:49:28 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:49:28 TRACE nova.rpc.amqp affect_
2012-06-25 10:49:28 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:49:28 TRACE nova.rpc.amqp return func(self, context, *args, **kwargs)
2012-06-25 10:49:28 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:49:28 TRACE nova.rpc.amqp raise exception.
2012-06-25 10:49:28 TRACE nova.rpc.amqp FloatingIpNotAs
2012-06-25 10:49:28 TRACE nova.rpc.amqp
2012-06-25 10:49:34 ERROR nova.rpc.amqp [req-303bd4ee-
2012-06-25 10:49:34 TRACE nova.rpc.amqp Traceback (most recent call last):
2012-06-25 10:49:34 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:49:34 TRACE nova.rpc.amqp rval = node_func(
2012-06-25 10:49:34 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:49:34 TRACE nova.rpc.amqp return func(self, context, *args, **kwargs)
2012-06-25 10:49:34 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:49:34 TRACE nova.rpc.amqp affect_
2012-06-25 10:49:34 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:49:34 TRACE nova.rpc.amqp return func(self, context, *args, **kwargs)
2012-06-25 10:49:34 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:49:34 TRACE nova.rpc.amqp raise exception.
2012-06-25 10:49:34 TRACE nova.rpc.amqp FloatingIpNotAs
2012-06-25 10:49:34 TRACE nova.rpc.amqp
Then eventually
Run 1, Num Errors: 0, Num Active: 21
Run 2, Num Errors: 1, Num Active: 19
Run 3, Num Errors: 27, Num Active: 3
Run 4, Num Errors: 30, Num Active: 0
2012-06-25 10:53:31 ERROR nova.rpc.amqp [req-54164eb0-
2012-06-25 10:53:31 ERROR nova.rpc.amqp [req-54164eb0-
2012-06-25 10:53:34 ERROR nova.rpc.amqp [req-326cd1e6-
2012-06-25 10:53:34 TRACE nova.rpc.amqp Traceback (most recent call last):
2012-06-25 10:53:34 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:53:34 TRACE nova.rpc.amqp rval = node_func(
2012-06-25 10:53:34 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:53:34 TRACE nova.rpc.amqp return func(self, context, *args, **kwargs)
2012-06-25 10:53:34 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:53:34 TRACE nova.rpc.amqp floating_address = self.allocate_
2012-06-25 10:53:34 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:53:34 TRACE nova.rpc.amqp return func(self, context, *args, **kwargs)
2012-06-25 10:53:34 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:53:34 TRACE nova.rpc.amqp pool)
2012-06-25 10:53:34 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:53:34 TRACE nova.rpc.amqp return IMPL.floating_
2012-06-25 10:53:34 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:53:34 TRACE nova.rpc.amqp return f(*args, **kwargs)
2012-06-25 10:53:34 TRACE nova.rpc.amqp File "/usr/lib/
2012-06-25 10:53:34 TRACE nova.rpc.amqp raise exception.
2012-06-25 10:53:34 TRACE nova.rpc.amqp NoMoreFloatingIps: Zero floating ips available.
2012-06-25 10:53:34 TRACE nova.rpc.amqp
2012-06-25 10:53:34 ERROR nova.rpc.amqp [req-326cd1e6-
2012-06-25 10:53:34 ERROR nova.rpc.amqp [req-326cd1e6-
2012-06-25 10:54:04 ERROR nova.network.
2012-06-25 10:54:10 ERROR nova.network.
2012-06-25 10:54:12 ERROR nova.network.
2012-06-25 10:54:17 ERROR nova.network.
2012-06-25 10:54:20 ERROR nova.network.
2012-06-25 10:54:23 ERROR nova.network.
Related branches
- Chuck Short: Pending requested
-
Diff: 56 lines (+14/-4)3 files modifieddebian/changelog (+8/-0)
debian/control (+6/-3)
debian/nova-console.install (+0/-1)
Changed in nova: | |
assignee: | nobody → Vish Ishaya (vishvananda) |
Changed in nova: | |
status: | Fix Committed → Fix Released |
Changed in nova: | |
importance: | High → Critical |
milestone: | folsom-2 → none |
Changed in nova (Ubuntu): | |
status: | New → Fix Released |
Changed in nova (Ubuntu Precise): | |
status: | New → Confirmed |
Is it possible that your script is deleting instances before they are done creating? I don't see any way for the code path with the error to get hit unless the network deallocate is getting called before the allocation is done somehow. Can you try either waiting until the api says the instance is running or upping the wait to a minute to see if the error persists? That will help us track down if it is a race condition or a logic error somewhere.
Vish