Bug 1723290

Summary: Timeout error when creating linux bridge with static IPv6 enabled with empty address
Product: Red Hat Enterprise Linux 8 Reporter: Gris Ge <fge>
Component: nmstateAssignee: Gris Ge <fge>
Status: CLOSED ERRATA QA Contact: Mingyu Shi <mshi>
Severity: high Docs Contact:
Priority: high    
Version: 8.1CC: jiji, network-qe, rkhan
Target Milestone: rc   
Target Release: 8.1   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: nmstate-0.0.8-1.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-11-05 20:51:59 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Gris Ge 2019-06-24 07:41:33 UTC
Description of problem:

When applying below config:

```
---
interfaces:
- name: eth1
  type: ethernet
  state: up
- name: br0
  type: linux-bridge
  state: up
  bridge:
    port:
        - name: eth1
  ipv4:
    dhcp: false
    enabled: false
  ipv6:
    autoconf: false
    dhcp: false
    enabled: true
```

The nmstate will get timeout error:

libnmstate.error.NmstateLibnmError: Unexpected failure of libnm when running the mainloop: run timeout

Version-Release number of selected component (if applicable):

nmstate-0.0.7-1.el8.src.rpm
NetworkManager-libnm-1.20.0-0.1.el8.x86_64

How reproducible:
100%

Steps to Reproduce:
1. sudo ip link add eth1 type veth peer name eth2
2. save above config to `1.yml` file.
3. sudo nmstate set 1.yml

Actual results:


Expected results:


Additional info:

Since link local address will be ignored, setting with link local address
has the same effect.

Root cause:

When autoconf and dhcp disabled for IPV6 with no ipv6 address assigned,
the br0 will be set as ipv6.method == link-local.


The NetworkManager try to wait the br0 for link up:

Jun 24 15:37:23 el8 NetworkManager[1011]: <info>  [1561361843.2431] device (br0): IPv6 config waiting until carrier is on

But at the stage of br0 activation, its slave profile is not created yet.

Comment 1 Gris Ge 2019-06-24 07:42:22 UTC
Possible fix would be do the activation after all profiles are created/updated.

Comment 2 Gris Ge 2019-06-24 08:16:42 UTC
And we also need to raise exception when user try to assign IPv4/IPv6 to bridge/bond/etc without slave attached.

Comment 3 Gris Ge 2019-06-24 11:25:03 UTC
Changing IPv6 from link-local method to ignore could also solve the problem.

Comment 4 Gris Ge 2019-06-25 08:11:46 UTC
Patch posted to upstream:

https://github.com/nmstate/nmstate/pull/421

Comment 10 errata-xmlrpc 2019-11-05 20:51:59 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2019:3347