• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ovn-kubernetes / ovn-kubernetes / 21928966377
57%

Build:
DEFAULT BRANCH: master
Ran 12 Feb 2026 01:12AM UTC
Jobs 1
Files 299
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

11 Feb 2026 03:57PM UTC coverage: 56.277% (+0.008%) from 56.269%
21928966377

push

github

jcaamano
Fix asynchronous race with nad controller UT

With the nad controller tests, it syncsNAD then waits for an Eventually
clause to be satisified that checks if the expected number of networks
started, stopped, etc. Afterwards, it then checks these values are
consistent. The fake network controller uses a controller tcm lock
to store started, deleted networks on reconcile.

A race exists because network controller is an asynchronous reocncile
loop, so although the syncNAD calls in the test can execute, it does not
mean network controller has processed anything. This can lead to false
positives on pass criteria where this kind of event loop happens:

1. Sync NAD (create network), sync nad (delete network), expect running
   (0 networks).
2. Before network controller runs, eventually code gets hit and takes
   tcm lock. Checks that started networks (empty) contains expected
   running networks (empty). Passes eventually checks.
3. Create network processes now that tcm lock is released. Now tcm has 1
   started network, 0 stopped networks.
4. Eventually loop processes. Started networks (1) contains expected
   running networks (empty). Passes due to contains semantics. Stopped
   network check expects 1, but fails. Test flake
5. Delete never go ta chance to run.

To fix this, synchronize syncNetwork calls when syncNAD happens. It's
the only way to truly ensure the actions are completed by the time we
want to test pass/fail criteria.

Fixes: #5948

Signed-off-by: Tim Rozet <trozet@nvidia.com>

44533 of 79132 relevant lines covered (56.28%)

411.1 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
78.22
-0.11% go-controller/pkg/ovn/base_network_controller_pods.go
2
67.4
3.56% go-controller/pkg/ovn/controller/network_qos/network_qos.go
4
78.34
-0.58% go-controller/pkg/ovn/controller/networkconnect/topology.go
6
66.11
-3.33% go-controller/pkg/clustermanager/egressip_event_handler.go
8
60.44
-0.59% go-controller/pkg/clustermanager/egressip_controller.go
Jobs
ID Job ID Ran Files Coverage
1 21928966377.1 12 Feb 2026 01:12AM UTC 299
56.28
GitHub Action Run
Source Files on build 21928966377
  • Tree
  • List 299
  • Changed 7
  • Source Changed 0
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 95c0a261 on github
  • Prev Build on master (#21888299874)
  • Next Build on master (#21946446067)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc