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

Reply via email to