Public bug reported: Commit [1] disables ipv6 on linuxbridges. On my linuxbridge vlan system, this fix causes the code ensure_bridge() to return too early without passing the bridge_name back.
The introduced method returns the output of the systcl -w call + def disable_ipv6(self): + cmd = 'net.ipv6.conf.%s.disable_ipv6=1' % self.name + return self._sysctl([cmd]) The sysctl always outputs the config that has been set (at least on my ubuntu): # sudo sysctl -w net.ipv6.conf.brq1192ca0d-a3.disable_ipv6=1 net.ipv6.conf.brq1192ca0d-a3.disable_ipv6 = 1 The check that has been introduced assumes that on successful executing, nothing (or return code 0) is returned - but the command always returns something! + if bridge_device.disable_ipv6(): + return The result is, that the tap device of the dhcp server is not plugged into the bridge but instead still loosely hanging around. Log from a lb tempest run [1]. after the sysctl command is executed, the method returns (the follow on call that sets the bridge up is missing): 2015-11-26 14:45:36.283 DEBUG neutron.agent.linux.utils [req-0655a18f-ce22-445c-834b-96ba4c91ae6e None None] Exit code: 0 execute /opt/stack/new/neutron/neutron/agent/linux/utils.py:142 2015-11-26 14:45:36.284 DEBUG neutron.agent.linux.utils [req-0655a18f-ce22-445c-834b-96ba4c91ae6e None None] Running command (rootwrap daemon): ['sysctl', '-w', 'net.ipv6.conf.brq66379423-07.disable_ipv6=1'] execute_rootwrap_daemon /opt/stack/new/neutron/neutron/agent/linux/utils.py:100 2015-11-26 14:45:36.286 DEBUG neutron.agent.linux.utils [req-0655a18f-ce22-445c-834b-96ba4c91ae6e None None] Exit code: 0 execute /opt/stack/new/neutron/neutron/agent/linux/utils.py:142 2015-11-26 14:45:36.286 DEBUG neutron.agent.linux.utils [req-0655a18f-ce22-445c-834b-96ba4c91ae6e None None] Running command: ['ip', '-o', 'link', 'show', 'vxlan-1009'] create_process /opt/stack/new/neutron/neutron/agent/linux/utils.py:84 2015-11-26 14:45:36.294 DEBUG neutron.agent.linux.utils [req-0655a18f-ce22-445c-834b-96ba4c91ae6e None None] Exit code: 0 execute /opt/stack/new/neutron/neutron/agent/linux/utils.py:142 2015-11-26 14:45:36.295 DEBUG neutron.agent.linux.utils [req-0655a18f-ce22-445c-834b-96ba4c91ae6e None None] Running command (rootwrap daemon): ['ip', 'link', 'set', 'tap35e6a6a9-ef', 'mtu', '1450'] execute_rootwrap_daemon [1] https://review.openstack.org/#/c/241076/ [2] http://logs.openstack.org/85/193485/21/check/gate-tempest-dsvm-neutron-linuxbridge/7341e9a/logs/screen-q-agt.txt.gz ** Affects: neutron Importance: Undecided Status: New ** Tags: linuxbridge ** Tags added: linuxbridge -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1520618 Title: Revert Disable IPV6 on bridge devices. It causes dhcp tap not plugged in bridge with vlan config Status in neutron: New Bug description: Commit [1] disables ipv6 on linuxbridges. On my linuxbridge vlan system, this fix causes the code ensure_bridge() to return too early without passing the bridge_name back. The introduced method returns the output of the systcl -w call + def disable_ipv6(self): + cmd = 'net.ipv6.conf.%s.disable_ipv6=1' % self.name + return self._sysctl([cmd]) The sysctl always outputs the config that has been set (at least on my ubuntu): # sudo sysctl -w net.ipv6.conf.brq1192ca0d-a3.disable_ipv6=1 net.ipv6.conf.brq1192ca0d-a3.disable_ipv6 = 1 The check that has been introduced assumes that on successful executing, nothing (or return code 0) is returned - but the command always returns something! + if bridge_device.disable_ipv6(): + return The result is, that the tap device of the dhcp server is not plugged into the bridge but instead still loosely hanging around. Log from a lb tempest run [1]. after the sysctl command is executed, the method returns (the follow on call that sets the bridge up is missing): 2015-11-26 14:45:36.283 DEBUG neutron.agent.linux.utils [req-0655a18f-ce22-445c-834b-96ba4c91ae6e None None] Exit code: 0 execute /opt/stack/new/neutron/neutron/agent/linux/utils.py:142 2015-11-26 14:45:36.284 DEBUG neutron.agent.linux.utils [req-0655a18f-ce22-445c-834b-96ba4c91ae6e None None] Running command (rootwrap daemon): ['sysctl', '-w', 'net.ipv6.conf.brq66379423-07.disable_ipv6=1'] execute_rootwrap_daemon /opt/stack/new/neutron/neutron/agent/linux/utils.py:100 2015-11-26 14:45:36.286 DEBUG neutron.agent.linux.utils [req-0655a18f-ce22-445c-834b-96ba4c91ae6e None None] Exit code: 0 execute /opt/stack/new/neutron/neutron/agent/linux/utils.py:142 2015-11-26 14:45:36.286 DEBUG neutron.agent.linux.utils [req-0655a18f-ce22-445c-834b-96ba4c91ae6e None None] Running command: ['ip', '-o', 'link', 'show', 'vxlan-1009'] create_process /opt/stack/new/neutron/neutron/agent/linux/utils.py:84 2015-11-26 14:45:36.294 DEBUG neutron.agent.linux.utils [req-0655a18f-ce22-445c-834b-96ba4c91ae6e None None] Exit code: 0 execute /opt/stack/new/neutron/neutron/agent/linux/utils.py:142 2015-11-26 14:45:36.295 DEBUG neutron.agent.linux.utils [req-0655a18f-ce22-445c-834b-96ba4c91ae6e None None] Running command (rootwrap daemon): ['ip', 'link', 'set', 'tap35e6a6a9-ef', 'mtu', '1450'] execute_rootwrap_daemon [1] https://review.openstack.org/#/c/241076/ [2] http://logs.openstack.org/85/193485/21/check/gate-tempest-dsvm-neutron-linuxbridge/7341e9a/logs/screen-q-agt.txt.gz To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1520618/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp