From 563ab9fdeb75d2f1dcc5ef109195df08a4833ffe Mon Sep 17 00:00:00 2001 From: Open vSwitch CI Date: Mar 26 2025 18:22:12 +0000 Subject: Import openvswitch3.2-3.2.0-125 from Fast DataPath --- diff --git a/SOURCES/openvswitch-3.2.0.patch b/SOURCES/openvswitch-3.2.0.patch index a978762..7b81f8d 100644 --- a/SOURCES/openvswitch-3.2.0.patch +++ b/SOURCES/openvswitch-3.2.0.patch @@ -8013,6 +8013,22 @@ index d5127268aa..d9fe27aec6 100644 remotes = [remotes] self.remotes = remotes random.shuffle(self.remotes) +diff --git a/python/ovs/stream.py b/python/ovs/stream.py +index 82fbb0d688..935f63bbdc 100644 +--- a/python/ovs/stream.py ++++ b/python/ovs/stream.py +@@ -585,9 +585,9 @@ class PassiveStream(object): + if not PassiveStream.is_valid_name(name): + return errno.EAFNOSUPPORT, None + +- bind_path = name[6:] ++ bind_path = None + if name.startswith("punix:"): +- bind_path = ovs.util.abs_file_name(ovs.dirs.RUNDIR, bind_path) ++ bind_path = ovs.util.abs_file_name(ovs.dirs.RUNDIR, name[6:]) + if sys.platform != 'win32': + error, sock = ovs.socket_util.make_unix_socket( + socket.SOCK_STREAM, True, bind_path, None) diff --git a/python/ovs/tests/test_odp.py b/python/ovs/tests/test_odp.py index a50d3185cc..d514e9be32 100644 --- a/python/ovs/tests/test_odp.py @@ -10045,7 +10061,7 @@ index 9fbf5dc897..987e05103d 100644 OVS_START_SHELL_HELPERS diff --git a/tests/ovsdb-idl.at b/tests/ovsdb-idl.at -index df5a9d2fd2..75fd590589 100644 +index df5a9d2fd2..2ba32e9f07 100644 --- a/tests/ovsdb-idl.at +++ b/tests/ovsdb-idl.at @@ -29,8 +29,8 @@ m4_define([OVSDB_START_IDLTEST], @@ -10174,7 +10190,7 @@ index df5a9d2fd2..75fd590589 100644 dnl This test creates database with weak references and checks that orphan dnl rows created for weak references are not available for iteration via dnl list of tracked changes. -@@ -1466,6 +1536,56 @@ OVSDB_CHECK_IDL_TRACK([track, simple idl, initially populated, references, singl +@@ -1466,6 +1536,58 @@ OVSDB_CHECK_IDL_TRACK([track, simple idl, initially populated, references, singl 006: done ]]) @@ -10204,6 +10220,7 @@ index df5a9d2fd2..75fd590589 100644 + {"op": "delete", + "table": "simple", + "where": [["s", "==", "row1_s"]]}]' \ ++ '+sleep' \ + '["idltest", + {"op": "insert", + "table": "simple", @@ -10216,22 +10233,44 @@ index df5a9d2fd2..75fd590589 100644 +001: table simple: updated columns: s +002: {"error":null,"result":[{"uuid":["uuid","<3>"]},{"count":1}]} +003: {"error":null,"result":[{"count":1}]} -+004: table simple6: name=row0_s6 weak_ref=[<0>] uuid=<1> -+004: table simple6: updated columns: weak_ref -+004: table simple: inserted/deleted row: i=0 r=0 b=false s=row1_s u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<3> -+004: table simple: updated columns: s -+005: {"error":null,"result":[{"uuid":["uuid","<4>"]}]} -+006: table simple6: name=row0_s6 weak_ref=[<0>] uuid=<1> -+006: table simple: i=0 r=0 b=false s=row0_s u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<0> -+006: table simple: inserted row: i=0 r=0 b=false s=row2_s u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<4> -+006: table simple: updated columns: s -+007: done ++004: sleep ++005: table simple6: name=row0_s6 weak_ref=[<0>] uuid=<1> ++005: table simple6: updated columns: weak_ref ++005: table simple: inserted/deleted row: i=0 r=0 b=false s=row1_s u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<3> ++005: table simple: updated columns: s ++006: {"error":null,"result":[{"uuid":["uuid","<4>"]}]} ++007: table simple6: name=row0_s6 weak_ref=[<0>] uuid=<1> ++007: table simple: i=0 r=0 b=false s=row0_s u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<0> ++007: table simple: inserted row: i=0 r=0 b=false s=row2_s u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<4> ++007: table simple: updated columns: s ++008: done +]]) + dnl This test checks that deleting both the destination and source of the dnl reference doesn't remove the reference in the source tracked record. OVSDB_CHECK_IDL_TRACK([track, simple idl, initially populated, weak references, multiple deletes], -@@ -1756,7 +1876,10 @@ OVSDB_CHECK_IDL_PARTIAL_UPDATE_MAP_COLUMN([map, simple2 idl-partial-update-map-c +@@ -1637,14 +1759,16 @@ OVSDB_CHECK_IDL_TRACK([track, simple idl, initially empty, strong references, in + '+["idltest", + {"op": "delete", + "table": "link2", +- "where": [["i", "==", 2]]}]' ++ "where": [["i", "==", 2]]}]' \ ++ '+sleep' + ]], + [[000: empty + 001: {"error":null,"result":[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]}]} + 002: {"error":null,"result":[{"count":1}]} +-003: table link1: inserted row: i=1 k=1 ka=[] l2= uuid=<0> +-003: table link1: updated columns: i k +-004: done ++003: sleep ++004: table link1: inserted row: i=1 k=1 ka=[] l2= uuid=<0> ++004: table link1: updated columns: i k ++005: done + ]]) + + OVSDB_CHECK_IDL_TRACK([track, simple idl, initially empty, various ops], +@@ -1756,7 +1880,10 @@ OVSDB_CHECK_IDL_PARTIAL_UPDATE_MAP_COLUMN([map, simple2 idl-partial-update-map-c 007: name=String2 smap=[[key2 : value2]] imap=[[3 : myids2]] 008: After trying to delete a deleted element 009: name=String2 smap=[[key2 : value2]] imap=[[3 : myids2]] @@ -10243,7 +10282,7 @@ index df5a9d2fd2..75fd590589 100644 ]]) OVSDB_CHECK_IDL_PY([partial-map idl], -@@ -1819,7 +1942,9 @@ OVSDB_CHECK_IDL_PARTIAL_UPDATE_SET_COLUMN([set, simple3 idl-partial-update-set-c +@@ -1819,7 +1946,9 @@ OVSDB_CHECK_IDL_PARTIAL_UPDATE_SET_COLUMN([set, simple3 idl-partial-update-set-c 009: table simple3: name=String2 uset=[<0>,<1>,<4>] uref=[] uuid=<2> 010: After add to other table + set of strong ref 011: table simple3: name=String2 uset=[<0>,<1>,<4>] uref=[<5>] uuid=<2> @@ -10254,7 +10293,7 @@ index df5a9d2fd2..75fd590589 100644 ]]) OVSDB_CHECK_IDL_PY([partial-set idl], -@@ -1972,6 +2097,36 @@ OVSDB_CHECK_IDL_NOTIFY([simple idl verify notify], +@@ -1972,6 +2101,36 @@ OVSDB_CHECK_IDL_NOTIFY([simple idl verify notify], 015: done ]]) @@ -10291,7 +10330,7 @@ index df5a9d2fd2..75fd590589 100644 # Tests to verify the functionality of the one column compound index. # It tests index for one column string and integer indexes. # The run of test-ovsdb generates the output of the display of data using the different indexes defined in -@@ -2332,6 +2487,23 @@ CHECK_STREAM_OPEN_BLOCK([Python3], [$PYTHON3 $srcdir/test-stream.py], +@@ -2332,6 +2491,23 @@ CHECK_STREAM_OPEN_BLOCK([Python3], [$PYTHON3 $srcdir/test-stream.py], CHECK_STREAM_OPEN_BLOCK([Python3], [$PYTHON3 $srcdir/test-stream.py], [ssl6], [[[::1]]]) @@ -10315,7 +10354,7 @@ index df5a9d2fd2..75fd590589 100644 # same as OVSDB_CHECK_IDL but uses Python IDL implementation with tcp # with multiple remotes to assert the idl connects to the leader of the Raft cluster m4_define([OVSDB_CHECK_IDL_LEADER_ONLY_PY], -@@ -2347,10 +2519,11 @@ m4_define([OVSDB_CHECK_IDL_LEADER_ONLY_PY], +@@ -2347,10 +2523,11 @@ m4_define([OVSDB_CHECK_IDL_LEADER_ONLY_PY], pids=$(cat s2.pid s3.pid s1.pid | tr '\n' ',') echo $pids AT_CHECK([$PYTHON3 $srcdir/test-ovsdb.py -t30 idl-cluster $srcdir/idltest.ovsschema $remotes $pids $3], @@ -10328,7 +10367,7 @@ index df5a9d2fd2..75fd590589 100644 AT_CLEANUP]) OVSDB_CHECK_IDL_LEADER_ONLY_PY([Check Python IDL connects to leader], 3, ['remote']) -@@ -2393,6 +2566,7 @@ m4_define([OVSDB_CHECK_CLUSTER_IDL_C], +@@ -2393,6 +2570,7 @@ m4_define([OVSDB_CHECK_CLUSTER_IDL_C], AT_CHECK([sort stdout | uuidfilt]m4_if([$7],,, [[| $7]]), [0], [$5]) m4_ifval([$8], [AT_CHECK([grep '$8' stderr], [1])], [], []) @@ -10336,7 +10375,7 @@ index df5a9d2fd2..75fd590589 100644 AT_CLEANUP]) # Same as OVSDB_CHECK_CLUSTER_IDL_C but uses the Python IDL implementation. -@@ -2413,6 +2587,7 @@ m4_define([OVSDB_CHECK_CLUSTER_IDL_PY], +@@ -2413,6 +2591,7 @@ m4_define([OVSDB_CHECK_CLUSTER_IDL_PY], AT_CHECK([sort stdout | uuidfilt]m4_if([$7],,, [[| $7]]), [0], [$5]) m4_if([$8], [AT_CHECK([grep '$8' stderr], [1])], [], []) @@ -10344,7 +10383,75 @@ index df5a9d2fd2..75fd590589 100644 AT_CLEANUP]) m4_define([OVSDB_CHECK_CLUSTER_IDL], -@@ -2637,7 +2812,7 @@ m4_define([OVSDB_CHECK_IDL_PERS_UUID_INSERT_C], +@@ -2566,6 +2745,7 @@ OVSDB_CHECK_IDL_TRACK([track, insert and delete, refs to link1], + "table": "link2", + "where": [["i", "==", 2]]} + ]' \ ++ '+sleep' \ + '["idltest", + {"op": "delete", + "table": "link2", +@@ -2575,15 +2755,16 @@ OVSDB_CHECK_IDL_TRACK([track, insert and delete, refs to link1], + [[000: empty + 001: {"error":null,"result":[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"uuid":["uuid","<2>"]}]} + 002: {"error":null,"result":[{"count":1}]} +-003: table link1: inserted row: i=1 k=1 ka=[] l2= uuid=<1> +-003: table link1: updated columns: i k +-003: table link2: inserted row: i=1 l1=1 uuid=<0> +-003: table link2: inserted/deleted row: i=2 l1=1 uuid=<2> +-003: table link2: updated columns: i l1 +-003: table link2: updated columns: i l1 +-004: {"error":null,"result":[{"count":1}]} +-005: table link1: i=1 k=1 ka=[] l2= uuid=<1> +-006: done ++003: sleep ++004: table link1: inserted row: i=1 k=1 ka=[] l2= uuid=<1> ++004: table link1: updated columns: i k ++004: table link2: inserted row: i=1 l1=1 uuid=<0> ++004: table link2: inserted/deleted row: i=2 l1=1 uuid=<2> ++004: table link2: updated columns: i l1 ++004: table link2: updated columns: i l1 ++005: {"error":null,"result":[{"count":1}]} ++006: table link1: i=1 k=1 ka=[] l2= uuid=<1> ++007: done + ]]) + OVSDB_CHECK_IDL_TRACK([track, insert and delete, refs to link2], + [], +@@ -2609,6 +2790,7 @@ OVSDB_CHECK_IDL_TRACK([track, insert and delete, refs to link2], + "table": "link1", + "where": [["i", "==", 2]]} + ]' \ ++ '+sleep' \ + '["idltest", + {"op": "delete", + "table": "link1", +@@ -2618,15 +2800,16 @@ OVSDB_CHECK_IDL_TRACK([track, insert and delete, refs to link2], + [[000: empty + 001: {"error":null,"result":[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"uuid":["uuid","<2>"]}]} + 002: {"error":null,"result":[{"count":1}]} +-003: table link1: inserted row: i=1 k=1 ka=[] l2=1 uuid=<0> +-003: table link1: inserted/deleted row: i=2 k=1 ka=[] l2=1 uuid=<2> +-003: table link1: updated columns: i k l2 +-003: table link1: updated columns: i k l2 +-003: table link2: inserted row: i=1 l1= uuid=<1> +-003: table link2: updated columns: i +-004: {"error":null,"result":[{"count":1}]} +-005: table link2: i=1 l1= uuid=<1> +-006: done ++003: sleep ++004: table link1: inserted row: i=1 k=1 ka=[] l2=1 uuid=<0> ++004: table link1: inserted/deleted row: i=2 k=1 ka=[] l2=1 uuid=<2> ++004: table link1: updated columns: i k l2 ++004: table link1: updated columns: i k l2 ++004: table link2: inserted row: i=1 l1= uuid=<1> ++004: table link2: updated columns: i ++005: {"error":null,"result":[{"count":1}]} ++006: table link2: i=1 l1= uuid=<1> ++007: done + ]]) + + m4_define([OVSDB_CHECK_IDL_PERS_UUID_INSERT_C], +@@ -2637,7 +2820,7 @@ m4_define([OVSDB_CHECK_IDL_PERS_UUID_INSERT_C], [0], [stdout], [stderr]) AT_CHECK([sort stdout], [0], [$3]) @@ -10353,7 +10460,7 @@ index df5a9d2fd2..75fd590589 100644 OVSDB_SERVER_SHUTDOWN AT_CLEANUP]) -@@ -2649,7 +2824,7 @@ m4_define([OVSDB_CHECK_IDL_PERS_UUID_INSERT_PY], +@@ -2649,7 +2832,7 @@ m4_define([OVSDB_CHECK_IDL_PERS_UUID_INSERT_PY], [0], [stdout], [stderr]) AT_CHECK([sort stdout], [0], [$3]) @@ -10362,7 +10469,7 @@ index df5a9d2fd2..75fd590589 100644 OVSDB_SERVER_SHUTDOWN AT_CLEANUP]) -@@ -2686,3 +2861,101 @@ OVSDB_CHECK_IDL_PERS_UUID_INSERT([simple idl, persistent uuid insert], +@@ -2686,3 +2869,101 @@ OVSDB_CHECK_IDL_PERS_UUID_INSERT([simple idl, persistent uuid insert], 011: done ]], [['This UUID would duplicate a UUID already present within the table or deleted within the same transaction']]) @@ -13934,7 +14041,7 @@ index 08d2cbaebf..4e9a3ab5c2 100644 mp.max_link = n - 1; multipath_execute(&mp, &flow, &wc); diff --git a/tests/test-ovsdb.c b/tests/test-ovsdb.c -index c761822e62..c96140e0ea 100644 +index c761822e62..bfaf832881 100644 --- a/tests/test-ovsdb.c +++ b/tests/test-ovsdb.c @@ -2023,6 +2023,24 @@ print_idl_row_updated_link2(const struct idltest_link2 *l2, int step) @@ -14080,7 +14187,7 @@ index c761822e62..c96140e0ea 100644 } status = ovsdb_idl_txn_commit_block(txn); -@@ -2800,6 +2871,13 @@ do_idl(struct ovs_cmdl_context *ctx) +@@ -2800,12 +2871,22 @@ do_idl(struct ovs_cmdl_context *ctx) } else { print_idl(idl, step++, terse); } @@ -14094,7 +14201,16 @@ index c761822e62..c96140e0ea 100644 } seqno = ovsdb_idl_get_seqno(idl); -@@ -2970,6 +3048,29 @@ do_idl_partial_update_map_column(struct ovs_cmdl_context *ctx) + if (!strcmp(arg, "reconnect")) { + print_and_log("%03d: reconnect", step++); + ovsdb_idl_force_reconnect(idl); ++ } else if (!strcmp(arg, "sleep")) { ++ print_and_log("%03d: sleep", step++); ++ xsleep(1); + } else if (!strncmp(arg, remote_s, strlen(remote_s))) { + ovsdb_idl_set_remote(idl, arg + strlen(remote_s), true); + print_and_log("%03d: new remotes: %s, is connected: %s", step++, +@@ -2970,6 +3051,29 @@ do_idl_partial_update_map_column(struct ovs_cmdl_context *ctx) printf("%03d: After trying to delete a deleted element\n", step++); dump_simple2(idl, myRow, step++); @@ -14124,7 +14240,7 @@ index c761822e62..c96140e0ea 100644 ovsdb_idl_destroy(idl); printf("%03d: End test\n", step); } -@@ -3068,6 +3169,21 @@ do_idl_partial_update_set_column(struct ovs_cmdl_context *ctx) +@@ -3068,6 +3172,21 @@ do_idl_partial_update_set_column(struct ovs_cmdl_context *ctx) ovsdb_idl_get_initial_snapshot(idl); printf("%03d: After add to other table + set of strong ref\n", step++); dump_simple3(idl, myRow, step++); diff --git a/SPECS/openvswitch3.2.spec b/SPECS/openvswitch3.2.spec index 982cf22..c58fe36 100644 --- a/SPECS/openvswitch3.2.spec +++ b/SPECS/openvswitch3.2.spec @@ -57,7 +57,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 3.2.0 -Release: 124%{?dist} +Release: 125%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -763,6 +763,13 @@ exit 0 %endif %changelog +* Wed Mar 26 2025 Open vSwitch CI - 3.2.0-125 +- Merging upstream branch-3.2 [RH git: ca815b4cc3] + Commit list: + 316b0ffd74 tests: ovsdb-idl: Fix flaky insert and delete tests. + 9310e17a34 python: stream: Fix unlink attempt for ptcp IP address. + + * Fri Mar 21 2025 Open vSwitch CI - 3.2.0-124 - Merging upstream branch-3.2 [RH git: 66d8f1cd85] Commit list: