Public bug reported:

[Description]

The OVS kmod test `conntrack - limit by zone` fails with archive OVS
`3.7.1-2` on a Resolute s390x VM running kernel `7.0.0-38-generic`.

The test configures a connection limit of three, attempts additional
connections, and immediately checks the accounting counter. The assertion
fails because the counter reports four instead of three.

[Investigation]

A separate instrumented run, using OVS
`3.7.1-2ubuntu0.26.04.1~ppa2` from 
https://launchpad.net/~gboutry/+archive/ubuntu/resolute-ovn-v2/+packages on the 
same VM and kernel, captured:

```text
08:29:25.867 UTC  Excess connection rejected with ENOMEM
08:29:25.895 UTC  Excess connection rejected with ENOMEM
08:29:25.901 UTC  Counter reports 4; test expects 3 and fails
08:29:25.924 UTC  Counter reports 3, without further packet injections
```

Conntrack events and packet captures showed only three confirmed connections
in the affected zone. Excess connections were rejected; no connection-limit
bypass was observed. The archive runtime reproduced the same assertion
failure, using the same candidate-built test helpers.

Kernel source inspection suggests rejected, unconfirmed connections can
remain temporarily included in the counter until accounting cleanup. This
is consistent with the counter returning to three about 23 ms later,
although individual kernel garbage-collection calls were not traced.

The immediate counter assertion appears to race accounting cleanup. A
bounded wait for the expected count may be appropriate, while retaining
checks that excess connections are rejected.

This has been reproduced on s390x; architecture specificity has not been
established.

[Related upstream report]

A November 2023 upstream discussion 
https://www.mail-archive.com/[email protected]/msg81440.html
reported intermittent failures in the same kmod test, with:

```text
Expected: zone=0,limit=5,count=5
Actual:   zone=0,limit=5,count=6
```

This is a similar symptom, but the discussion does not establish whether
it has the same underlying cause.

[Reproduction]

Environment: Ubuntu Resolute, s390x, kernel `7.0.0-38-generic`, two CPUs,
4 GiB RAM, archive `openvswitch-common` and `openvswitch-switch` version
`3.7.1-2`.

After building the source test helpers and preparing the system as in
`debian/tests/kmod`, run as root from the prepared source directory:

```sh
/bin/bash tests/system-kmod-testsuite -C _debian/tests -j1 \
  AUTOTEST_PATH="$PWD/tests:$PWD/_debian/tests" 127
```

Test 127 is `conntrack - limit by zone` in the tested 3.7.1 source.

[Evidence attachment]

Attach `zone-limit-bug-evidence.tar.gz` alongside this report. It contains
the failing assertion, counter timeline, conntrack events, packet capture,
version metadata and kernel source-analysis provenance. The detailed trace
comes from the separate instrumented run described above.

** Affects: openvswitch (Ubuntu)
     Importance: Undecided
         Status: New

** Attachment added: "zone-limit-bug-evidence.tar.gz"
   
https://bugs.launchpad.net/bugs/2169948/+attachment/6007165/+files/zone-limit-bug-evidence.tar.gz

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2169948

Title:
  OVS kmod “conntrack - limit by zone” test fails on s390x with
  transient count above limit

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openvswitch/+bug/2169948/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to