Incorret number of interfaces in bond

Bug #1428776 reported by Egor Kotko
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Fix Committed
High
Aleksey Kasatkin
5.1.x
Fix Committed
High
Aleksey Kasatkin
6.0.x
Fix Committed
High
Aleksey Kasatkin

Bug Description

{"build_id": "2015-02-25_16-58-13", "ostf_sha": "1a0b2c6618fac098473c2ed5a9af11d3a886a3bb", "build_number": "357", "release_versions": {"2014.2-6.1": {"VERSION": {"build_id": "2015-02-25_16-58-13", "ostf_sha": "1a0b2c6618fac098473c2ed5a9af11d3a886a3bb", "build_number": "357", "api": "1.0", "nailgun_sha": "3b148c7881e180fc41d0d3f6000567878e1df87b", "production": "docker", "python-fuelclient_sha": "5657dbf06fddb74adb61e9668eb579a1c57d8af8", "astute_sha": "6d6ad68e0cde286d74ac7d52e21da4fc8dcbe9ab", "feature_groups": ["mirantis"], "release": "6.1", "fuelmain_sha": "87223c15bb734bb668050850a6b43aa4291349b7", "fuellib_sha": "2f9fd8e2ece0ef06cb3b78e383df3ee14e62bea3"}}}, "auth_required": true, "api": "1.0", "nailgun_sha": "3b148c7881e180fc41d0d3f6000567878e1df87b", "production": "docker", "python-fuelclient_sha": "5657dbf06fddb74adb61e9668eb579a1c57d8af8", "astute_sha": "6d6ad68e0cde286d74ac7d52e21da4fc8dcbe9ab", "feature_groups": ["mirantis"], "release": "6.1", "fuelmain_sha": "87223c15bb734bb668050850a6b43aa4291349b7", "fuellib_sha": "2f9fd8e2ece0ef06cb3b78e383df3ee14e62bea3"}

Steps to reproduce:
1. Setup master
2. Add several nodes, create bond from 2 interfaces:
LACP, layer3+4, rate slow
3. Deploy cluster

Expected result:
Will be displayed 2 interfaces in UI (eth0 eth1)

Actual result:
Displayed 1 interface eth0

Revision history for this message
Egor Kotko (ykotko) wrote :
Egor Kotko (ykotko)
Changed in fuel:
assignee: nobody → Aleksey Kasatkin (alekseyk-ru)
Changed in fuel:
status: New → Confirmed
tags: added: ui
Revision history for this message
Aleksey Kasatkin (alekseyk-ru) wrote :

Api/ui logs are needed. It's not clear UI or Nailgun is responsible for that.

Changed in fuel:
status: Confirmed → Incomplete
Revision history for this message
Aleksey Kasatkin (alekseyk-ru) wrote :

In particular, what was sent from UI when bond was constructed.

Also, ISO is very old )

Changed in fuel:
assignee: Aleksey Kasatkin (alekseyk-ru) → Egor Kotko (ykotko)
Changed in fuel:
assignee: Egor Kotko (ykotko) → Alexandra Morozova (astepanchuk)
status: Incomplete → Confirmed
Revision history for this message
Alexandra Morozova (astepanchuk) wrote :

please, test again

Changed in fuel:
assignee: Alexandra Morozova (astepanchuk) → Egor Kotko (ykotko)
status: Confirmed → Incomplete
Revision history for this message
Alexandra Morozova (astepanchuk) wrote :

It seems to be nailgun issue

PUT request when applying changes:

http://i.imgur.com/8z94ILP.png

http://i.imgur.com/8N1pnZh.png

http://i.imgur.com/wjdPmk9.png

After deploy:
http://i.imgur.com/PJimumB.png

Changed in fuel:
assignee: Egor Kotko (ykotko) → Aleksey Kasatkin (alekseyk-ru)
status: Incomplete → Confirmed
Changed in fuel:
status: Confirmed → In Progress
Revision history for this message
Aleksey Kasatkin (alekseyk-ru) wrote :

The problem is in processing of data sent by agent. Agent sends two equal MACs for eth1 and eth2 after bond (eth1+eth2) was set up on node:

