flaky test: ovn-controller update network name option for localnet port

Bug #2066194 reported by Frode Nordahl
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ovn (Ubuntu)
New
Undecided
Unassigned

Bug Description

Full log: https://buildd.debian.org/status/fetch.php?pkg=ovn&arch=riscv64&ver=24.03.2-1&stamp=1716223822&raw=0

The actual test appears to succeed, but in some situations ovs-vswitchd will log a WARN during teardown:
./ovn.at:35715: check_logs "
        $error
        /connection failed (No such file or directory)/d
        /has no network name*/d
        /receive tunnel port not found*/d
        /Failed to locate tunnel to reach main chassis/d
        /Transaction causes multiple rows.*MAC_Binding/d
    " $sbox
--- /dev/null 2024-05-19 10:34:30.132000000 +0000
+++ /<<PKGBUILDDIR>>/tests/testsuite.dir/at-groups/485/stdout 2024-05-20 16:49:57.831299995 +0000
@@ -0,0 +1 @@
+2024-05-20T16:49:56.722Z|00307|ofproto_dpif_xlate|WARN|received packet on unknown port 2 on bridge br-phys-1 while processing arp,in_port=CONTROLLER,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=10.0.0.1,arp_tpa=10.0.0.1,arp_op=1,arp_sha=00:00:00:00:00:01,arp_tha=00:00:00:00:00:00

To me this looks benign, and I suggest we just ignore this warning during tear down.

