Reviewed:  https://review.openstack.org/253067
Committed: 
https://git.openstack.org/cgit/openstack/neutron/commit/?id=cac2436f298491dbca2c932c80bdf3a64ac39ee6
Submitter: Jenkins
Branch:    master

commit cac2436f298491dbca2c932c80bdf3a64ac39ee6
Author: Andreas Scheuring <andreas.scheur...@de.ibm.com>
Date:   Thu Dec 3 14:54:39 2015 +0100

    Correct return values for bridge sysctl calls
    
    This fixes an issue where the lb agent did not plug the
    dhcp tap device into the bridge when having vlan networking
    set up.  Caused by setting of disable_ipv6 value.
    
    Closes-Bug: #1520618
    Change-Id: I0d21fad3a676d1fdd30501ea6a295f1e9b207a3a
    Co-Authored-By: Brian Haley <brian.ha...@hpe.com>


** Changed in: neutron
       Status: In Progress => Fix Released

-- 
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:
  lb agent: dhcp tap not plugged in bridge with vlan setup

Status in neutron:
  Fix Released

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