I recently had an unexpected poweroff of my development machine. Upon starting all 4 running VMs back up, the baremetal_0 node that is the undercloud did not get PXE booted by the seed. The reason is that dnsmasq was not started by neutron-dhcp-agent. This is in the logs. I think it suggests that this may be a bug in Neutron caused when a subnet only has 1 address and it is already allocated.
2013-12-26 17:57:50.615 3604 ERROR neutron.agent.dhcp_agent [-] Unable to enable dhcp for 07051ec1-da09-4ba7-bba6-d869c990da84.
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent Traceback (most recent call last):
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/agent/dhcp_agent.py", line 128, in call_driver
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent getattr(driver, action)(**action_kwargs)
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/agent/linux/dhcp.py", line 171, in enable
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent reuse_existing=True)
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/agent/linux/dhcp.py", line 726, in setup
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent port = self.setup_dhcp_port(network)
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/agent/linux/dhcp.py", line 707, in setup_dhcp_port
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent dhcp_port = self.plugin.create_dhcp_port({'port': port_dict})
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/agent/dhcp_agent.py", line 447, in create_dhcp_port
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent topic=self.topic)
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/openstack/common/rpc/proxy.py", line 126, in call
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent result = rpc.call(context, real_topic, msg, timeout)
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/openstack/common/rpc/__init__.py", line 140, in call
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent return _get_impl().call(CONF, context, topic, msg, timeout)
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/openstack/common/rpc/impl_kombu.py", line 796, in call
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent rpc_amqp.get_connection_pool(conf, Connection))
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/openstack/common/rpc/amqp.py", line 551, in call
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent rv = list(rv)
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/openstack/common/rpc/amqp.py", line 516, in __iter__
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent raise result
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent RemoteError: Remote error: IpAddressGenerationFailure No more IP addresses available on network 07051ec1-da09-4ba7-bba6-d869c990da84.
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent [u'Traceback (most recent call last):\n', u' File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/openstack/common/rpc/amqp.py", line 438, in _process_data\n **args)\n', u' File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/common/rpc.py", line 45, in dispatch\n neutron_ctxt, version, method, namespace, **kwargs)\n', u' File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/openstack/common/rpc/dispatcher.py", line 172, in dispatch\n result = getattr(proxyobj, method)(ctxt, **kwargs)\n', u' File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/db/dhcp_rpc_base.py", line 271, in create_dhcp_port\n return self._port_action(plugin, context, port, \'create_port\')\n', u' File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/db/dhcp_rpc_base.py", line 53, in _port_action\n return plugin.create_port(context, port)\n', u' File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/plugins/ml2/plugin.py", line 561, in create_port\n result = super(Ml2Plugin, self).create_port(context, port)\n', u' File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/db/db_base_plugin_v2.py", line 1333, in create_port\n ips = self._allocate_ips_for_port(context, network, port)\n', u' File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/db/db_base_plugin_v2.py", line 703, in _allocate_ips_for_port\n ips = self._allocate_fixed_ips(context, network, configured_ips)\n', u' File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/db/db_base_plugin_v2.py", line 647, in _allocate_fixed_ips\n result = self._generate_ip(context, subnets)\n', u' File "/opt/stack/venvs/neutron/local/lib/python2.7/site-packages/neutron/db/db_base_plugin_v2.py", line 482, in _generate_ip\n raise q_exc.IpAddressGenerationFailure(net_id=subnets[0][\'network_id\'])\n', u'IpAddressGenerationFailure: No more IP addresses available on network 07051ec1-da09-4ba7-bba6-d869c990da84.\n'].
2013-12-26 17:57:50.615 3604 TRACE neutron.agent.dhcp_agent
This was reported against a very old version of neutron and may have been an indication of a misconfiguration or a failure to clean up ports. In either case, this does not appear to be happening now.