Bug 1931110

Summary: changing ovs-db external-ids gets stuck
Product: Red Hat Enterprise Linux 9 Reporter: Mingyu Shi <mshi>
Component: nmstateAssignee: Gris Ge <fge>
Status: CLOSED ERRATA QA Contact: Mingyu Shi <mshi>
Severity: medium Docs Contact:
Priority: medium    
Version: 9.0CC: ferferna, jiji, jishi, network-qe, sfaye, till
Target Milestone: rcKeywords: Triaged
Target Release: 9.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-11-15 10:00:44 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:
Attachments:
Description Flags
error log none

Description Mingyu Shi 2021-02-20 17:21:53 UTC
Created attachment 1758445 [details]
error log

Description of problem:
Get stuck when changing ovs-db external-ids.
More ovs types were modified, seems it is easier to reproduce.

Version-Release number of selected component (if applicable):
nmstate-1.0.2-1.el8.noarch
nispor-1.0.1-4.el8.x86_64
NetworkManager-1.30.0-0.10.el8.x86_64
openvswitch2.13-2.13.0-79.el8fdp.x86_64
nmstate-plugin-ovsdb-1.0.2-1.el8.noarch

How reproducible:
Very high

Steps to Reproduce:
cat << EOF > ovsdb.yaml
interfaces:
- name: ovs-br0
  type: ovs-bridge
  state: up
  bridge:
    port:
    - name: dummy0
    - name: patch0
    - name: patch1
    - name: veth0
    - name: ovsbond0
      link-aggregation:
        mode: balance-slb
        slaves:
        - name: veth1
        - name: ovs0
- name: dummy0
  type: dummy
  state: up
  ovs-db: 
    external_ids:
      this: one
- name: ovs0
  type: ovs-interface
  state: up
  ovs-db:
    external_ids:
      this: zero
- name: patch0
  type: ovs-interface
  state: up
  patch:
    peer: patch1
  ovs-db:
    external_ids:
      this: two
- name: patch1
  type: ovs-interface
  state: up
  patch:
    peer: patch0
EOF

cat << EOF > full_edit.yaml
interfaces:
- name: dummy0
  ovs-db:
    external_ids:
      this: I
- name: ovs-br0
  ovs-db:
    external_ids:
      this: new
- name: patch0
  ovs-db:
    external_ids:
      this: II
- name: patch1
  ovs-db:
    external_ids:
      this: III
- name: ovs0
  ovs-db:
    external_ids:
      this: IV
EOF

nmstatectl set ovsdb.yaml && nmstatectl set full_edit.yaml

Actual results:
Failed(stuck)

Expected results:
No failure

Additional info:

Comment 1 Mingyu Shi 2021-02-23 12:29:25 UTC
Here's another stuck action: http://pastebin.test.redhat.com/941989 (It happened when moving patchA(B) from ovs-brA(B) to ovs-brB(A))
I'm not sure if they have the same root cause, hope it helps.

Comment 2 Gris Ge 2022-05-19 08:27:44 UTC
Hi Mingyu,

I am moving this bug to RHEL 9, could you try again on RHEL 9 there?

Comment 4 Gris Ge 2022-06-30 08:20:26 UTC
Patch posted to upstream: https://github.com/nmstate/nmstate/pull/1949

Comment 8 Mingyu Shi 2022-08-08 09:13:29 UTC
Verified with:
nmstate-2.1.3-1.el9.x86_64
NetworkManager-1.39.10-1.el9.x86_64
openvswitch2.15-2.15.0-66.el9fdp.x86_64

Comment 10 errata-xmlrpc 2022-11-15 10:00:44 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 (nmstate bug fix and enhancement update), 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-2022:7991