It is possible to create 'orphan' floating ip's (at least in devstack testing) through a sequence of:
delete vip
assign vip
remove vip
API calls + timestamps from a test run:
26101:[2014-11-14 17:18:57,446] mahmachine/INFO/stdout: 0x7f8833395250: delete floating ip id: 14
26145:[2014-11-14 17:18:58,237] mahmachine/INFO/stdout: 0x7f88333e8810: assign floating ip: 172.24.4.14 || d4545f39-6a5c-40e3-99f4-f72c22d56fc7
27333:[2014-11-14 17:19:25,144] mahmachine/INFO/stdout: 0x7f88333e8810: remove floating ip: 172.24.4.14 || d4545f39-6a5c-40e3-99f4-f72c22d56fc7
This results in floating ip addresses that are still listed as attached to an instance, yet are not owned (and are not removable) by the instance's owner.
In the database, the fixed_ip_id is not null (the server id), yet the project id is:
the 'host' column may or may not be populated, but the cause and effect appear to be the same regardless of this.
select id, address, fixed_ip_id, project_id, host from floating_ips where project_id IS NULL and fixed_ip_id IS NOT NULL;
+----+-------------+-------------+------------+-------------+
| id | address | fixed_ip_id | project_id | host |
+----+-------------+-------------+------------+-------------+
| 2 | 172.24.4.2 | 4 | NULL | NULL |
| 7 | 172.24.4.7 | 4 | NULL | mahmachine |
| 11 | 172.24.4.11 | 4 | NULL | mahmachine |
| 6 | 172.24.4.6 | 7 | NULL | mahmachine |
| 15 | 172.24.4.15 | 7 | NULL | mahmachine |
| 3 | 172.24.4.3 | 8 | NULL | mahmachine |
| 14 | 172.24.4.14 | 10 | NULL | NULL |
+----+-------------+-------------+------------+-------------+
nova behavior with such floating ips:
pcrews@ mahmachine: ~/git/mahrepo$ nova list ------- ------- ------- ------- ----+-- ------- ------- ------- --+---- ----+-- ------- ---+--- ------- ---+--- ------- ------- ------- ------- ------- ------- ------- ------- ------- --+ ------- ------- ------- ------- ----+-- ------- ------- ------- --+---- ----+-- ------- ---+--- ------- ---+--- ------- ------- ------- ------- ------- ------- ------- ------- ------- --+ 5fbe-437f- ae6d-90e7ae5501 75 | server- 0x7f883335d350- 0 | ACTIVE | - | Running | private=10.0.0.7, 172.24.4.3 | 3baa-4c50- 9227-391a7c5f7c 47 | server- 0x7f8833395890- 0 | ACTIVE | - | Running | private=10.0.0.2 | 7ce2-4b0d- 8cc1-111510c000 8b | server- 0x7f88333a7ad0- 0 | ACTIVE | - | Running | private=10.0.0.4 | 11ae-4ea3- 9c35-3ed3766c1f df | server- 0x7f88333a7f50- 0 | ACTIVE | - | Running | private=10.0.0.6, 172.24.4.6, 172.24.4.15 | 6441-41b5- 9056-28afc27133 d3 | server- 0x7f88333e8a90- 0 | ACTIVE | - | Running | private=10.0.0.5 | a389-4d5e- 8a32-eaacf4849a 6f | server- 0x7f8833c15e90- 0 | ACTIVE | - | Running | private=10.0.0.8 | e948-4844- 93dd-592e220745 4d | server- 0x7f8833c39c50- 0 | ERROR | - | NOSTATE | private=10.0.0.3, 172.24.4.2, 172.24.4.7, 172.24.4.11, 172.24.4.17 | 6a5c-40e3- 99f4-f72c22d56f c7 | server- 0x7f8833c39c50- 1 | ACTIVE | - | Running | private=10.0.0.9, 172.24.4.9, 172.24.4.14, 172.24.4.16 | ------- ------- ------- ------- ----+-- ------- ------- ------- --+---- ----+-- ------- ---+--- ------- ---+--- ------- ------- ------- ------- ------- ------- ------- ------- ------- --+ mahmachine: ~/git/mahrepo$ nova floating-ip-list ------- +------ ------- ------- ------- ------- ----+-- ------- -+----- ---+ ------- +------ ------- ------- ------- ------- ----+-- ------- -+----- ---+ 6a5c-40e3- 99f4-f72c22d56f c7 | 10.0.0.9 | public | 6a5c-40e3- 99f4-f72c22d56f c7 | 10.0.0.9 | public | e948-4844- 93dd-592e220745 4d | 10.0.0.3 | public | ------- +------ ---...
+------
| ID | Name | Status | Task State | Power State | Networks |
+------
| 9691031c-
| 204f51ed-
| 353dfff7-
| a062aa43-
| 3344bb31-
| 74780a52-
| f0dd2112-
| d4545f39-
+------
pcrews@
+------
| Ip | Server Id | Fixed Ip | Pool |
+------
| 172.24.4.1 | - | - | public |
| 172.24.4.4 | - | - | public |
| 172.24.4.5 | - | - | public |
| 172.24.4.8 | - | - | public |
| 172.24.4.9 | d4545f39-
| 172.24.4.10 | - | - | public |
| 172.24.4.12 | - | - | public |
| 172.24.4.13 | - | - | public |
| 172.24.4.16 | d4545f39-
| 172.24.4.17 | f0dd2112-
+------