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

Bug 1412563

Summary: parse arp_ip_target with multiple ip properly
Product: [oVirt] vdsm Reporter: Kapetanakis Giannis <bilias>
Component: GeneralAssignee: Dominik Holler <dholler>
Status: CLOSED CURRENTRELEASE QA Contact: Michael Burman <mburman>
Severity: medium Docs Contact:
Priority: medium    
Version: ---CC: bilias, bugs, danken, mburman
Target Milestone: ovirt-4.1.1Flags: rule-engine: ovirt-4.1+
Target Release: 4.19.5   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-04-21 09:42:06 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
screenshot-1
none
screenshot-2 none

Description Kapetanakis Giannis 2017-01-12 10:06:36 UTC
Don't know if this is related with https://bugzilla.redhat.com/show_bug.cgi?id=1391130

In the Web interface (Setup Host Networks) I can see information for the custom bonding but it's wrong:

/var/lib/vdsm/persistence/netconf/bonds/bond0:
"switch": "legacy",
"options": "mode=1 arp_interval=1000 arp_ip_target=10.1.2.1,10.1.3.1 primary=p5p
1"

/etc/sysconfig/network-scripts/ifcfg-bond0:
BONDING_OPTS='mode=1 arp_interval=1000 arp_ip_target=10.1.2.1,10.1.3.1 primary=p5p1'

In the gui it shows:

" arp_interval=1000 mode=1 arp_ip_target=10.1.3.1 primary=p5p1"

There are two errors:
1) One space in front
2) 10.1.2.1 is missing from arp_ip_target

Comment 1 Dan Kenigsberg 2017-01-12 18:58:08 UTC
Could you add a screenshot?

Comment 2 Kapetanakis Giannis 2017-01-13 08:16:02 UTC
Created attachment 1240253 [details]
screenshot-1

Comment 3 Kapetanakis Giannis 2017-01-13 08:16:29 UTC
Created attachment 1240254 [details]
screenshot-2

Comment 4 Dan Kenigsberg 2017-01-15 10:30:55 UTC
bug 1391130 referred only to visual alignment. here we have a problem with content, which was not fixed.

Could you help a bit more by providing `vdsClient -s getVdsCaps` from the host, to make sure the problem is only on Engine?

Comment 5 Kapetanakis Giannis 2017-01-15 20:46:50 UTC
bondings = {'bond0': {'active_slave': 'p5p1',
                              'addr': '10.1.2.31',
                              'cfg': {'BONDING_OPTS': 'mode=1 arp_interval=1000 arp_ip_target=10.1.2.1,10.1.3.1 primary=p5p1',
                                      'BOOTPROTO': 'none',
                                      'DEFROUTE': 'yes',
                                      'DEVICE': 'bond0',
                                      'DNS1': 'xxx,
                                      'DNS2': 'xxx',
                                      'GATEWAY': '10.1.2.1',
                                      'IPADDR': '10.1.2.31',
                                      'IPV6INIT': 'no',
                                      'MTU': '1500',
                                      'NETMASK': '255.255.255.0',
                                      'NM_CONTROLLED': 'no',
                                      'ONBOOT': 'yes'},


The vds seems fine to me.

Comment 6 Kapetanakis Giannis 2017-01-15 20:49:59 UTC
A question: Where does the engine get these details? Are they stored in the database or does it query the client?

Comment 7 Dan Kenigsberg 2017-01-15 22:14:46 UTC
Engine does both: it stores BONDING_OPTS in its DB, and it calls Vdsm's getVdsCaps. It seems that Engine's front end bulks on an option with a comma in its value.

However, which Vdsm version do you use? the output of getVdsCaps in comment 5 seems partial. It should have had an 'opts': {'mode': '0'....} line.

Comment 8 Kapetanakis Giannis 2017-01-16 08:22:06 UTC
yes i missed that line:

'opts': {'arp_interval': '1000',
         'arp_ip_target': '10.1.3.1',
         'mode': '1',
         'primary': 'p5p1'},

It shows only one IP there.

vdsm-4.18.21-1

Comment 9 Dan Kenigsberg 2017-01-16 08:40:37 UTC
So Engine is not to blame. What's in ifcfg-bond0 and /sys/class/net/bond0/bonding/arp_ip_target ?

Comment 10 Kapetanakis Giannis 2017-01-16 08:46:11 UTC
ifcfg-bond0:
BONDING_OPTS='mode=1 arp_interval=1000 arp_ip_target=10.1.2.1,10.1.3.1 primary=p5p1'

/sys/class/net/bond0/bonding/arp_ip_target:
10.1.2.1 10.1.3.1

/proc/net/bonding/bond0:
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: p5p1 (primary_reselect always)
ARP Polling Interval (ms): 1000
ARP IP target/s (n.n.n.n form): 10.1.2.1, 10.1.3.1

All there are correct

Comment 11 Dan Kenigsberg 2017-01-16 09:01:01 UTC
vdsm should report space-separated arp_ip_target option properly.

The kernel converted "10.1.2.1,10.1.3.1" to "10.1.2.1 10.1.3.1".

We (Engine+Vdsm) should decide on one separator (either space of comma) and use it for both input and output.

Comment 12 Kapetanakis Giannis 2017-01-16 09:12:31 UTC
Also keep in mind (comment 1) that the UI also adds a wrong space in front of the options

Comment 13 Dan Kenigsberg 2017-01-16 09:14:15 UTC
Kapetanakis, could you tell if setting a space-separated list works?

"mode=1 arp_interval=1000 arp_ip_target='10.1.2.1 10.1.3.1' primary=p5p1"

note that you'd still see it reported badly in GUI, but I'd like to know if anything else (including REST and /sys/class/net/bond0/bonding/arp_ip_target) works fine.

Comment 14 Kapetanakis Giannis 2017-01-16 09:24:13 UTC
The UI does not let me to set it up like this.

Comment 15 Michael Burman 2017-02-13 08:23:19 UTC
Only one issue of two has fixed on this build.

Engine and vdsm report now multiple IPs for arp_ip_target.

The cosmetic gap wasn't fix.

Setting to verified and will report new bug for the cosmetic UI gap. 

Verified on - 4.1.1-0.1.el7 and vdsm-4.19.5-1.el7ev.x86_64

Comment 16 Kapetanakis Giannis 2017-02-20 10:37:33 UTC
About the second bug, it's not just cosmetic.
If you leave the space in front then you cannot apply/ok as the UI get's it as an error. You have to manually (guess and) delete the space to OK.

Is there a bug id for this submitted?

Comment 17 Dominik Holler 2017-02-20 11:17:53 UTC
This behavior occurs, if the option "miimon" is missing.

During formatting the options string the "mode" and "miimon" options are placed together at first place in the string, and the other options are separated by a space. If one of the "mode" and "miimon" options is missing, nothing is placed before the space.

Comment 18 Dominik Holler 2017-02-20 11:33:07 UTC
This issue if fixed by https://gerrit.ovirt.org/#/c/70923/ in master. If this issue is very urgent, please file a new bug.

Comment 19 Michael Burman 2017-03-07 07:05:01 UTC
(In reply to Dominik Holler from comment #18)
> This issue if fixed by https://gerrit.ovirt.org/#/c/70923/ in master. If
> this issue is very urgent, please file a new bug.

See BZ 1429810