← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1520618] Re: lb agent: dhcp tap not plugged in bridge with vlan setup

 

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.scheuring@xxxxxxxxxx>
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.haley@xxxxxxx>


** 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


References