Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1114558

Summary: BOND slave get higher MTU if BOND has previous higher MTU value
Product: Red Hat Enterprise Virtualization Manager Reporter: Meni Yakove <myakove>
Component: vdsmAssignee: Antoni Segura Puimedon <asegurap>
Status: CLOSED NEXTRELEASE QA Contact: Meni Yakove <myakove>
Severity: high Docs Contact:
Priority: high    
Version: 3.4.0CC: acathrow, bazulay, gklein, iheim, lpeer, nyechiel, Rhev-m-bugs, yeylon
Target Milestone: ---Keywords: Regression, Triaged
Target Release: 3.5.0   
Hardware: x86_64   
OS: Linux   
Whiteboard: network
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-07-10 23:38:04 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Network RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
engine and vdsm logs none

Description Meni Yakove 2014-06-30 11:08:52 UTC
Created attachment 913309 [details]
engine and vdsm logs

Description of problem:
One of the BOND slaves get higher MTU then the BOND if the BOND was configured with higher MTU before.
configured VLAN over BOND0 network with MTU 9000 using setupNetworks and after break the BOND in setupNetworks (and press OK) configured the same BOND (BOND0) with VLAN over BOND network with MTU 5000 as a result I have this:

[root@pink-vds2 ~]# cat /sys/class/net/bond0.222/mtu
5000
[root@pink-vds2 ~]# cat /sys/class/net/bond0/mtu
5000
[root@pink-vds2 ~]# cat /sys/class/net/eth3/mtu
5000
[root@pink-vds2 ~]# cat /sys/class/net/eth2/mtu
9000 


eth2 and eth3 are slaves for BOND0
eth2 have MTU 9000 and should have MTU 500


Version-Release number of selected component (if applicable):
rhevm-3.4.1-0.23.el6ev.noarch
vdsm-4.14.7-4.el6ev.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Create VLAN network with MTU 9000 and attach it to BOND0 on host 
2. Open setupNetworks and break BOND0 > press OK
3. Create VLAN network with MTU 500 and attach it to BOND0 on the same host

Actual results:
eth2 have MTU 9000

Expected results:
eth2 should have MTU 5000

Additional info:
setupNetworks engine command:

2014-06-30 13:58:23,224 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.SetupNetworksVDSCommand] (ajp-/127.0.0.1:8702-1) [2e9ce98b] START, SetupNetworksVDSCommand(HostName = pink-vds2.qa.lab.tlv.redhat.com, HostId = 63695762-5f80-44e9-9edb-1879016f5405, force=false, checkConnectivity=true, conectivityTimeout=120,
        networks=[mtu5000 {id=d421f3e1-f8c9-455e-996f-af2f6322ddab, description=null, comment=null, subnet=null, gateway=null, type=null, vlanId=222, stp=false, dataCenterId=8ad8f3ee-9f9d-4708-bede-0cc19cdf3515, mtu=5000, vmNetwork=true, cluster=NetworkCluster {id={clusterId=null, networkId=null}, status=NON_OPERATIONAL, display=false, required=true, migration=false}, providedBy=null, label=null, qosId=null}],
        bonds=[bond0 {id=fd06440e-cbf4-4bb3-9e69-b695eb84ea5c, vdsId=63695762-5f80-44e9-9edb-1879016f5405, name=bond0, macAddress=00:00:00:00:00:00, networkName=null, bondOptions=mode=1 miimon=100, bootProtocol=NONE, address=, subnet=, gateway=null, mtu=9000, bridged=false, type=0, networkImplementationDetails=null}],
        interfaces=[eth3 {id=d26e3a93-86e2-421d-a3a1-8933b41c4b24, vdsId=63695762-5f80-44e9-9edb-1879016f5405, name=eth3, macAddress=00:1b:21:d0:bb:4b, networkName=null, bondName=bond0, bootProtocol=NONE, address=, subnet=, gateway=null, mtu=1500, bridged=false, speed=0, type=0, networkImplementationDetails=null},
                eth1 {id=9aa564b8-5ed5-4ca7-bf61-db2fdfc79f67, vdsId=63695762-5f80-44e9-9edb-1879016f5405, name=eth1, macAddress=00:21:5e:3f:db:2e, networkName=null, bondName=null, bootProtocol=NONE, address=, subnet=, gateway=null, mtu=1500, bridged=false, speed=1000, type=0, networkImplementationDetails=null},
                eth2 {id=ec90e9e5-634a-4603-b695-d7b53bf66ac9, vdsId=63695762-5f80-44e9-9edb-1879016f5405, name=eth2, macAddress=00:1b:21:d0:bb:4a, networkName=null, bondName=bond0, bootProtocol=NONE, address=, subnet=, gateway=null, mtu=1500, bridged=false, speed=0, type=0, networkImplementationDetails=null},
                eth0 {id=1326b07f-5950-4430-b193-299541123de5, vdsId=63695762-5f80-44e9-9edb-1879016f5405, name=eth0, macAddress=00:21:5e:3f:db:2c, networkName=rhevm, bondName=null, bootProtocol=DHCP, address=10.35.128.38, subnet=255.255.255.0, gateway=10.35.128.254, mtu=1500, bridged=true, speed=1000, type=2, networkImplementationDetails={inSync=true, managed=true}},
                bond0 {id=null, vdsId=null, name=bond0, macAddress=null, networkName=null, bondOptions=mode=1 miimon=100, bootProtocol=null, address=null, subnet=null, gateway=null, mtu=0, bridged=false, type=0, networkImplementationDetails=null},
                bond0.222 {id=null, vdsId=null, macAddress=null, networkName=mtu5000, vlanId=222, bonded=null, bondName=null, bondOptions=null, bootProtocol=NONE, address=null, subnet=null, gateway=null, mtu=5000, bridged=true, speed=null, type=0, networkImplementationDetails=null, qos=null qosOverridden=false, labels=null}],
        removedNetworks=[],
        removedBonds=[]), log id: bf5944
2014-06-30 13:58:23,226 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.SetupNetworksVDSCommand] (ajp-/127.0.0.1:8702-1) [2e9ce98b] FINISH, SetupNetworksVDSCommand, log id: bf5944




getVdsCaps:

[root@pink-vds2 ~]# vdsClient -s 0 getVdsCaps
        HBAInventory = {'FC': [], 'iSCSI': [{'InitiatorName': 'iqn.1994-05.com.redhat:pink-vds2'}]}
        ISCSIInitiatorName = 'iqn.1994-05.com.redhat:pink-vds2'
        bondings = {'bond0': {'addr': '',
                              'cfg': {'BONDING_OPTS': 'mode=1 miimon=100',
                                      'DEVICE': 'bond0',
                                      'HOTPLUG': 'no',
                                      'MTU': '5000',
                                      'NM_CONTROLLED': 'no',
                                      'ONBOOT': 'yes',
                                      'STP': 'no'},
                              'hwaddr': '00:1b:21:d0:bb:4a',
                              'ipv6addrs': ['fe80::21b:21ff:fed0:bb4a/64'],
                              'mtu': '5000',
                              'netmask': '',
                              'slaves': ['eth2', 'eth3']},
                    'bond1': {'addr': '',
                              'cfg': {},
                              'hwaddr': '00:00:00:00:00:00',
                              'ipv6addrs': [],
                              'mtu': '5000',
                              'netmask': '',
                              'slaves': []},
                    'bond2': {'addr': '',
                              'cfg': {},
                              'hwaddr': '00:00:00:00:00:00',
                              'ipv6addrs': [],
                              'mtu': '1500',
                              'netmask': '',
                              'slaves': []},
                    'bond3': {'addr': '',
                              'cfg': {},
                              'hwaddr': '00:00:00:00:00:00',
                              'ipv6addrs': [],
                              'mtu': '1500',
                              'netmask': '',
                              'slaves': []},
                    'bond4': {'addr': '',
                              'cfg': {},
                              'hwaddr': '00:00:00:00:00:00',
                              'ipv6addrs': [],
                              'mtu': '1500',
                              'netmask': '',
                              'slaves': []}}
        bridges = {';vdsmdummy;': {'addr': '',
                                   'cfg': {},
                                   'gateway': '',
                                   'ipv6addrs': [],
                                   'ipv6gateway': '::',
                                   'mtu': '1500',
                                   'netmask': '',
                                   'ports': [],
                                   'stp': 'off'},
                   'mtu5000': {'addr': '',
                               'cfg': {'DEFROUTE': 'no',
                                       'DELAY': '0',
                                       'DEVICE': 'mtu5000',
                                       'HOTPLUG': 'no',
                                       'MTU': '5000',
                                       'NM_CONTROLLED': 'no',
                                       'ONBOOT': 'yes',
                                       'STP': 'no',
                                       'TYPE': 'Bridge'},
                               'gateway': '',
                               'ipv6addrs': ['fe80::21b:21ff:fed0:bb4a/64'],
                               'ipv6gateway': '::',
                               'mtu': '5000',
                               'netmask': '',
                               'ports': ['bond0.222'],
                               'stp': 'off'},
                   'rhevm': {'addr': '10.35.128.38',
                             'cfg': {'BOOTPROTO': 'dhcp',
                                     'DEFROUTE': 'yes',
                                     'DELAY': '0',
                                     'DEVICE': 'rhevm',
                                     'NM_CONTROLLED': 'no',
                                     'ONBOOT': 'yes',
                                     'STP': 'no',
                                     'TYPE': 'Bridge'},
                             'gateway': '10.35.128.254',
                             'ipv6addrs': ['fe80::221:5eff:fe3f:db2c/64'],
                             'ipv6gateway': '::',
                             'mtu': '1500',
                             'netmask': '255.255.255.0',
                             'ports': ['eth0'],
                             'stp': 'off'}}
        clusterLevels = ['3.0', '3.1', '3.2', '3.3', '3.4']
        cpuCores = '4'
        cpuFlags = 'fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,mca,cmov,pat,pse36,clflush,dts,acpi,mmx,fxsr,sse,sse2,ss,ht,tm,pbe,syscall,nx,lm,constant_tsc,arch_perfmon,pebs,bts,rep_good,aperfmperf,pni,dtes64,monitor,ds_cpl,vmx,est,tm2,ssse3,cx16,xtpr,pdcm,dca,sse4_1,xsave,lahf_lm,dts,tpr_shadow,vnmi,flexpriority,model_Conroe,model_coreduo,model_core2duo,model_Penryn,model_n270'
        cpuModel = 'Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz'
        cpuSockets = '1'
        cpuSpeed = '2490.000'
        cpuThreads = '4'
        emulatedMachines = ['rhel6.5.0',
                            'pc',
                            'rhel6.4.0',
                            'rhel6.3.0',
                            'rhel6.2.0',
                            'rhel6.1.0',
                            'rhel6.0.0',
                            'rhel5.5.0',
                            'rhel5.4.4',
                            'rhel5.4.0']
        guestOverhead = '65'
        hooks = {}
        kvmEnabled = 'true'
        lastClient = '10.35.128.38'
        lastClientIface = 'rhevm'
        management_ip = '0.0.0.0'
        memSize = '7872'
        netConfigDirty = 'True'
        networks = {'mtu5000': {'addr': '',
                                'bridged': True,
                                'cfg': {'DEFROUTE': 'no',
                                        'DELAY': '0',
                                        'DEVICE': 'mtu5000',
                                        'HOTPLUG': 'no',
                                        'MTU': '5000',
                                        'NM_CONTROLLED': 'no',
                                        'ONBOOT': 'yes',
                                        'STP': 'no',
                                        'TYPE': 'Bridge'},
                                'gateway': '',
                                'iface': 'mtu5000',
                                'ipv6addrs': ['fe80::21b:21ff:fed0:bb4a/64'],
                                'ipv6gateway': '::',
                                'mtu': '5000',
                                'netmask': '',
                                'ports': ['bond0.222'],
                                'stp': 'off'},
                    'rhevm': {'addr': '10.35.128.38',
                              'bridged': True,
                              'cfg': {'BOOTPROTO': 'dhcp',
                                      'DEFROUTE': 'yes',
                                      'DELAY': '0',
                                      'DEVICE': 'rhevm',
                                      'NM_CONTROLLED': 'no',
                                      'ONBOOT': 'yes',
                                      'STP': 'no',
                                      'TYPE': 'Bridge'},
                              'gateway': '10.35.128.254',
                              'iface': 'rhevm',
                              'ipv6addrs': ['fe80::221:5eff:fe3f:db2c/64'],
                              'ipv6gateway': '::',
                              'mtu': '1500',
                              'netmask': '255.255.255.0',
                              'ports': ['eth0'],
                              'stp': 'off'}}
        nics = {'eth0': {'addr': '',
                         'cfg': {'BRIDGE': 'rhevm',
                                 'DEVICE': 'eth0',
                                 'HWADDR': '00:21:5e:3f:db:2c',
                                 'NM_CONTROLLED': 'no',
                                 'ONBOOT': 'yes',
                                 'STP': 'no'},
                         'hwaddr': '00:21:5e:3f:db:2c',
                         'ipv6addrs': ['fe80::221:5eff:fe3f:db2c/64'],
                         'mtu': '1500',
                         'netmask': '',
                         'speed': 1000},
                'eth1': {'addr': '',
                         'cfg': {'DEVICE': 'eth1',
                                 'HWADDR': '00:21:5e:3f:db:2e',
                                 'MTU': '1500',
                                 'ONBOOT': 'yes'},
                         'hwaddr': '00:21:5e:3f:db:2e',
                         'ipv6addrs': ['fe80::221:5eff:fe3f:db2e/64'],
                         'mtu': '1500',
                         'netmask': '',
                         'speed': 1000},
                'eth2': {'addr': '',
                         'cfg': {'DEVICE': 'eth2',
                                 'HWADDR': '00:1b:21:d0:bb:4a',
                                 'MASTER': 'bond0',
                                 'MTU': '9000',
                                 'NM_CONTROLLED': 'no',
                                 'ONBOOT': 'yes',
                                 'SLAVE': 'yes',
                                 'STP': 'no'},
                         'hwaddr': '00:1b:21:d0:bb:4a',
                         'ipv6addrs': [],
                         'mtu': '9000',
                         'netmask': '',
                         'permhwaddr': '00:1B:21:D0:BB:4A',
                         'speed': 1000},
                'eth3': {'addr': '',
                         'cfg': {'DEVICE': 'eth3',
                                 'HWADDR': '00:1b:21:d0:bb:4b',
                                 'MASTER': 'bond0',
                                 'MTU': '9000',
                                 'NM_CONTROLLED': 'no',
                                 'ONBOOT': 'yes',
                                 'SLAVE': 'yes',
                                 'STP': 'no'},
                         'hwaddr': '00:1b:21:d0:bb:4a',
                         'ipv6addrs': [],
                         'mtu': '5000',
                         'netmask': '',
                         'permhwaddr': '00:1B:21:D0:BB:4B',
                         'speed': 1000}}
        operatingSystem = {'name': 'RHEL', 'release': '6.5.0.1.el6', 'version': '6Server'}
        packages2 = {'kernel': {'buildtime': 1385278657.0,
                                'release': '431.1.2.el6.x86_64',
                                'version': '2.6.32'},
                     'libvirt': {'buildtime': 1393584604,
                                 'release': '29.el6_5.5',
                                 'version': '0.10.2'},
                     'mom': {'buildtime': 1392224015, 'release': '1.el6ev', 'version': '0.4.0'},
                     'qemu-img': {'buildtime': 1393935192,
                                  'release': '2.415.el6_5.6',
                                  'version': '0.12.1.2'},
                     'qemu-kvm': {'buildtime': 1393935192,
                                  'release': '2.415.el6_5.6',
                                  'version': '0.12.1.2'},
                     'spice-server': {'buildtime': 1385990636,
                                      'release': '6.el6_5.1',
                                      'version': '0.12.4'},
                     'vdsm': {'buildtime': 1403687001, 'release': '4.el6ev', 'version': '4.14.7'}}
        reservedMem = '321'
        rngSources = ['random']
        software_revision = '4'
        software_version = '4.14'
        supportedENGINEs = ['3.0', '3.1', '3.2', '3.3', '3.4']
        supportedProtocols = ['2.2', '2.3']
        supportedRHEVMs = ['3.0']
        uuid = 'B494A402-4B76-3796-BDF1-B76758D61B1B'
        version_name = 'Snow Man'
        vlans = {'bond0.222': {'addr': '',
                               'cfg': {'BRIDGE': 'mtu5000',
                                       'DEVICE': 'bond0.222',
                                       'HOTPLUG': 'no',
                                       'MTU': '5000',
                                       'NM_CONTROLLED': 'no',
                                       'ONBOOT': 'yes',
                                       'STP': 'no',
                                       'VLAN': 'yes'},
                               'iface': 'bond0',
                               'ipv6addrs': ['fe80::21b:21ff:fed0:bb4a/64'],
                               'mtu': '5000',
                               'netmask': '',
                               'vlanid': 222}}
        vmTypes = ['kvm']

Comment 2 Antoni Segura Puimedon 2014-07-04 11:36:50 UTC
This is mostly a summary of setupNetworks commands in vdsm.log:

First one example in which first we set bond0 with nics [eth2, eth3] and mtu
9000 and then we break the bond and set those nics on a bonded network with
mtu 5000, but with bond1. So, changing which bonding name we use.

Create network with bond0{eth2, eth3} mtu=9000
    Thread-14::DEBUG::2014-06-29 16:03:01,312::BindingXMLRPC::1067::vds::(wrapper)
        client [10.35.163.63]::call setupNetworks with
        ({'sw162': {
            'bonding': 'bond0',
            'vlan': '201',
            'STP': 'no',
            'bridged': 'true',
            'mtu': '9000'}}, <-------------------
         {'bond0': {
             'nics': ['eth2', 'eth3'],
             'options': 'mode=1'}},
         {'connectivityCheck': 'true',
         'connectivityTimeout': 60})
        {} flowID [cb9d4174-4880-4c09_sendSNRequest_syncAction]
    Thread-14::DEBUG::2014-06-29 16:03:04,981::BindingXMLRPC::1074::vds::(wrapper)
        return setupNetworks with {'status': {'message': 'Done', 'code': 0}}

After this, the relevant mtus are:

    'networks': {
        'sw162': {
            'iface': 'sw162',
            'addr': '',
            'cfg': {
                'DEFROUTE': 'no',
                'HOTPLUG': 'no',
                'MTU': '9000', <-------------------
                'DELAY': '0',
                'NM_CONTROLLED': 'no',
                'STP': 'no',
                'DEVICE': 'sw162',
                'TYPE': 'Bridge',
                'ONBOOT': 'yes'},
            'ipv6addrs': ['fe80::21b:21ff:fed0:bb4a/64'],
            'gateway': '',
            'netmask': '',
            'stp': 'off',
            'bridged': True,
            'mtu': '9000', <-------------------
            'ipv6gateway': '::',
            'ports': ['bond0.201']}},

    'bridges': {
        sw162': {
            'addr': '',
            'cfg': {
                'DEFROUTE': 'no',
                'HOTPLUG': 'no',
                'MTU': '9000',  <-------------------
                'DELAY': '0',
                'NM_CONTROLLED': 'no',
                'STP': 'no',
                'DEVICE': 'sw162',
                'TYPE': 'Bridge',
                'ONBOOT': 'yes'},
            'ipv6addrs': ['fe80::21b:21ff:fed0:bb4a/64'],
            'mtu': '9000',  <-------------------
            'netmask': '',
            'stp': 'off',
            'ipv6gateway': '::',
            'gateway': '',
            'ports': ['bond0.201']}},

    'nics': {
        'eth3': {
            'netmask': '',
            'addr': '',
            'hwaddr': '00:1b:21:d0:bb:4a',
            'cfg': {
                'SLAVE': 'yes',
                'NM_CONTROLLED': 'no',
                'MTU': '9000',  <-------------------
                'HWADDR': '00:1b:21:d0:bb:4b',
                'MASTER': 'bond0',
                'DEVICE': 'eth3',
                'STP': 'no',
                'ONBOOT': 'yes'},
            'ipv6addrs': [],
            'permhwaddr': '00:1B:21:D0:BB:4B',
            'speed': 0,
            'mtu': '9000'},  <-------------------
        'eth2': {
            'netmask': '',
            'addr': '',
            'hwaddr': '00:1b:21:d0:bb:4a',
            'cfg': {
                'SLAVE': 'yes',
                'NM_CONTROLLED': 'no',
                'MTU': '9000',  <-------------------
                'HWADDR': '00:1b:21:d0:bb:4a',
                'MASTER': 'bond0',
                'DEVICE': 'eth2',
                'STP': 'no',
                'ONBOOT': 'yes'},
            'ipv6addrs': [],
            'permhwaddr': '00:1B:21:D0:BB:4A',
            'speed': 0,
            'mtu': '9000'}},  <-------------------

    'bondings': {
        'bond0': {
            'netmask': '',
            'addr': '',
            'slaves': ['eth2', 'eth3'],
            'hwaddr': '00:1b:21:d0:bb:4a',
            'cfg': {
                'HOTPLUG': 'no',
                'MTU': '9000',  <-------------------
                'NM_CONTROLLED': 'no',
                'STP': 'no',
                'BONDING_OPTS': 'mode=1',
                'DEVICE': 'bond0',
                'ONBOOT': 'yes'},
            'ipv6addrs': [],
            'mtu': '9000'},  <-------------------
           },

    'vlans': {
        'bond0.201': {
            'netmask': '',
            'iface': 'bond0',
            'addr': '',
            'cfg': {
                'BRIDGE': 'sw162',
                'VLAN': 'yes',
                'HOTPLUG': 'no',
                'MTU': '9000',  <-------------------
                'NM_CONTROLLED': 'no',
                'STP': 'no',
                'DEVICE': 'bond0.201',
                'ONBOOT': 'yes'},
            'ipv6addrs': [],
            'vlanid': 201,
            'mtu': '9000'}},  <-------------------

Remove the network and the bond:

    Thread-14::DEBUG::2014-06-29 16:03:11,060::BindingXMLRPC::1067::vds::(wrapper)
        client [10.35.163.63]::call setupNetworks with
        ({'sw162': {'remove': 'true'}},
         {'bond0': {'remove': 'true'}},
         {'connectivityCheck': 'true',
          'connectivityTimeout': 60})
        {} flowID [c1292f46-1c19-413d_sendSNRequest_syncAction]
    Thread-14::DEBUG::2014-06-29 16:03:14,589::BindingXMLRPC::1074::vds::(wrapper)
        return setupNetworks with {'status': {'message': 'Done', 'code': 0}}

After this, the relevant mtus are:

    'networks': {},

    'bridges': {},

    'nics': {
        'eth3': {
            'netmask': '',
            'addr': '',
            'hwaddr': '00:1b:21:d0:bb:4b',
            'cfg': {
                'DEVICE': 'eth3',
                'HWADDR': '00:1b:21:d0:bb:4b',
                'ONBOOT': 'yes',
                'MTU': '1500'},  <-------------------
            'ipv6addrs': [],
            'speed': 0,
            'mtu': '1500'},  <-------------------
        'eth2': {
            'netmask': '',
            'addr': '',
            'hwaddr': '00:1b:21:d0:bb:4a',
            'cfg': {
                'DEVICE': 'eth2',
                'HWADDR': '00:1b:21:d0:bb:4a',
                'ONBOOT': 'yes',
                'MTU': '1500'},  <-------------------
            'ipv6addrs': [],
            'speed': 0,
            'mtu': '1500'}},  <-------------------

    'bondings': {
        'bond0': {
            'netmask': '',
            'addr': '',
            'slaves': [],
            'hwaddr': '00:00:00:00:00:00',
            'cfg': {},
            'ipv6addrs': [],
            'mtu': '9000'}},  <-------------------
    'vlans': {},

As we can see, the nics returned to the default mtu value (1500) but bond0
remained with a 9000 value.

Create a network with mtu 5000 using the same nics in a bond:

    Thread-14::DEBUG::2014-06-29 16:03:18,580::BindingXMLRPC::1067::vds::(wrapper)
        client [10.35.163.63]::call setupNetworks with
        ({'sw162': {
            'bonding': 'bond1',
            'vlan': '201',
            'STP': 'no',
            'bridged': 'true',
            'mtu': '5000'}},  <-------------------
         {'bond1': {
             'nics': ['eth2', 'eth3'],
             'options': 'mode=1'}},
         {'connectivityCheck': 'true',
          'connectivityTimeout': 60})
        {} flowID [c508da20-a094-4718_sendSNRequest_syncAction]
    Thread-14::DEBUG::2014-06-29 16:03:22,139::BindingXMLRPC::1074::vds::(wrapper)
        return setupNetworks with {'status': {'message': 'Done', 'code': 0}}

After this, the relevant mtus are:
    'networks': {
        'sw162': {
            'iface': 'sw162',
            'addr': '',
            'cfg': {
                'DEFROUTE': 'no',
                'HOTPLUG': 'no',
                'MTU': '5000', <-----------------
                'DELAY': '0',
                'NM_CONTROLLED': 'no',
                'STP': 'no',
                'DEVICE': 'sw162',
                'TYPE': 'Bridge',
                'ONBOOT': 'yes'},
            'ipv6addrs': ['fe80::21b:21ff:fed0:bb4a/64'],
            'gateway': '',
            'netmask': '',
            'stp': 'off',
            'bridged': True,
            'mtu': '5000', <-----------------
            'ipv6gateway': '::',
            'ports': ['bond1.201']}},

    'bridges': {
        'sw162': {
            'addr': '',
            'cfg': {
                'DEFROUTE': 'no',
                'HOTPLUG': 'no',
                'MTU': '5000', <-----------------
                'DELAY': '0',
                'NM_CONTROLLED': 'no',
                'STP': 'no',
                'DEVICE': 'sw162',
                'TYPE': 'Bridge',
                'ONBOOT': 'yes'},
            'ipv6addrs': ['fe80::21b:21ff:fed0:bb4a/64'],
            'mtu': '5000', <-----------------
            'netmask': '',
            'stp': 'off',
            'ipv6gateway': '::',
            'gateway': '',
            'ports': ['bond1.201']}},

    'nics': {
        'eth3': {
            'netmask': '',
            'addr': '',
            'hwaddr': '00:1b:21:d0:bb:4a',
            'cfg': {
                'SLAVE': 'yes',
                'NM_CONTROLLED': 'no',
                'MTU': '5000', <-----------------
                'HWADDR': '00:1b:21:d0:bb:4b',
                'MASTER': 'bond1',
                'DEVICE': 'eth3',
                'STP': 'no',
                'ONBOOT': 'yes'},
            'ipv6addrs': [],
            'permhwaddr': '00:1B:21:D0:BB:4B',
            'speed': 0,
            'mtu': '5000'}, <-----------------
        'eth2': {
            'netmask': '',
            'addr': '',
            'hwaddr': '00:1b:21:d0:bb:4a',
            'cfg': {
                'SLAVE': 'yes',
                'NM_CONTROLLED': 'no',
                'MTU': '5000', <-----------------
                'HWADDR': '00:1b:21:d0:bb:4a',
                'MASTER': 'bond1',
                'DEVICE': 'eth2',
                'STP': 'no',
                'ONBOOT': 'yes'},
            'ipv6addrs': [],
            'permhwaddr': '00:1B:21:D0:BB:4A',
            'speed': 0,
            'mtu': '5000'}}, <-----------------

    'bondings': {
        'bond1': {
            'netmask': '',
            'addr': '',
            'slaves': ['eth2', 'eth3'],
            'hwaddr': '00:1b:21:d0:bb:4a',
            'cfg': {
                'HOTPLUG': 'no',
                'MTU': '5000', <-----------------
                'NM_CONTROLLED': 'no',
                'STP': 'no',
                'BONDING_OPTS': 'mode=1',
                'DEVICE': 'bond1',
                'ONBOOT': 'yes'},
            'ipv6addrs': ['fe80::21b:21ff:fed0:bb4a/64'],
            'mtu': '5000'}}, <-----------------

    'vlans': {
        'bond1.201': {
        'netmask': '',
        'iface': 'bond1',
        'addr': '',
        'cfg': {
            'BRIDGE': 'sw162',
            'VLAN': 'yes',
            'HOTPLUG': 'no',
            'MTU': '5000', <-----------------
            'NM_CONTROLLED': 'no',
            'STP': 'no',
            'DEVICE': 'bond1.201',
            'ONBOOT': 'yes'},
        'ipv6addrs': ['fe80::21b:21ff:fed0:bb4a/64'],
        'vlanid': 201,
        'mtu': '5000'}}, <-----------------

From what I can see, the mtus are right, all of them 5000 (while bond0 stayed
at 9000).

Now, for the reported part of the log:
    Thread-14::DEBUG::2014-06-30 12:15:28,843::BindingXMLRPC::1067::vds::(wrapper)
        client [10.35.163.63]::call setupNetworks with
        ({'mtu9000': {
            'bonding':
            'bond0',
            'vlan': '162',
            'STP': 'no',
            'bridged': 'true',
            'mtu': '9000'}}, <-----------------
         {'bond0': {
             'nics': ['eth3', 'eth2'],
             'options': 'mode=1 miimon=100'}},
         {'connectivityCheck': 'true',
          'connectivityTimeout': 120})
        {} flowID [e5ce120]
 
    Thread-14::DEBUG::2014-06-30 12:15:32,523::BindingXMLRPC::1074::vds::(wrapper)
        return setupNetworks with {'status': {'message': 'Done', 'code': 0}}

And the reported relevant mtus are:

    networks': {
        'mtu9000': {
            'iface': 'mtu9000',
            'addr': '',
            'cfg': {
                'DEFROUTE': 'no',
                'HOTPLUG': 'no',
                'MTU': '9000', <-----------------
                'DELAY': '0',
                'NM_CONTROLLED': 'no',
                'STP': 'no',
                'DEVICE': 'mtu9000',
                'TYPE': 'Bridge',
                'ONBOOT': 'yes'},
            'ipv6addrs': ['fe80::21b:21ff:fed0:bb4a/64'],
            'gateway': '',
            'netmask': '',
            'stp': 'off',
            'bridged': True,
            'mtu': '9000', <-----------------
            'ipv6gateway': '::',
            'ports': ['bond0.162']}},

    'bridges': {
        'mtu9000': {
            'addr': '',
            'cfg': {
                'DEFROUTE': 'no',
                'HOTPLUG': 'no',
                'MTU': '9000', <-----------------
                'DELAY': '0',
                'NM_CONTROLLED': 'no',
                'STP': 'no',
                'DEVICE': 'mtu9000',
                'TYPE': 'Bridge',
                'ONBOOT': 'yes'},
            'ipv6addrs': ['fe80::21b:21ff:fed0:bb4a/64'],
            'mtu': '9000', <-----------------
            'netmask': '',
            'stp': 'off',
            'ipv6gateway': '::',
            'gateway': '',
            'ports': ['bond0.162']}},

    'nics': {
        'eth3': {
            'netmask': '',
            'addr': '',
            'hwaddr': '00:1b:21:d0:bb:4a',
            'cfg': {
                'SLAVE': 'yes',
                'NM_CONTROLLED': 'no',
                'MTU': '9000', <-----------------
                'HWADDR': '00:1b:21:d0:bb:4b',
                'MASTER': 'bond0',
                'DEVICE': 'eth3',
                'STP': 'no',
                'ONBOOT': 'yes'},
            'ipv6addrs': [],
            'permhwaddr': '00:1B:21:D0:BB:4B',
            'speed': 0,
            'mtu': '9000'}, <-----------------
        'eth2': {
            'netmask': '',
            'addr': '',
            'hwaddr': '00:1b:21:d0:bb:4a',
            'cfg': {
                'SLAVE': 'yes',
                'NM_CONTROLLED': 'no',
                'MTU': '9000', <-----------------
                'HWADDR': '00:1b:21:d0:bb:4a',
                'MASTER': 'bond0',
                'DEVICE': 'eth2',
                'STP': 'no',
                'ONBOOT': 'yes'},
            'ipv6addrs': [],
            'permhwaddr': '00:1B:21:D0:BB:4A',
            'speed': 0,
            'mtu': '9000'}, <-----------------
        'eth1': , 'eth0': },

    'bondings': {
        'bond0': {
            'netmask': '',
            'addr': '',
            'slaves': ['eth2', 'eth3'],
            'hwaddr': '00:1b:21:d0:bb:4a',
            'cfg': {
                'HOTPLUG': 'no',
                'MTU': '9000', <-----------------
                'NM_CONTROLLED': 'no',
                'STP': 'no',
                'BONDING_OPTS': 'mode=1 miimon=100',
                'DEVICE': 'bond0',
                'ONBOOT': 'yes'},
            'ipv6addrs': [],
            'mtu': '9000'}}, <-----------------

    'vlans': {
        'bond0.162': {
            'netmask': '',
            'iface': 'bond0',
            'addr': '',
            'cfg': {
                'BRIDGE': 'mtu9000',
                'VLAN': 'yes',
                'HOTPLUG': 'no',
                'MTU': '9000', <-----------------
                'NM_CONTROLLED': 'no',
                'STP': 'no',
                'DEVICE': 'bond0.162',
                'ONBOOT': 'yes'},
            'ipv6addrs': [],
            'vlanid': 162,
            'mtu': '9000'}}, <-----------------

Everything is as expected, all the mtus are 9000
Now the bond removal:
    Thread-14::DEBUG::2014-06-30 12:19:46,782::BindingXMLRPC::1067::vds::(wrapper)
        client [10.35.163.63]::call setupNetworks with
        ({'mtu9000': {'remove': 'true'}},
         {'bond0': {'remove': 'true'}},
         {'connectivityCheck': 'true', 'connectivityTimeout': 120})
        {} flowID [46ca7a6b]
    Thread-14::DEBUG::2014-06-30 12:19:50,413::BindingXMLRPC::1074::vds::(wrapper)
        return setupNetworks with {'status': {'message': 'Done', 'code': 0}}

And the relevant mtus:

'networks': {},

'bridges': {},

'nics': {
    'eth3': {
        'netmask': '',
        'addr': '',
        'hwaddr': '00:1b:21:d0:bb:4b',
        'cfg': {
            'DEVICE': 'eth3',
            'HWADDR': '00:1b:21:d0:bb:4b',
            'ONBOOT': 'yes',
            'MTU': '1500'},
        'ipv6addrs': [],
        'speed': 0,
        'mtu': '1500'},
    'eth2': {
        'netmask': '',
        'addr': '',
        'hwaddr': '00:1b:21:d0:bb:4a',
        'cfg': {
            'DEVICE': 'eth2',
            'HWADDR': '00:1b:21:d0:bb:4a',
            'ONBOOT': 'yes',
            'MTU': '1500'},
        'ipv6addrs': [],
        'speed': 0,
        'mtu': '1500'}},

'bondings': {
    'bond0': {
        'netmask': '',
        'addr': '',
        'slaves': [],
        'hwaddr': '00:00:00:00:00:00',
        'cfg': {},
        'ipv6addrs': [],
        'mtu': '9000'}},

'vlans': {},

As we can see (again) the nics returned to mtu=1500 but bond0 stayed at mtu
9000.

Now we create the mtu=5000 network over bond0 with slaves eth2 and eth3

    Thread-13::DEBUG::2014-06-30 13:58:24,392::BindingXMLRPC::1067::vds::(wrapper)
        client [10.35.163.63]::call setupNetworks with
        ({'mtu5000': {
             'bonding': 'bond0',
             'vlan': '222',
             'STP': 'no',
             'bridged': 'true',
             'mtu': '5000'}},
         {'bond0': {
             'nics': ['eth3', 'eth2'],
             'options': 'mode=1 miimon=100'}},
         {'connectivityCheck': 'true',
          'connectivityTimeout': 120})
        {} flowID [2e9ce98b]

    Thread-13::DEBUG::2014-06-30 13:58:28,000::BindingXMLRPC::1074::vds::(wrapper)
        return setupNetworks with {'status': {'message': 'Done', 'code': 0}}

And the relevant mtus:

'networks': {
    'mtu5000': {
        'iface': 'mtu5000',
        'addr': '',
        'cfg': {
            'DEFROUTE': 'no',
            'HOTPLUG': 'no',
            'MTU': '5000', <-----------------
            'DELAY': '0',
            'NM_CONTROLLED': 'no',
            'STP': 'no',
            'DEVICE': 'mtu5000',
            'TYPE': 'Bridge',
            'ONBOOT': 'yes'},
        'ipv6addrs': ['fe80::21b:21ff:fed0:bb4a/64'],
        'gateway': '',
        'netmask': '',
        'stp': 'off',
        'bridged': True,
        'mtu': '5000', <-----------------
        'ipv6gateway': '::',
        'ports': ['bond0.222']}},

'bridges': {
    'mtu5000': {
        'addr': '',
        'cfg': {
            'DEFROUTE': 'no',
            'HOTPLUG': 'no',
            'MTU': '5000', <-----------------
            'DELAY': '0',
            'NM_CONTROLLED': 'no',
            'STP': 'no',
            'DEVICE': 'mtu5000',
            'TYPE': 'Bridge',
            'ONBOOT': 'yes'},
        'ipv6addrs': ['fe80::21b:21ff:fed0:bb4a/64'],
        'mtu': '5000', <-----------------
        'netmask': '',
        'stp': 'off',
        'ipv6gateway': '::',
        'gateway': '',
        'ports': ['bond0.222']},
        ';vdsmdummy;': {'addr': '',
        'cfg': {},
        'ipv6addrs': [],
        'mtu': '1500', <-----------------
        'netmask': '',
        'stp': 'off',
        'ipv6gateway': '::',
        'gateway': '',
        'ports': []}},

'nics': {
    'eth3': {
        'netmask': '',
        'addr': '',
        'hwaddr': '00:1b:21:d0:bb:4a',
        'cfg': {
            'SLAVE': 'yes',
            'NM_CONTROLLED': 'no',
            'MTU': '9000', <-----------------
            'HWADDR': '00:1b:21:d0:bb:4b',
            'MASTER': 'bond0',
            'DEVICE': 'eth3',
            'STP': 'no',
            'ONBOOT': 'yes'},
        'ipv6addrs': [],
        'permhwaddr': '00:1B:21:D0:BB:4B',
        'speed': 0,
        'mtu': '5000'}, <-----------------
    'eth2': {
        'netmask': '',
        'addr': '',
        'hwaddr': '00:1b:21:d0:bb:4a',
        'cfg': {
            'SLAVE': 'yes',
            'NM_CONTROLLED': 'no',
            'MTU': '9000', <-----------------
            'HWADDR': '00:1b:21:d0:bb:4a',
            'MASTER': 'bond0',
            'DEVICE': 'eth2',
            'STP': 'no',
            'ONBOOT': 'yes'},
        'ipv6addrs': [],
        'permhwaddr': '00:1B:21:D0:BB:4A',
        'speed': 0,
        'mtu': '9000'}}, <-----------------

'bondings': {
    'bond0': {
        'netmask': '',
        'addr': '',
        'slaves': ['eth2', 'eth3'],
        'hwaddr': '00:1b:21:d0:bb:4a',
        'cfg': {
            'HOTPLUG': 'no',
            'MTU': '5000', <-----------------
            'NM_CONTROLLED': 'no',
            'STP': 'no',
            'BONDING_OPTS': 'mode=1 miimon=100',
            'DEVICE': 'bond0',
            'ONBOOT': 'yes'},
        'ipv6addrs': [],
        'mtu': '5000'}}, <-----------------

'vlans': {
    'bond0.222': {
        'netmask': '',
        'iface': 'bond0',
        'addr': '',
        'cfg': {
            'BRIDGE': 'mtu5000',
            'VLAN': 'yes',
            'HOTPLUG': 'no',
            'MTU': '5000', <-----------------
            'NM_CONTROLLED': 'no',
            'STP': 'no',
            'DEVICE': 'bond0.222',
            'ONBOOT': 'yes'},
        'ipv6addrs': [],
        'vlanid': 222,
        'mtu': '5000'}}, <-----------------

We can see here that, while bond0 and eth3 have the right mtu (5000), eth2
remained with the 9000 value.

I think that the newest code should destroy the bond0 and thus this should not
reproduce.

Comment 3 Antoni Segura Puimedon 2014-07-10 23:38:04 UTC
Trying to reproduce on upstream target (oVirt-3.5)

First we create the mtu9000 network over bond0 with nics eth1 and eth2:
    In [1]: from vdsm import netinfo
    In [2]: from vdsm import vdscli
    In [3]: c = vdscli.connect()
    In [4]: c.setupNetworks({'mtu9000': {'bonding': 'bond0', 'mtu': 9000}}, {'bond0': {'nics': ['eth1', 'eth2']}}, {'connectivityCheck': False})
    Out[4]: {'status': {'code': 0, 'message': 'Done'}}

We check the mtus afterwards

    In [5]: netinfo.NetInfo(c.getVdsCapabilities()['info']).networks
    Out[5]: 
    {'mtu9000': {'addr': '',
      'bootproto4': 'none',
      'bridged': True,
      'cfg': {'BOOTPROTO': 'none',
       'DEFROUTE': 'no',
       'DELAY': '0',
       'DEVICE': 'mtu9000',
       'HOTPLUG': 'no',
       'MTU': '9000',
       'NM_CONTROLLED': 'no',
       'ONBOOT': 'no',
       'STP': 'off',
       'TYPE': 'Bridge'},
      'gateway': '',
      'iface': 'mtu9000',
      'ipv4addrs': [],
      'ipv6addrs': ['2620:52:0:223c:21a:4aff:fe0c:8792/64',
       'fe80::21a:4aff:fe0c:8792/64'],
      'ipv6gateway': 'fe80:52:0:223c::3fe',
      'mtu': '9000',  <------------------------------------------------
      'netmask': '',
      'ports': ['bond0'],
      'stp': 'off'}}

    In [6]: netinfo.NetInfo(c.getVdsCapabilities()['info']).nics['eth1']
    Out[6]: 
    {'addr': '',
     'cfg': {'DEVICE': 'eth1',
      'HWADDR': '00:1a:4a:0c:87:92',
      'MASTER': 'bond0',
      'MTU': '9000',
      'NM_CONTROLLED': 'no',
      'ONBOOT': 'no',
      'SLAVE': 'yes'},
     'hwaddr': '00:1a:4a:0c:87:92',
     'ipv4addrs': [],
     'ipv6addrs': [],
     'mtu': '9000',  <------------------------------------------------
     'netmask': '',
     'permhwaddr': '00:1A:4A:0C:87:92',
     'speed': 0}

    In [7]: netinfo.NetInfo(c.getVdsCapabilities()['info']).nics['eth2']
    Out[7]: 
    {'addr': '',
     'cfg': {'DEVICE': 'eth2',
      'HWADDR': '00:1a:4a:0c:87:93',
      'MASTER': 'bond0',
      'MTU': '9000',
      'NM_CONTROLLED': 'no',
      'ONBOOT': 'no',
      'SLAVE': 'yes'},
     'hwaddr': '00:1a:4a:0c:87:92',
     'ipv4addrs': [],
     'ipv6addrs': [],
     'mtu': '9000',  <------------------------------------------------
     'netmask': '',
     'permhwaddr': '00:1A:4A:0C:87:93',
     'speed': 0}

As we can see, the MTUs are correctly set to 9000. Now let's break the bond,
and see the mtus:

    In [8]: c.setupNetworks({'mtu9000': {'remove': True}}, {'bond0': {'remove': True}}, {'connectivityCheck': False})Out[8]: {'status': {'code': 0, 'message': 'Done'}}
    In [9]: netinfo.NetInfo(c.getVdsCapabilities()['info']).networks
    Out[9]: {}

    In [10]: netinfo.NetInfo(c.getVdsCapabilities()['info']).nics['eth1']
    Out[10]: 
    {'addr': '',
     'cfg': {'DEVICE': 'eth1',
      'HWADDR': '00:1a:4a:0c:87:92',
      'MTU': '1500',
      'ONBOOT': 'yes'},
     'hwaddr': '00:1a:4a:0c:87:92',
     'ipv4addrs': [],
     'ipv6addrs': ['fe80::21a:4aff:fe0c:8792/64'],
     'mtu': '1500',  <------------------------------------------------
     'netmask': '',
     'speed': 0}

    In [11]: netinfo.NetInfo(c.getVdsCapabilities()['info']).nics['eth2']
    Out[11]: 
    {'addr': '',
     'cfg': {'DEVICE': 'eth2',
      'HWADDR': '00:1a:4a:0c:87:93',
      'MTU': '1500',
      'ONBOOT': 'yes'},
     'hwaddr': '00:1a:4a:0c:87:93',
     'ipv4addrs': [],
     'ipv6addrs': ['fe80::21a:4aff:fe0c:8793/64'],
     'mtu': '1500',  <------------------------------------------------
     'netmask': '',
     'speed': 0}

    In [12]: netinfo.NetInfo(c.getVdsCapabilities()['info']).bondings['bond0']
    Out[12]: 
    {'addr': '',
     'cfg': {},
     'hwaddr': '00:00:00:00:00:00',
     'mtu': '1500',  <------------------------------------------------
     'netmask': '',
     'slaves': []}

As we can see, in oVirt-3.5, in contrast to oVirt-3.4, the bonds are removed
when broken and the mtu of even the bond returned to the 1500 default value.

Now we setup the mtu5000 network over the same bond and check the mtus:

    In [13]: c.setupNetworks({'mtu5000': {'bonding': 'bond0', 'mtu': 5000}}, {'bond0': {'nics': ['eth1', 'eth2']}}, {'connectivityCheck': False})
    Out[13]: {'status': {'code': 0, 'message': 'Done'}}

    In [14]: netinfo.NetInfo(c.getVdsCapabilities()['info']).networksOut[14]: 
    {'mtu5000': {'addr': '',
      'bootproto4': 'none',
      'bridged': True,
      'cfg': {'BOOTPROTO': 'none',
       'DEFROUTE': 'no',
       'DELAY': '0',
       'DEVICE': 'mtu5000',
       'HOTPLUG': 'no',
       'MTU': '5000',
       'NM_CONTROLLED': 'no',
       'ONBOOT': 'no',
       'STP': 'off',
       'TYPE': 'Bridge'},
      'gateway': '',
      'iface': 'mtu5000',
      'ipv4addrs': [],
      'ipv6addrs': ['2620:52:0:223c:21a:4aff:fe0c:8792/64',
       'fe80::21a:4aff:fe0c:8792/64'],
      'ipv6gateway': 'fe80:52:0:223c::3fe',
      'mtu': '5000',  <------------------------------------------------
      'netmask': '',
      'ports': ['bond0'],
      'stp': 'off'}}

    In [15]: netinfo.NetInfo(c.getVdsCapabilities()['info']).nics['eth1']Out[15]: 
    {'addr': '',
     'cfg': {'DEVICE': 'eth1',
      'HWADDR': '00:1a:4a:0c:87:92',
      'MASTER': 'bond0',
      'MTU': '5000',
      'NM_CONTROLLED': 'no',
      'ONBOOT': 'no',
      'SLAVE': 'yes'},
     'hwaddr': '00:1a:4a:0c:87:92',
     'ipv4addrs': [],
     'ipv6addrs': [],
     'mtu': '5000',  <------------------------------------------------
     'netmask': '',
     'permhwaddr': '00:1A:4A:0C:87:92',
     'speed': 0}

    In [16]: netinfo.NetInfo(c.getVdsCapabilities()['info']).nics['eth2']
    Out[16]: 
    {'addr': '',
     'cfg': {'DEVICE': 'eth2',
      'HWADDR': '00:1a:4a:0c:87:93',
      'MASTER': 'bond0',
      'MTU': '5000',
      'NM_CONTROLLED': 'no',
      'ONBOOT': 'no',
      'SLAVE': 'yes'},
     'hwaddr': '00:1a:4a:0c:87:92',
     'ipv4addrs': [],
     'ipv6addrs': [],
     'mtu': '5000',  <------------------------------------------------
     'netmask': '',
     'permhwaddr': '00:1A:4A:0C:87:93',
     'speed': 0}

    In [17]: netinfo.NetInfo(c.getVdsCapabilities()['info']).bondings['bond0']Out[17]: 
    {'addr': '',
     'cfg': {'BONDING_OPTS': 'mode=802.3ad miimon=150',
      'BRIDGE': 'mtu5000',
      'DEVICE': 'bond0',
      'HOTPLUG': 'no',
      'MTU': '5000',
      'NM_CONTROLLED': 'no',
      'ONBOOT': 'no'},
     'hwaddr': '00:1a:4a:0c:87:92',
     'ipv4addrs': [],
     'ipv6addrs': ['fe80::21a:4aff:fe0c:8792/64'],
     'mtu': '5000',  <------------------------------------------------
     'netmask': '',
     'opts': {'miimon': '150', 'mode': '4'},
     'slaves': ['eth1', 'eth2']}

Since it is fixed in the target version, I'm closing the bug. If needed to retarget to 3.4, feel free to reopen and I'll backport the relevant 3.5 patches.