diff --git a/SOURCES/openvswitch-2.15.0.patch b/SOURCES/openvswitch-2.15.0.patch index 6819b4f..e840e9f 100644 --- a/SOURCES/openvswitch-2.15.0.patch +++ b/SOURCES/openvswitch-2.15.0.patch @@ -19677,7 +19677,7 @@ index 0000000000..a49563f071 + +#endif /* usdt-probes.h */ diff --git a/include/openvswitch/util.h b/include/openvswitch/util.h -index 228b185c3a..96f600160b 100644 +index 228b185c3a..8e6c46a85f 100644 --- a/include/openvswitch/util.h +++ b/include/openvswitch/util.h @@ -145,6 +145,150 @@ OVS_NO_RETURN void ovs_assert_failure(const char *, const char *, const char *); @@ -19831,6 +19831,16 @@ index 228b185c3a..96f600160b 100644 /* Returns the number of elements in ARRAY. */ #define ARRAY_SIZE(ARRAY) __ARRAY_SIZE(ARRAY) +@@ -285,6 +429,9 @@ is_pow2(uintmax_t x) + * segfault, so it is important to be aware of correct alignment. */ + #define ALIGNED_CAST(TYPE, ATTR) ((TYPE) (void *) (ATTR)) + ++#define IS_PTR_ALIGNED(OBJ) \ ++ (!(OBJ) || (uintptr_t) (OBJ) % __alignof__(OVS_TYPEOF(OBJ)) == 0) ++ + #ifdef __cplusplus + } + #endif diff --git a/ipsec/ovs-monitor-ipsec.in b/ipsec/ovs-monitor-ipsec.in index 64111768b3..41ef886194 100755 --- a/ipsec/ovs-monitor-ipsec.in @@ -21518,7 +21528,7 @@ index 9d8096668e..5806ea4b55 100644 return; } diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c -index 6be23dbeed..97b0d18781 100644 +index 6be23dbeed..045dbf7a58 100644 --- a/lib/netdev-linux.c +++ b/lib/netdev-linux.c @@ -625,6 +625,7 @@ netdev_linux_notify_sock(void) @@ -21625,6 +21635,22 @@ index 6be23dbeed..97b0d18781 100644 unsigned int bps = ((uint64_t) kbits_rate * 1000) / 8; struct tc_police police; struct tc_ratespec rate; +@@ -6220,7 +6236,14 @@ get_stats_via_netlink(const struct netdev *netdev_, struct netdev_stats *stats) + if (ofpbuf_try_pull(reply, NLMSG_HDRLEN + sizeof(struct ifinfomsg))) { + const struct nlattr *a = nl_attr_find(reply, 0, IFLA_STATS64); + if (a && nl_attr_get_size(a) >= sizeof(struct rtnl_link_stats64)) { +- netdev_stats_from_rtnl_link_stats64(stats, nl_attr_get(a)); ++ const struct rtnl_link_stats64 *lstats = nl_attr_get(a); ++ struct rtnl_link_stats64 aligned_lstats; ++ ++ if (!IS_PTR_ALIGNED(lstats)) { ++ memcpy(&aligned_lstats, lstats, sizeof aligned_lstats); ++ lstats = &aligned_lstats; ++ } ++ netdev_stats_from_rtnl_link_stats64(stats, lstats); + error = 0; + } else { + a = nl_attr_find(reply, 0, IFLA_STATS); diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c index f2413f5be6..0e4119c0a6 100644 --- a/lib/netdev-offload-dpdk.c @@ -27116,15 +27142,24 @@ index c8babe3612..1f1fc3c79a 100644 +OVS_VSCTL_CLEANUP +AT_CLEANUP diff --git a/tests/ovsdb-client.at b/tests/ovsdb-client.at -index 8d777a0275..5e3b26aea8 100644 +index 8d777a0275..52a15f3dd1 100644 --- a/tests/ovsdb-client.at +++ b/tests/ovsdb-client.at -@@ -12,6 +12,30 @@ AT_CHECK([ovsdb-client get-schema-cksum unix:socket ordinals], [0], [12345678 9 +@@ -3,6 +3,7 @@ AT_BANNER([OVSDB -- ovsdb-client commands]) + AT_SETUP([ovsdb-client get-schema-version and get-schema-cksum]) + AT_KEYWORDS([ovsdb client positive]) + ordinal_schema > schema ++on_exit 'kill `cat *.pid`' + AT_CHECK([ovsdb-tool create db schema], [0], [ignore], [ignore]) + AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db], [0], [ignore], [ignore]) + AT_CHECK([ovsdb-client get-schema-version unix:socket ordinals], [0], [5.1.3 +@@ -12,6 +13,32 @@ AT_CHECK([ovsdb-client get-schema-cksum unix:socket ordinals], [0], [12345678 9 OVSDB_SERVER_SHUTDOWN AT_CLEANUP +AT_SETUP([ovsdb-client needs-conversion (no conversion needed)]) +AT_KEYWORDS([ovsdb client file positive]) ++on_exit 'kill `cat *.pid`' +ordinal_schema > schema +touch .db.~lock~ +AT_CHECK([ovsdb-tool create db schema], [0], [], [ignore]) @@ -27138,6 +27173,7 @@ index 8d777a0275..5e3b26aea8 100644 +AT_KEYWORDS([ovsdb client file positive]) +ordinal_schema > schema +touch .db.~lock~ ++on_exit 'kill `cat *.pid`' +AT_CHECK([ovsdb-tool create db schema], [0], [], [ignore]) +AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db], [0], [ignore], [ignore]) +sed 's/5\.1\.3/5.1.4/' < schema > schema2 @@ -28478,6 +28514,345 @@ index 4b4791a7da..dd7b0df755 100644 +[], +[], +reconnect.*waiting .* seconds before reconnect) +diff --git a/tests/ovsdb-server.at b/tests/ovsdb-server.at +index 926abce3a3..6f0672cdbf 100644 +--- a/tests/ovsdb-server.at ++++ b/tests/ovsdb-server.at +@@ -4,7 +4,7 @@ m4_define([OVSDB_SERVER_SHUTDOWN], + [OVS_APP_EXIT_AND_WAIT_BY_TARGET([ovsdb-server], [ovsdb-server.pid])]) + + m4_define([OVSDB_SERVER_SHUTDOWN2], +- [cp pid2 savepid2 ++ [cp 2.pid savepid2 + AT_CHECK([ovs-appctl -t "`pwd`"/unixctl2 -e exit], [0], [ignore], [ignore]) + OVS_WAIT_WHILE([kill -0 `cat savepid2`], [kill `cat savepid2`])]) + +@@ -27,14 +27,13 @@ m4_define([OVSDB_CHECK_EXECUTION], + AT_KEYWORDS([ovsdb server positive unix $5]) + $2 > schema + AT_CHECK([ovsdb-tool create db schema], [0], [stdout], [ignore]) ++ on_exit 'kill `cat *.pid`' + AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db], [0], [ignore], [ignore]) + m4_foreach([txn], [$3], +- [AT_CHECK([ovsdb-client transact unix:socket 'txn'], [0], [stdout], [ignore], +- [test ! -e pid || kill `cat pid`]) ++ [AT_CHECK([ovsdb-client transact unix:socket 'txn'], [0], [stdout], [ignore]) + cat stdout >> output + ]) +- AT_CHECK([uuidfilt output], [0], [$4], [ignore], +- [test ! -e pid || kill `cat pid`]) ++ AT_CHECK([uuidfilt output], [0], [$4], [ignore]) + OVSDB_SERVER_SHUTDOWN + AT_CLEANUP]) + +@@ -85,8 +84,7 @@ AT_CHECK([uuidfilt output], [0], + [[[{"uuid":["uuid","<0>"]}] + [{"uuid":["uuid","<1>"]}] + [{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0},{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}] +-]], [], +- [test ! -e pid || kill `cat pid`]) ++]], []) + AT_CLEANUP + + AT_SETUP([truncating database log with bad transaction]) +@@ -133,8 +131,7 @@ AT_CHECK([uuidfilt output], [0], + [[[{"uuid":["uuid","<0>"]}] + [{"uuid":["uuid","<1>"]}] + [{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0},{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}] +-]], [], +- [test ! -e pid || kill `cat pid`]) ++]], []) + AT_CLEANUP + + dnl CHECK_DBS([databases]) +@@ -156,6 +153,7 @@ ordinal_schema > schema1 + constraint_schema > schema2 + AT_CHECK([ovsdb-tool create db1 schema1], [0], [ignore], [ignore]) + AT_CHECK([ovsdb-tool create db2 schema2], [0], [ignore], [ignore]) ++on_exit 'kill `cat *.pid`' + AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --remote=punix:db.sock db1 db2], [0], [ignore], [ignore]) + CHECK_DBS([constraints + ordinals +@@ -163,7 +161,7 @@ ordinals + AT_CHECK( + [[ovstest test-jsonrpc request unix:db.sock get_schema [\"nonexistent\"]]], [0], + [[{"error":{"details":"get_schema request specifies unknown database nonexistent","error":"unknown database","syntax":"[\"nonexistent\"]"},"id":0,"result":null} +-]], [], [test ! -e pid || kill `cat pid`]) ++]], []) + OVSDB_SERVER_SHUTDOWN + AT_CLEANUP + +@@ -390,7 +388,7 @@ AT_CHECK( + "table": "Manager", + "uuid-name": "x", + "row": {"target": "punix:socket2"}}]']], [0], [ignore], [ignore]) +-on_exit 'kill `cat ovsdb-server.pid`' ++on_exit 'kill `cat *.pid`' + AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --remote=db:mydb,Root,managers --remote=db:mydb,Root,manager_options --log-file db], [0], [ignore], [ignore]) + ovs-appctl -t ovsdb-server time/warp 6000 1000 + AT_CHECK( +@@ -683,6 +681,7 @@ ovsdb_check_online_compaction() { + ovsdb-tool create-cluster db schema unix:s1.raft + fi]) + dnl Start ovsdb-server. ++ on_exit 'kill `cat *.pid`' + AT_CHECK([ovsdb-server -vvlog:off -vconsole:off --detach --no-chdir --pidfile --remote=punix:socket --log-file db], [0]) + AT_CHECK([ovsdb_client_wait unix:socket ordinals connected]) + AT_CAPTURE_FILE([ovsdb-server.log]) +@@ -829,7 +828,7 @@ _uuid name number + <0> five 5 + <1> four 4 + <2> three 3 +-], [], [test ! -e pid || kill `cat pid`]) ++], []) + OVSDB_SERVER_SHUTDOWN + } + OVS_END_SHELL_HELPERS +@@ -1251,15 +1250,14 @@ m4_define([OVSDB_CHECK_EXECUTION], + $2 > schema + PKIDIR=$abs_top_builddir/tests + AT_CHECK([ovsdb-tool create db schema], [0], [stdout], [ignore]) ++ on_exit 'kill `cat *.pid`' + AT_CHECK([ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db], [0], [ignore], [ignore]) + PARSE_LISTENING_PORT([ovsdb-server.log], [SSL_PORT]) + m4_foreach([txn], [$3], +- [AT_CHECK([ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT 'txn'], [0], [stdout], [ignore], +- [test ! -e pid || kill `cat pid`]) ++ [AT_CHECK([ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT 'txn'], [0], [stdout], [ignore]) + cat stdout >> output + ]) +- AT_CHECK([uuidfilt output], [0], [$4], [ignore], +- [test ! -e pid || kill `cat pid`]) ++ AT_CHECK([uuidfilt output], [0], [$4], [ignore]) + OVSDB_SERVER_SHUTDOWN + AT_CLEANUP]) + +@@ -1288,16 +1286,15 @@ m4_define([OVSDB_CHECK_EXECUTION], + AT_SKIP_IF([test $HAVE_IPV6 = no]) + $2 > schema + PKIDIR=$abs_top_builddir/tests ++ on_exit 'kill `cat *.pid`' + AT_CHECK([ovsdb-tool create db schema], [0], [stdout], [ignore]) + AT_CHECK([ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:[[::1]] db], [0], [ignore], [ignore]) + PARSE_LISTENING_PORT([ovsdb-server.log], [SSL_PORT]) + m4_foreach([txn], [$3], +- [AT_CHECK([ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:[[::1]]:$SSL_PORT 'txn'], [0], [stdout], [ignore], +- [test ! -e pid || kill `cat pid`]) ++ [AT_CHECK([ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:[[::1]]:$SSL_PORT 'txn'], [0], [stdout], [ignore]) + cat stdout >> output + ]) +- AT_CHECK([uuidfilt output], [0], [$4], [ignore], +- [test ! -e pid || kill `cat pid`]) ++ AT_CHECK([uuidfilt output], [0], [$4], [ignore]) + OVSDB_SERVER_SHUTDOWN + AT_CLEANUP]) + +@@ -1324,16 +1321,15 @@ m4_define([OVSDB_CHECK_EXECUTION], + AT_KEYWORDS([ovsdb server positive tcp $5]) + $2 > schema + PKIDIR=$abs_top_builddir/tests ++ on_exit 'kill `cat *.pid`' + AT_CHECK([ovsdb-tool create db schema], [0], [stdout], [ignore]) + AT_CHECK([ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db], [0], [ignore], [ignore]) + PARSE_LISTENING_PORT([ovsdb-server.log], [TCP_PORT]) + m4_foreach([txn], [$3], +- [AT_CHECK([ovsdb-client transact tcp:127.0.0.1:$TCP_PORT 'txn'], [0], [stdout], [ignore], +- [test ! -e pid || kill `cat pid`]) ++ [AT_CHECK([ovsdb-client transact tcp:127.0.0.1:$TCP_PORT 'txn'], [0], [stdout], [ignore]) + cat stdout >> output + ]) +- AT_CHECK([uuidfilt output], [0], [$4], [ignore], +- [test ! -e pid || kill `cat pid`]) ++ AT_CHECK([uuidfilt output], [0], [$4], [ignore]) + OVSDB_SERVER_SHUTDOWN + AT_CLEANUP]) + +@@ -1361,16 +1357,15 @@ m4_define([OVSDB_CHECK_EXECUTION], + AT_SKIP_IF([test $HAVE_IPV6 = no]) + $2 > schema + PKIDIR=$abs_top_builddir/tests ++ on_exit 'kill `cat *.pid`' + AT_CHECK([ovsdb-tool create db schema], [0], [stdout], [ignore]) + AT_CHECK([ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:[[::1]] db], [0], [ignore], [ignore]) + PARSE_LISTENING_PORT([ovsdb-server.log], [TCP_PORT]) + m4_foreach([txn], [$3], +- [AT_CHECK([ovsdb-client transact tcp:[[::1]]:$TCP_PORT 'txn'], [0], [stdout], [ignore], +- [test ! -e pid || kill `cat pid`]) ++ [AT_CHECK([ovsdb-client transact tcp:[[::1]]:$TCP_PORT 'txn'], [0], [stdout], [ignore]) + cat stdout >> output + ]) +- AT_CHECK([uuidfilt output], [0], [$4], [ignore], +- [test ! -e pid || kill `cat pid`]) ++ AT_CHECK([uuidfilt output], [0], [$4], [ignore]) + OVSDB_SERVER_SHUTDOWN + AT_CLEANUP]) + +@@ -1432,12 +1427,11 @@ m4_define([OVSDB_CHECK_EXECUTION], + AT_CHECK([ovsdb-tool create db1 schema], [0], [stdout], [ignore]) + AT_CHECK([ovsdb-tool create db2 schema], [0], [stdout], [ignore]) + ++ on_exit 'kill `cat *.pid`' + AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1], [0], [ignore], [ignore]) + i +- on_exit 'test ! -e pid || kill `cat pid`' + +- AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2], [0], [ignore], [ignore]) +- on_exit 'test ! -e pid2 || kill `cat pid2`' ++ AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=2.pid --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2], [0], [ignore], [ignore]) + + m4_foreach([txn], [$3], + [AT_CHECK([ovsdb-client transact 'txn'], [0], [stdout], [ignore]) +@@ -1478,11 +1472,10 @@ m4_define([OVSDB_CHECK_REPLICATION], + AT_CHECK([ovsdb-tool create db1 schema], [0], [stdout], [ignore]) + AT_CHECK([ovsdb-tool create db2 schema], [0], [stdout], [ignore]) + ++ on_exit 'kill `cat *.pid`' + AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1], [0], [ignore], [ignore]) +- on_exit 'test ! -e pid || kill `cat pid`' + +- AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock --sync-exclude-tables=mydb:b db2], [0], [ignore], [ignore]) +- on_exit 'test ! -e pid2 || kill `cat pid2`' ++ AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=2.pid --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock --sync-exclude-tables=mydb:b db2], [0], [ignore], [ignore]) + + m4_foreach([txn], [$3], + [AT_CHECK([ ovsdb-client transact 'txn' ], [0], [stdout], [ignore]) +@@ -1550,6 +1543,7 @@ AT_CLEANUP + + #ovsdb-server/set-sync-exclude-tables command + AT_SETUP([ovsdb-server/set-sync-exclude-tables]) ++on_exit 'kill `cat *.pid`' + AT_KEYWORDS([ovsdb server replication set-exclude-tables]) + AT_SKIP_IF([test $DIFF_SUPPORTS_NORMAL_FORMAT = no]) + +@@ -1558,12 +1552,10 @@ AT_CHECK([ovsdb-tool create db1 schema], [0], [stdout], [ignore]) + AT_CHECK([ovsdb-tool create db2 schema], [0], [stdout], [ignore]) + + AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1], [0], [ignore], [ignore]) +-on_exit 'test ! -e pid || kill `cat pid`' + +-AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2], [0], [ignore], [ignore]) +-on_exit 'test ! -e pid2 || kill `cat pid2`' ++AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=2.pid --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2], [0], [ignore], [ignore]) + +-AT_CHECK([ovs-appctl -t "`pwd`"/unixctl2 ovsdb-server/set-sync-exclude-tables mydb:b], [0], [ignore], [ignore], [test ! -e pid || kill `cat pid`; test ! -e pid2 || kill `cat pid2`]) ++AT_CHECK([ovs-appctl -t "`pwd`"/unixctl2 ovsdb-server/set-sync-exclude-tables mydb:b], [0], [ignore], [ignore]) + + AT_CHECK([ovsdb-client transact unix:db.sock \ + '[["mydb", +@@ -1572,11 +1564,9 @@ AT_CHECK([ovsdb-client transact unix:db.sock \ + "row": {"number": 0, "name": "zero"}}, + {"op": "insert", + "table": "b", +- "row": {"number": 1, "name": "one"}}]]'], [0], [stdout], [ignore], +- [test ! -e pid || kill `cat pid`; test ! -e pid2 || kill `cat pid2`]) ++ "row": {"number": 1, "name": "one"}}]]'], [0], [stdout], [ignore]) + +-AT_CHECK([ovsdb-client dump unix:db.sock], [0], [stdout], [ignore], +- [test ! -e pid || kill `cat pid`; test ! -e pid2 || kill `cat pid2`]) ++AT_CHECK([ovsdb-client dump unix:db.sock], [0], [stdout], [ignore]) + cat stdout > dump1 + OVS_WAIT_UNTIL([ ovsdb-client dump unix:db2.sock | grep zero ]) + AT_CHECK([ovsdb-client dump unix:db2.sock], [0], [stdout], [ignore]) +@@ -1600,16 +1590,15 @@ AT_CLEANUP + + #ovsdb-server/connect-active-ovsdb-server + AT_SETUP([ovsdb-server/connect-active-server]) ++on_exit 'kill `cat *.pid`' + AT_KEYWORDS([ovsdb server replication connect-active-server]) + replication_schema > schema + AT_CHECK([ovsdb-tool create db1 schema], [0], [stdout], [ignore]) + AT_CHECK([ovsdb-tool create db2 schema], [0], [stdout], [ignore]) + + AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1], [0], [ignore], [ignore]) +-on_exit 'test ! -e pid || kill `cat pid`' + +-AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 db2], [0], [ignore], [ignore]) +-on_exit 'test ! -e pid2 || kill `cat pid2`' ++AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=2.pid --remote=punix:db2.sock --unixctl=unixctl2 db2], [0], [ignore], [ignore]) + + dnl Try to connect without specifying the active server. + AT_CHECK([ovs-appctl -t "`pwd`"/unixctl2 ovsdb-server/connect-active-ovsdb-server], [0], +@@ -1639,6 +1628,7 @@ AT_CLEANUP + + #ovsdb-server/disconnect-active-server command + AT_SETUP([ovsdb-server/disconnect-active-server]) ++on_exit 'kill `cat *.pid`' + AT_KEYWORDS([ovsdb server replication disconnect-active-server]) + AT_SKIP_IF([test $DIFF_SUPPORTS_NORMAL_FORMAT = no]) + +@@ -1647,10 +1637,8 @@ AT_CHECK([ovsdb-tool create db1 schema], [0], [stdout], [ignore]) + AT_CHECK([ovsdb-tool create db2 schema], [0], [stdout], [ignore]) + + AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1], [0], [ignore], [ignore]) +-on_exit 'test ! -e pid || kill `cat pid`' + +-AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2], [0], [ignore], [ignore]) +-on_exit 'test ! -e pid2 || kill `cat pid2`' ++AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=2.pid --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2], [0], [ignore], [ignore]) + + AT_CHECK([ovsdb-client transact unix:db.sock \ + '[["mydb", +@@ -1696,7 +1684,7 @@ AT_CHECK([uuidfilt output], [0], [7,9c7,8 + --- + > _uuid name number + > ----- ---- ------ +-], [ignore], [test ! -e pid || kill `cat pid`; test ! -e pid2 || kill `cat pid2`]) ++], [ignore]) + + dnl The backup server now become active, and can accept write transactions. + AT_CHECK([ovsdb-client transact unix:db2.sock \ +@@ -1747,13 +1735,12 @@ dnl Start both 'db1' and 'db2' in backup mode. Let them backup from each + dnl other. This is not an supported operation state, but to simulate a start + dnl up condition where an HA manger can select which one to be an active + dnl server soon after. +-AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile="`pwd`"/pid --remote=punix:db.sock --unixctl="`pwd`"/unixctl db1 --sync-from=unix:db2.sock --active ], [0], [ignore], [ignore]) +-on_exit 'test ! -e pid || kill `cat pid`' ++on_exit 'kill `cat *.pid`' ++AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock --unixctl="`pwd`"/unixctl db1 --sync-from=unix:db2.sock --active ], [0], [ignore], [ignore]) + + AT_CHECK([ovs-appctl -t "`pwd`"/unixctl ovsdb-server/connect-active-ovsdb-server]) + +-AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile="`pwd`"/pid2 --remote=punix:db2.sock --unixctl="`pwd`"/unixctl2 --sync-from=unix:db.sock db2], [0], [ignore], [ignore]) +-on_exit 'test ! -e pid2 || kill `cat pid2`' ++AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=2.pid --remote=punix:db2.sock --unixctl="`pwd`"/unixctl2 --sync-from=unix:db.sock db2], [0], [ignore], [ignore]) + + dnl + dnl make sure both servers reached the replication state +@@ -1821,8 +1808,8 @@ AT_CHECK([ovsdb-tool transact db \ + "row": {"number": 9, "name": "nine"}}]]'], [0], [ignore], [ignore]) + + dnl Start 'db', then try to be a back up server of itself. +-AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server.log --pidfile="`pwd`"/pid --remote=punix:db.sock --unixctl="`pwd`"/unixctl db --sync-from=unix:db.sock --active ], [0], [ignore], [ignore]) +-on_exit 'test ! -e pid || kill `cat pid`' ++on_exit 'kill `cat *.pid`' ++AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server.log --pidfile --remote=punix:db.sock --unixctl="`pwd`"/unixctl db --sync-from=unix:db.sock --active ], [0], [ignore], [ignore]) + + dnl Save the current content + AT_CHECK([ovsdb-client dump unix:db.sock], [0], [stdout]) +@@ -1840,6 +1827,7 @@ AT_CHECK([diff dump1 dump2]) + AT_CLEANUP + + AT_SETUP([ovsdb-server/read-only db:ptcp connection]) ++on_exit 'kill `cat *.pid`' + AT_KEYWORDS([ovsdb server read-only]) + AT_DATA([schema], + [[{"name": "mydb", +@@ -1928,12 +1916,10 @@ AT_CHECK([ovsdb-tool transact db2 \ + "row": {"number": 10, "name": "ten"}}]]'], [0], [ignore], [ignore]) + + dnl Start both 'db1' and 'db2'. +-AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile="`pwd`"/pid --remote=punix:db.sock --unixctl="`pwd`"/unixctl db1 --active ], [0], [ignore], [ignore]) +-on_exit 'test ! -e pid || kill `cat pid`' +- ++on_exit 'kill `cat *.pid`' ++AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock --unixctl="`pwd`"/unixctl db1 --active ], [0], [ignore], [ignore]) + +-AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile="`pwd`"/pid2 --remote=punix:db2.sock --unixctl="`pwd`"/unixctl2 db2], [0], [ignore], [ignore]) +-on_exit 'test ! -e pid2 || kill `cat pid2`' ++AT_CHECK([ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=2.pid --remote=punix:db2.sock --unixctl="`pwd`"/unixctl2 db2], [0], [ignore], [ignore]) + + OVS_WAIT_UNTIL([ovs-appctl -t "`pwd`"/unixctl ovsdb-server/sync-status |grep active]) + OVS_WAIT_UNTIL([ovs-appctl -t "`pwd`"/unixctl2 ovsdb-server/sync-status |grep active]) diff --git a/tests/reconnect.at b/tests/reconnect.at index 0f74709f5a..5bca84351c 100644 --- a/tests/reconnect.at diff --git a/SPECS/openvswitch2.15.spec b/SPECS/openvswitch2.15.spec index 528e180..1999ee0 100644 --- a/SPECS/openvswitch2.15.spec +++ b/SPECS/openvswitch2.15.spec @@ -57,7 +57,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 2.15.0 -Release: 100%{?dist} +Release: 101%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -702,6 +702,13 @@ exit 0 %endif %changelog +* Wed May 18 2022 Open vSwitch CI - 2.15.0-101 +- Merging upstream branch-2.15 [RH git: 93d7ccfb1f] + Commit list: + beac697b4b tests: Properly kill ovsdb test processes. + 1f7a349be8 netdev-linux: Properly access 32-bit aligned rtnl_link_stats64 structs. + + * Wed May 04 2022 Open vSwitch CI - 2.15.0-100 - Merging upstream branch-2.15 [RH git: 5fb6b64894] Commit list: