yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #41926
[Bug 1520618] [NEW] Revert Disable IPV6 on bridge devices. It causes dhcp tap not plugged in bridge with vlan config
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
Follow ups