Yes, I know fixed_ip_disassociate_timeout can disassociate ip address, but this method could run when host value in networks DB. But, When we make a network, host value didn't put any value, So default host value is NULL. For example) # nova-manage network create test_network 10.102.0.0/24 mysql>select * from networks\G; *************************** 2. row *************************** created_at: 2011-12-09 05:20:13 updated_at: NULL deleted_at: NULL deleted: 0 id: 2 injected: 0 cidr: 10.102.0.0/24 netmask: 255.255.255.0 bridge: br100 gateway: 10.102.0.1 broadcast: 10.102.0.255 dns1: 8.8.4.4 vlan: NULL vpn_public_address: NULL vpn_public_port: NULL vpn_private_address: NULL dhcp_start: 10.102.0.2 project_id: NULL host: NULL cidr_v6: NULL gateway_v6: NULL label: test_network netmask_v6: NULL bridge_interface: bond1 multi_host: 1 dns2: NULL uuid: 07774f63-df94-4ddb-9274-800ff8e5ae20 priority: NULL because host value is null, fixed_ip_disassociate_timeout method didn't run properly. this is source code of network.manager.periodic_tasks 509 def periodic_tasks(self, context=None): 510 """Tasks to be run at a periodic interval.""" 511 super(NetworkManager, self).periodic_tasks(context) 512 print('timeout_fixed_ips: {}').format(self.timeout_fixed_ips) 513 if self.timeout_fixed_ips: 514 now = utils.utcnow() 515 timeout = FLAGS.fixed_ip_disassociate_timeout 516 time = now - datetime.timedelta(seconds=timeout) 517 num = self.db.fixed_ip_disassociate_all_by_timeout(context, 518 self.host, 519 time) maybe nova-network send self.host and time value through self.db.fixed_ip_disassociate_all_by_timeout. but In database, host is null so self.host != host value in db db.sqlalchemy.api.fixed_ip_disassociate_all_by_timeout could run properly when self.host == host value in db this is source code of db.sqlalchemy.api.fixed_ip_disassociate_all_by_timeout 801 @require_admin_context 802 def fixed_ip_disassociate_all_by_timeout(_context, host, time): 803 session = get_session() 804 inner_q = session.query(models.Network.id).\ 805 filter_by(host=host).\ 806 subquery() 807 result = session.query(models.FixedIp).\ 808 filter(models.FixedIp.network_id.in_(inner_q)).\ 809 filter(models.FixedIp.updated_at < time).\ 810 filter(models.FixedIp.instance_id != None).\ 811 filter_by(allocated=False).\ 812 update({'instance_id': None, 813 'leased': False, 814 'updated_at': utils.utcnow()}, 815 synchronize_session='fetch') So, I think there is some host value when create a new network to DB. OR db.sqlalchemy.api.fixed_ip_disassociate_all_by_timeout don't check host value in DB.