~xnox/ubuntu-z-systems/+git/ovs:branch-2.17

Last commit made on 2024-04-24
Get this branch:
git clone -b branch-2.17 https://git.launchpad.net/~xnox/ubuntu-z-systems/+git/ovs

Branch merges

Branch information

Name:
branch-2.17
Repository:
lp:~xnox/ubuntu-z-systems/+git/ovs

Recent commits

b2e1911... by Roi Dayan

netdev-dpdk: Fix possible memory leak configuring VF MAC address.

VLOG_WARN_BUF() is allocating memory for the error string and should
e used if the configuration cannot continue and error is being returned
so the caller has indication of releasing the pointer.
Change to VLOG_WARN() to keep the logic that error is not being
returned.

Fixes: f4336f504b17 ("netdev-dpdk: Add option to configure VF MAC address.")
Signed-off-by: Roi Dayan <email address hidden>
Acked-by: Gaetan Rivet <email address hidden>
Acked-by: Eli Britstein <email address hidden>
Signed-off-by: Simon Horman <email address hidden>

0919615... by Ilya Maximets

ovsdb: raft: Fix probe intervals after install snapshot request.

If the new snapshot received with INSTALL_SNAPSHOT request contains
a different election timer value, the timer is updated, but the
probe intervals for RAFT connections are not.

Fix that by updating probe intervals whenever we get election timer
from the log.

Fixes: 14b2b0aad7ae ("raft: Reintroduce jsonrpc inactivity probes.")
Acked-by: Mike Pattrick <email address hidden>
Signed-off-by: Ilya Maximets <email address hidden>

15720a3... by Ilya Maximets

ovsdb: raft: Fix inability to join a cluster with a large database.

Inactivity probe interval on RAFT connections depend on a value of the
election timer. However, the actual value is not known until the
database snapshot with the RAFT information is received by a joining
server. New joining server is using a default 1 second until then.

In case a new joining server is trying to join an existing cluster
with a large database, it may take more than a second to generate and
send an initial database snapshot. This is causing an inability to
actually join this cluster. Joining server sends ADD_SERVER request,
waits 1 second, sends a probe, doesn't get a reply within another
second, because the leader is busy preparing and sending an initial
snapshot to it, disconnects, repeat.

This is not an issue for the servers that did already join, since
their probe intervals are larger than election timeout.
Cooperative multitasking also doesn't fully solve this issue, since
it depends on election timer, which is likely higher in the existing
cluster with a very big database.

Fix that by using the maximum election timer value for inactivity
probes until the actual value is known. We still shouldn't completely
disable the probes, because in the rare event the connection is
established but the other side silently goes away, we still want to
disconnect and try to re-establish the connection eventually.

Since probe intervals also depend on the joining state now, update
them when the server joins the cluster.

Fixes: 14b2b0aad7ae ("raft: Reintroduce jsonrpc inactivity probes.")
Reported-by: Terry Wilson <email address hidden>
Reported-at: https://issues.redhat.com/browse/FDP-144
Acked-by: Mike Pattrick <email address hidden>
Signed-off-by: Ilya Maximets <email address hidden>

856cf68... by Chris Riches <email address hidden>

rhel/systemd: Set ovsdb-server timeout to 5 minutes.

If the database is particularly large (multi-GB), ovsdb-server can take
several minutes to come up. This tends to fall afoul of the default
systemd start timeout, which is typically 90s, putting the service into
an infinite restart loop.

To avoid this, set the timeout to a more generous 5 minutes.