2015-03-26 11:30:28.439 DEBUG [7f75f5f92740] (logger) Request PUT /api/nodes/agent/ from 10.20.0.3:59227 {"mac":"08:00:27:69:AD:6B","ip":"10.20.0.3","os_platform":"u
buntu","manufacturer":"VirtualBox","platform_name":null,"meta":{"system":{"manufacturer":"VirtualBox","serial":"0","uuid":"60B7662E-C1F8-4249-A852-680AA30818BA","fam
ily":"Virtual Machine","version":"1.2","fqdn":"node-6.domain.tld"},"interfaces":[{"name":"eth0","state":"unknown","mac":"08:00:27:69:AD:6B","driver":"pcnet32","bus_i
nfo":"0000:00:03.0","max_speed":100,"current_speed":100},{"name":"eth1","state":"unknown","mac":"08:00:27:21:6C:55","driver":"pcnet32","bus_info":"0000:00:08.0","max
_speed":100,"current_speed":100},{"name":"eth2","state":"unknown","mac":"08:00:27:21:6C:55","driver":"pcnet32","bus_info":"0000:00:09.0","max_speed":100,"current_spe
ed":100}],"cpu":{"total":1,"real":1,"spec":[{"frequency":3397,"model":"Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz"}]},"disks":[{"name":"sda","model":"VBOX HARDDISK","si
ze":68718428160,"disk":"sda","extra":["disk/by-id/ata-VBOX_HARDDISK_VBc55c314f-06559b1d"],"removable":"0"},{"name":"sdb","model":"VBOX HARDDISK","size":68718428160,"
disk":"sdb","extra":["disk/by-id/ata-VBOX_HARDDISK_VBbc819792-98c3ef30"],"removable":"0"},{"name":"sdc","model":"VBOX HARDDISK","size":68718428160,"disk":"sdc","extr
a":["disk/by-id/ata-VBOX_HARDDISK_VB49e99978-0d1267a1"],"removable":"0"}],"memory":{"total":1042264064}},"is_agent":true,"agent_checksum":"0d3c72789e79195358fdbd61f6
e55b713e32c2bf"}

Nailgun erases interfaces with MACs not present in this data.

Revision history for this message
Aleksey Kasatkin (alekseyk-ru) wrote :

Info from Stas M.:

Note - All slaves of bond0 have the same MAC address (Hwaddr) - bond0. All modes, except TLB and ALB, have this MAC address. TLB and ALB require a unique MAC address for each slave.

Changed in fuel:
importance: Medium → High
Revision history for this message
Aleksey Kasatkin (alekseyk-ru) wrote :

So, nailgun lose NICs when they aggregated to bonds. It's required to rework code not to hope on MACs persistance.

Revision history for this message
Aleksey Kasatkin (alekseyk-ru) wrote :

Another possible solution is to deny any changes to nodes' data after start of deployment.

Dmitry Pyzhov (dpyzhov)
tags: added: feature-bonding feature-hardware-change
removed: nailgun ui
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to fuel-web (master)

Fix proposed to branch: master
Review: https://review.openstack.org/169012

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to fuel-web (master)

Reviewed: https://review.openstack.org/169012
Committed: https://git.openstack.org/cgit/stackforge/fuel-web/commit/?id=e687e76d95925ca7f0e5bac19d451ff77dc89b20
Submitter: Jenkins
Branch: master

commit e687e76d95925ca7f0e5bac19d451ff77dc89b20
Author: Aleksey Kasatkin <email address hidden>
Date: Mon Mar 30 20:10:17 2015 +0300

    Allow node interfaces update if it's in 'discover' or 'error' state

    Node inferfaces update is allowed when node is in one of the following states:
    'discover', 'error'. It's locked for other node states.
    It's not locked on node creation, i.e. when node.nic_interfaces is empty yet.

    Partial-Bug: #1425901
    Closes-Bug: #1428776

    Change-Id: Icc60c432296c28e89d71b1fd0dd864870553a467

Changed in fuel:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to fuel-web (stable/5.1)

Fix proposed to branch: stable/5.1
Review: https://review.openstack.org/170078

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to fuel-web (stable/6.0)

Fix proposed to branch: stable/6.0
Review: https://review.openstack.org/170183

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to fuel-web (stable/6.0)

Reviewed: https://review.openstack.org/170183
Committed: https://git.openstack.org/cgit/stackforge/fuel-web/commit/?id=b37c553e063aefdcc8549b0388c343cc63ff52ab
Submitter: Jenkins
Branch: stable/6.0

commit b37c553e063aefdcc8549b0388c343cc63ff52ab
Author: Aleksey Kasatkin <email address hidden>
Date: Mon Mar 30 20:10:17 2015 +0300

    Allow node interfaces update if it's in 'discover' or 'error' state

    Node inferfaces update is allowed when node is in one of the following states:
    'discover', 'error'. It's locked for other node states.
    It's not locked on node creation, i.e. when node.nic_interfaces is empty yet.

    Closes-Bug: #1425901
    Closes-Bug: #1428776
    Change-Id: Icc60c432296c28e89d71b1fd0dd864870553a467

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to fuel-web (stable/5.1)

Reviewed: https://review.openstack.org/170078
Committed: https://git.openstack.org/cgit/stackforge/fuel-web/commit/?id=661a4f9502d2e6101ed2f5eb995bb675e6c3b2c5
Submitter: Jenkins
Branch: stable/5.1

commit 661a4f9502d2e6101ed2f5eb995bb675e6c3b2c5
Author: Aleksey Kasatkin <email address hidden>
Date: Thu Apr 2 14:05:40 2015 +0300

    Allow node interfaces update if it's in 'discover' or 'error' state

    Node inferfaces update is allowed when node is in one of the following states:
    'discover', 'error'. It's locked for other node states.
    It's not locked on node creation, i.e. when node.nic_interfaces is empty yet.

    Closes-Bug: #1425901
    Closes-Bug: #1428776
    Change-Id: Icc60c432296c28e89d71b1fd0dd864870553a467

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.