When the neutron-l3-agent is running in a virtual environment. It forks off metadata proxy processes that are also ran the same virtual environment. When it comes time to kill the metadata proxy process, the l3 agent fails to do so because of rootwrap failures (exit code is 99, rootwrap reports "no filters matched"). The files 80-neutron-dhcp-agent and 80-neutron-networking from the tripleo-image-elements repo is supposed to replace the path "/usr/bin/python" with the value of NEUTRON_VENV_DIR in the /etc/neutron/rootwrap.d/l3.filter and /etc/neutron/rootwrap.d/dhcp.filter.
A later change in neutron (Change Id I987dd87e19c218846a48e58b61679b4153d97f66) modified the two filter files. "/usr/bin/python" is now replaced with "python". So the substitution made by 80-neutron-dhcp-agent and 80-neutron-router never take place. Consequently, the metadata-proxy processes can't never be killed.
Submitted code review https:/ /review. openstack. org/#/c/ 138579/ to fix this problem.