This change brings ovsdb-server's timeout in line with ovs-vswitchd,
which got the same treatment in commit c1c69e8a45 ("rhel/systemd: Set
ovs-vswitchd timeout to 5 minutes").

Acked-by: Simon Horman <email address hidden>
Signed-off-by: Chris Riches <email address hidden>
Signed-off-by: Ilya Maximets <email address hidden>

1fe98e4... by Ilya Maximets

github: Update python to 3.12.

We pinned the python version to 3.9 because we had issues building
older meson 0.47.1 with python 3.10. Since then meson was updated to
0.53.2 in our CI, but we didn't reconsider the python version.

Newer versions of python uncover more issues with our python files.
And newer major distributions are using newer versions of python. But
we do not really want to use bleeding edge of python releases either to
avoid unexpected CI failures that need immediate fixes.

Pin python version to 3.12 as it is the latest released version and we
should not have any issues with this version.

While at it, updating meson to a newer version that plays nicely with
python 3.12. We do not really care much about the version we use here
as long as it is able to build the version of DPDK we're using. Meson
has no LTS releases, as far as I can tell, so just choosing the latest
stable 1.4.x series. It should be fine to use for a next few years.
Major distributions are using 1.0+ versions. Upcoming F40 and Ubuntu
24.03 have meson 1.3.

It would also be nice to test the minimal supported version of python,
but 3.6 is not available in setup-python for 22.04. The oldest is 3.7.
And 3.7 is EoL, so pip fails to install some of our dependencies. The
oldest version we can use today is 3.8. But, in the end, this becomes
a race against older python versions reaching end of their life and
packages dropping support of these versions. This may cause unexpected
CI failures. So, not doing that for now.

Acked-by: Simon Horman <email address hidden>
Signed-off-by: Ilya Maximets <email address hidden>

ae67980... by Ilya Maximets

ovsdb-dot: Fix flake8 issues.

Missing and extra spaces, missing empty lines, unused imports and
variables, long lines.

Decided to just comment out the unused 'tail' and 'head' as they
seem useful in documenting the meaning of the words.

Files added to flake8-check to avoid future issues.

Acked-by: Simon Horman <email address hidden>
Signed-off-by: Ilya Maximets <email address hidden>

143fdba... by Ilya Maximets

ovsdb-doc: Fix syntax warning with Python 3.12 and flake8 issues.

ovsdb-doc script generates the following syntax warning while running
with Python 3.12:

  /ovsdb/ovsdb-doc:240: SyntaxWarning: invalid escape sequence '\{'
  s += """

This doesn't cause a build failure because so far it's only a warning,
but it will become a syntax error in the future.

Fix that by converting to a raw string and removing unnecessary
escape sequences.

Adding ovsdb-doc to flake8-check to avoid re-introducing issues in
the future. This means also fixing all the other issues with the
script like unused imports and variables, long lines, missing empty
lines, wildcarded imports. Also cleaning up one place that handles
compatibility with Python 2 types, since we do not support Python 2
for a long time now.

Acked-by: Simon Horman <email address hidden>
Signed-off-by: Ilya Maximets <email address hidden>

e4d6115... by Dumitru Ceara <email address hidden>

python: Remove hacking dependency and use recent flake8.

The previously enabled 'hacking' checks were only applicable to Python 2
code. OVS doesn't support Python 2 for a while now so it's fine to
remove the dependency on hacking.

A similar change landed in OVN a while ago:
https://github.com/ovn-org/ovn/commit/271186fa7d76

Acked-by: Simon Horman <email address hidden>
Signed-off-by: Dumitru Ceara <email address hidden>
Signed-off-by: Ilya Maximets <email address hidden>

69687ac... by Ilya Maximets

cirrus: Update to FreeBSD 13.3.

13.3 was released on March 5 and 13.2 will reach EoL in June.
Update now.

Acked-by: Eelco Chaudron <email address hidden>
Acked-by: Kevin Traynor <email address hidden>
Signed-off-by: Ilya Maximets <email address hidden>

10588fe... by Ilya Maximets

xenserver: Fix tests with Python 3.12.

Without this change many unit tests are failing on systems with
Python 3.12:

  +++ /tests/testsuite.dir/at-groups/2352/stdout
  @@ -1,3 +1,5 @@
  +/./interface-reconfigure:98: SyntaxWarning: invalid escape sequence '\s'
  + p = re.compile(".*\s%(MAC)s\s.*" % pifrec, re.IGNORECASE)

Converting to a raw string to avoid the issue.

This only affects OVS 2.17, support for XenServer was removed
in OVS 3.0.

Acked-by: Simon Horman <email address hidden>
Tested-by: Simon Horman <email address hidden>
Signed-off-by: Ilya Maximets <email address hidden>