# -*- compilation -*-
485. ovn.at:35715: testing ovn-controller update network_name option for localnet port -- parallelization=yes -- ovn_monitor_all=yes ...
creating ovn-sb database
ovsdb-server -vjsonrpc --remote=punix:/<<PKGBUILDDIR>>/tests/testsuite.dir/485/ovn-sb/ovn-sb.sock --remote=db:OVN_Southbound,SB_Global,connections --private-key=/<<PKGBUILDDIR>>/tests/testpki-test-privkey.pem --certificate=/<<PKGBUILDDIR>>/tests/testpki-test-cert.pem --ca-cert=/<<PKGBUILDDIR>>/tests/testpki-cacert.pem /<<PKGBUILDDIR>>/tests/testsuite.dir/485/ovn-sb/ovn-sb.db -vconsole:off --detach --no-chdir --pidfile --log-file
creating ovn-nb database
ovsdb-server -vjsonrpc --remote=punix:/<<PKGBUILDDIR>>/tests/testsuite.dir/485/ovn-nb/ovn-nb.sock /<<PKGBUILDDIR>>/tests/testsuite.dir/485/ovn-nb/ovn-nb.db -vconsole:off --detach --no-chdir --pidfile --log-file
starting northd
ovn-northd --n-threads=4 -vjsonrpc --ovnnb-db=unix:/<<PKGBUILDDIR>>/tests/testsuite.dir/485/ovn-nb/ovn-nb.sock --ovnsb-db=unix:/<<PKGBUILDDIR>>/tests/testsuite.dir/485/ovn-sb/ovn-sb.sock -vconsole:off --detach --no-chdir --pidfile --log-file
2024-05-20T16:49:52Z|00001|ovn_northd|INFO|Using 4 threads
e573e254-3fd9-4150-a064-5e2856bbe85b
ovn-macros.at:311: waiting until TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "$d/ovn-sb/ovsdb-server.log"` && test X != X"$TCP_PORT"...
ovn-macros.at:311: wait succeeded immediately
adding simulator 'main'
ovsdb-server --remote=punix:/<<PKGBUILDDIR>>/tests/testsuite.dir/485/main/db.sock -vconsole:off --detach --no-chdir --pidfile --log-file
ovs-vswitchd --enable-dummy=system -vvconn -vofproto_dpif -vunixctl -vconsole:off --detach --no-chdir --pidfile --log-file
adding simulator 'hv1'
ovsdb-server --remote=punix:/<<PKGBUILDDIR>>/tests/testsuite.dir/485/hv1/db.sock -vconsole:off --detach --no-chdir --pidfile --log-file
ovs-vswitchd --enable-dummy=system -vvconn -vofproto_dpif -vunixctl -vconsole:off --detach --no-chdir --pidfile --log-file
ovs-vsctl add-br br-int
./ovn-macros.at:534: "$@"
ovs-vsctl add-br br-int-2
./ovn-macros.at:534: "$@"
ovs-vsctl add-br br-phys-1
./ovn-macros.at:534: "$@"
ovs-vsctl add-br br-phys-2
./ovn-macros.at:534: "$@"
ovs-vsctl add-br br-phys-3
./ovn-macros.at:534: "$@"
ovs-vsctl set open . external-ids:ovn-bridge-mappings-hv1=phys-1:br-phys-1,phy-2:br-phys-2,phys-3:br-phys-3
./ovn-macros.at:534: "$@"
ovn-controller --enable-dummy-vif-plug -vconsole:off --detach --no-chdir --pidfile --log-file
ovs-vsctl: no key "ovn-encap-type-hv1" in Open_vSwitch record "." column external_ids
ovs-vsctl: no key "ovn-encap-ip-hv1" in Open_vSwitch record "." column external_ids

Waiting until ip in sb Encap with chassis_name=hv1 type=geneve is 192.168.1.1...
ovn-macros.at:639: waiting until
      found=$(ovn-${db}ctl --bare --columns $column find $table $a $b $c $d $e)
      found=$(for d in $found; do echo $d; done | sort)
      test "$expected" = "$found"
    ...
ovn-macros.at:639: wait succeeded immediately

Waiting until ip in sb Encap with chassis_name=hv1 type=vxlan is 192.168.1.1...
ovn-macros.at:639: waiting until
      found=$(ovn-${db}ctl --bare --columns $column find $table $a $b $c $d $e)
      found=$(for d in $found; do echo $d; done | sort)
      test "$expected" = "$found"
    ...
ovn-macros.at:639: wait succeeded immediately
ovs-vsctl -- add-port br-int vif1 -- set interface vif1 external-ids:iface-id=lp1
./ovn-macros.at:534: "$@"
ovn-nbctl ls-add ls
./ovn-macros.at:534: "$@"
ovn-nbctl lsp-add ls lp1
./ovn-macros.at:534: "$@"
ovn-nbctl lsp-set-addresses lp1 00:00:00:00:00:01 10.0.0.1
./ovn-macros.at:534: "$@"
ovn-nbctl lsp-add ls ln_port
./ovn-macros.at:534: "$@"
ovn-nbctl lsp-set-addresses ln_port unknown
./ovn-macros.at:534: "$@"
ovn-nbctl lsp-set-type ln_port localnet
./ovn-macros.at:534: "$@"
ovn-nbctl lsp-set-options ln_port network_name=phys-1
./ovn-macros.at:534: "$@"
Waiting until 0 rows in nb Logical_Switch_Port with up!=true type=""...
ovn-macros.at:585: waiting until test $count = $(count_rows $db:$table $a $b $c $d $e)...
ovn-macros.at:585: wait succeeded immediately
Waiting until 0 rows in nb Logical_Switch_Port with up!=true type=router...
ovn-macros.at:585: waiting until test $count = $(count_rows $db:$table $a $b $c $d $e)...
ovn-macros.at:585: wait succeeded immediately
ovn-nbctl --wait=hv sync
./ovn-macros.at:534: "$@"
ovn-appctl -t ovn-controller debug/ignore-startup-delay
./ovn-macros.at:534: "$@"
ovn.at:35715: waiting until
    test 1 = $(ovs-vsctl --columns _uuid --bare find Port name=patch-br-int-to-ln_port | wc -l)
...
ovn.at:35715: wait succeeded immediately
ovn.at:35715: waiting until
    test 1 = $(ovs-vsctl list-ports br-int | grep patch-br-int-to-ln_port | wc -l)
...
ovn.at:35715: wait succeeded immediately
ovn.at:35715: waiting until
    test 1 = $(ovs-vsctl --columns _uuid --bare find Port name=patch-ln_port-to-br-int | wc -l)
...
ovn.at:35715: wait succeeded immediately
ovn.at:35715: waiting until
    test 1 = $(ovs-vsctl list-ports br-phys-1 | grep patch-ln_port-to-br-int | wc -l)
...
ovn.at:35715: wait succeeded immediately
ovn-appctl debug/pause
./ovn-macros.at:534: "$@"
ovn-nbctl lsp-set-options ln_port network_name=phys-3
./ovn-macros.at:534: "$@"
ovs-vsctl -- add-port br-int-2 fake-int-2-to-phys-2 -- set port fake-int-2-to-phys-2 external-ids:ovn-localnet-port=fake-port -- set interface fake-int-2-to-phys-2 options:peer=fake-phys-2-to-int-2 type=patch
./ovn-macros.at:534: "$@"
ovs-vsctl -- add-port br-phys-2 fake-phys-2-to-int-2 -- set port fake-phys-2-to-int-2 external-ids:ovn-localnet-port=fake-port -- set interface fake-phys-2-to-int-2 options:peer=fake-int-2-to-phys-2 type=patch
./ovn-macros.at:534: "$@"
ovn-appctl debug/resume
./ovn-macros.at:534: "$@"
ovn-nbctl --wait=hv sync
./ovn-macros.at:534: "$@"
ovn.at:35715: waiting until
    test 0 = $(ovs-vsctl list-ports br-phys-1 | grep patch-ln_port-to-br-int | wc -l)
...
ovn.at:35715: wait succeeded immediately
ovn.at:35715: waiting until
    test 1 = $(ovs-vsctl --columns _uuid --bare find Port name=patch-br-int-to-ln_port | wc -l)
...
ovn.at:35715: wait succeeded immediately
ovn.at:35715: waiting until
    test 1 = $(ovs-vsctl list-ports br-int | grep patch-br-int-to-ln_port | wc -l)
...
ovn.at:35715: wait succeeded immediately
ovn.at:35715: waiting until
    test 1 = $(ovs-vsctl --columns _uuid --bare find Port name=patch-ln_port-to-br-int | wc -l)
...
ovn.at:35715: wait succeeded immediately
ovn.at:35715: waiting until
    test 1 = $(ovs-vsctl list-ports br-phys-3 | grep patch-ln_port-to-br-int | wc -l)
...
ovn.at:35715: wait succeeded immediately
ovn.at:35715: waiting until
    test 1 = $(ovs-vsctl --columns _uuid --bare find Port name=fake-int-2-to-phys-2 | wc -l)
...
ovn.at:35715: wait succeeded immediately
ovn.at:35715: waiting until
    test 1 = $(ovs-vsctl --columns _uuid --bare find Port name=fake-phys-2-to-int-2 | wc -l)
...
ovn.at:35715: wait succeeded immediately
hv1: clean up sandbox
./ovn.at:35715: test -e $OVS_RUNDIR/ovn-controller.pid
./ovn.at:35715: ovs-appctl --timeout=10 -t ovn-controller exit
ovn.at:35715: waiting while kill -0 $TMPPID 2>/dev/null...
ovn.at:35715: wait succeeded quickly

hv1: clean up vswitch
./ovn.at:35715: test -e $OVS_RUNDIR/ovs-vswitchd.pid
./ovn.at:35715: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
ovn.at:35715: waiting while kill -0 $TMPPID 2>/dev/null...
ovn.at:35715: wait succeeded quickly
./ovn.at:35715: test -e $OVS_RUNDIR/ovsdb-server.pid
./ovn.at:35715: ovs-appctl --timeout=10 -t ovsdb-server exit
ovn.at:35715: waiting while kill -0 $TMPPID 2>/dev/null...
ovn.at:35715: wait succeeded quickly
./ovn.at:35715: check_logs "
        $error
        /connection failed (No such file or directory)/d
        /has no network name*/d
        /receive tunnel port not found*/d
        /Failed to locate tunnel to reach main chassis/d
        /Transaction causes multiple rows.*MAC_Binding/d
    " $sbox
--- /dev/null 2024-05-19 10:34:30.132000000 +0000
+++ /<<PKGBUILDDIR>>/tests/testsuite.dir/at-groups/485/stdout 2024-05-20 16:49:57.831299995 +0000
@@ -0,0 +1 @@
+2024-05-20T16:49:56.722Z|00307|ofproto_dpif_xlate|WARN|received packet on unknown port 2 on bridge br-phys-1 while processing arp,in_port=CONTROLLER,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=10.0.0.1,arp_tpa=10.0.0.1,arp_op=1,arp_sha=00:00:00:00:00:01,arp_tha=00:00:00:00:00:00
485. ovn.at:35715: 485. ovn-controller update network_name option for localnet port -- parallelization=yes -- ovn_monitor_all=yes (ovn.at:35715): FAILED (ovn.at:35715)

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.