In a routed networks environment, after the merge of https://review.openstack.org/#/c/468744, the dhcp agent attempts to generate subnet options for both local and non local subnets. If one of the non-local subnets is classified as isolated from the point of view of the metadata service, the following traceback occurs:
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent [-] Unable to enable dhcp for 40dcd8c6-e4a1-4510-ac62-f37c11e65a5a.: KeyError: u'2cbde018-1c03-40f8-9d67-90a03c7ebd37'
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent Traceback (most recent call last):
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent File "/opt/stack/neutron/neutron/agent/dhcp/agent.py", line 144, in call_driver
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent getattr(driver, action)(**action_kwargs)
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent File "/opt/stack/neutron/neutron/agent/linux/dhcp.py", line 219, in enable
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent self.spawn_process()
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent File "/opt/stack/neutron/neutron/agent/linux/dhcp.py", line 446, in spawn_process
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent self._spawn_or_reload_process(reload_with_HUP=False)
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent File "/opt/stack/neutron/neutron/agent/linux/dhcp.py", line 455, in _spawn_or_reload_process
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent self._output_config_files()
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent File "/opt/stack/neutron/neutron/agent/linux/dhcp.py", line 499, in _output_config_files
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent self._output_opts_file()
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent File "/opt/stack/neutron/neutron/agent/linux/dhcp.py", line 872, in _output_opts_file
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent options, subnet_index_map = self._generate_opts_per_subnet()
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent File "/opt/stack/neutron/neutron/agent/linux/dhcp.py", line 933, in _generate_opts_per_subnet
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent subnet_dhcp_ip and subnet.ip_version == 4):
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent KeyError: u'2cbde018-1c03-40f8-9d67-90a03c7ebd37'
Mar 26 15:21:41 compute2 neutron-dhcp-agent[31181]: ERROR neutron.agent.dhcp.agent
This traceback is due to the fact that the non-local subnet in question has no interface in the DHCP agent namespace, so it is not found when:
subnet_dhcp_ip = subnet_to_interface_ip[subnet.id]
is executed
Fix proposed to branch: master /review. openstack. org/556584
Review: https:/