mbox series

[ovs-dev,v6,0/6] Correct tunnel ids exhaustion scenario.

Message ID 20240412015727.4152034-1-ihrachys@redhat.com
Headers show
Series Correct tunnel ids exhaustion scenario. | expand

Message

Ihar Hrachyshka April 12, 2024, 1:57 a.m. UTC
v2+ of the original test patch exposed a ubsan failure in port tunnel id
allocation code when tunnel id space is exhausted.

This series fixes the ubsan failure (patches 1-2); then adjusts the
invalid scenario to trigger the originally intended failure mode - id
space exhausted (patch 3). Finally, it includes a number of smaller
cleanup patches in the area that simplify the allocation code somewhat.
(patches 4-6)

I attempted to make each patch as simple as possible, to simplify
review. If you think it's too granular, let me know and I can squash
some.

v1: initial version.
v2: cover both cases of hint = 0 and hint > max.
v3: reduce the number of ports to create in the hint > max scenario needed to trigger the problem.
v4: remove spurious lib/ovn-util.c change.
v5: ubsan fixes included.
v6: modify patch 5 to honor previously allocated tunnel ids.
    always detach op->list in build_ports (and never elsewhere.)

Ihar Hrachyshka (6):
  northd: Don't cleanup op in ovn_port_allocate_key.
  northd: Don't detach op->list when it wasn't used.
  tests: Correct tunnel ids exhaustion scenario.
  northd: Delete pb if tunnel is not allocated.
  northd: Remove unused `sb` arg in ls_port_create.
  northd: Remove unused nbrp arg in ls_port_reinit.

 northd/northd.c     | 46 ++++++++++++++++++++++++++-------------------
 tests/ovn-northd.at | 43 +++++++++++++++++++++++++++++++++++++++---
 2 files changed, 67 insertions(+), 22 deletions(-)