From 63e75e4b7f805bf69f66971a89a0f4bc60fa323a Mon Sep 17 00:00:00 2001 From: embeddevio Date: Wed, 28 Oct 2026 21:35:27 +0300 Subject: [PATCH] =?UTF-8?q?netns:=20=D1=81=D0=BD=D0=BE=D1=81=20=D1=82?= =?UTF-8?q?=D0=BE=D0=BF=D0=BE=D0=BB=D0=BE=D0=B3=D0=B8=D0=B8=20=D1=81=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B2=D1=82=D0=BE=D1=80=D0=B0=D0=BC=D0=B8=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D1=81=D0=BB=D1=83=D1=87=D0=B0=D0=B9=20=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B2=D0=BE=D0=B3=D0=BE=20umount=20(#56)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В контейнере `ip netns delete` иногда возвращает успех, но namespace остаётся в `ip netns list` — из-за этого run.sh отдавал код 4 на зелёных тестах (флак 1 из 3). Теперь удаление повторяется до 5 раз с проверкой ns_exists. Refs #21, Refs #56 --- tests/netns/topology.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/netns/topology.sh b/tests/netns/topology.sh index 16aa764..9b8607b 100644 --- a/tests/netns/topology.sh +++ b/tests/netns/topology.sh @@ -28,8 +28,18 @@ topology_down() { local quiet="${1:-}" [ "$quiet" = quiet ] || log "удаляю топологию" # netns удаляем первыми: вместе с ними уходят veth-концы и процессы внутри. + # `ip netns delete` в контейнере иногда возвращает успех, но namespace + # остаётся виден в `ip netns list` (issue #56) — поэтому повторяем удаление. + local ns attempt for ns in "$AWG_NS_CLIENT" "$AWG_NS_GW" "$AWG_NS_UPLINK"; do - if ns_exists "$ns"; then ip netns del "$ns" 2>/dev/null || true; fi + for attempt in 1 2 3 4 5; do + if ! ns_exists "$ns"; then break; fi + ip netns delete "$ns" 2>/dev/null || true + sleep 0.2 + done + if ns_exists "$ns"; then + warn "netns ${ns} не удалился за 5 попыток" + fi done # страховка на случай, если veth остался в корневом netns for ifc in "$AWG_VETH_CLIENT" "$AWG_VETH_GW_LAN" "$AWG_VETH_GW_WAN" "$AWG_VETH_UPLINK"; do