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
