52 lines
2.3 KiB
Diff
52 lines
2.3 KiB
Diff
From ee720f966fdf14a99b8ebc685f3948bb8b29ba73 Mon Sep 17 00:00:00 2001
|
|
From: zhongtao <zhongtao17@huawei.com>
|
|
Date: Tue, 13 Aug 2024 10:56:44 +0800
|
|
Subject: [PATCH 119/149] skip calling cni plugin cleanup when network
|
|
namespace is not mounted
|
|
|
|
Signed-off-by: zhongtao <zhongtao17@huawei.com>
|
|
---
|
|
.../entry/cri/v1/v1_cri_pod_sandbox_manager_service.cc | 7 +++++++
|
|
.../entry/cri/v1alpha/cri_pod_sandbox_manager_service.cc | 7 +++++++
|
|
2 files changed, 14 insertions(+)
|
|
|
|
diff --git a/src/daemon/entry/cri/v1/v1_cri_pod_sandbox_manager_service.cc b/src/daemon/entry/cri/v1/v1_cri_pod_sandbox_manager_service.cc
|
|
index 2a458a6d..77faf48a 100644
|
|
--- a/src/daemon/entry/cri/v1/v1_cri_pod_sandbox_manager_service.cc
|
|
+++ b/src/daemon/entry/cri/v1/v1_cri_pod_sandbox_manager_service.cc
|
|
@@ -435,6 +435,13 @@ void PodSandboxManagerService::ClearCniNetwork(const std::shared_ptr<sandbox::Sa
|
|
return;
|
|
}
|
|
|
|
+ // If the network namespace is not mounted, the network has been cleaned up
|
|
+ // and there is no need to call the cni plugin.
|
|
+ if (!util_detect_mounted(sandboxKey.c_str())) {
|
|
+ WARN("Network namespace %s not exist", sandboxKey.c_str());
|
|
+ return;
|
|
+ }
|
|
+
|
|
const auto config = sandbox->GetSandboxConfig();
|
|
std::map<std::string, std::string> stdAnnos;
|
|
CRIHelpers::ProtobufAnnoMapToStd(config.annotations(), stdAnnos);
|
|
diff --git a/src/daemon/entry/cri/v1alpha/cri_pod_sandbox_manager_service.cc b/src/daemon/entry/cri/v1alpha/cri_pod_sandbox_manager_service.cc
|
|
index bc3f4031..5590827e 100644
|
|
--- a/src/daemon/entry/cri/v1alpha/cri_pod_sandbox_manager_service.cc
|
|
+++ b/src/daemon/entry/cri/v1alpha/cri_pod_sandbox_manager_service.cc
|
|
@@ -848,6 +848,13 @@ auto PodSandboxManagerService::ClearCniNetwork(const std::string &realSandboxID,
|
|
goto cleanup;
|
|
}
|
|
|
|
+ // If the network namespace is not mounted, the network has been cleaned up
|
|
+ // and there is no need to call the cni plugin.
|
|
+ if (!util_detect_mounted(netnsPath.c_str())) {
|
|
+ WARN("Network namespace %s not exist", netnsPath.c_str());
|
|
+ goto cleanup;
|
|
+ }
|
|
+
|
|
stdAnnos.insert(std::pair<std::string, std::string>(CRIHelpers::Constants::POD_SANDBOX_KEY, netnsPath));
|
|
pluginErr.Clear();
|
|
m_pluginManager->TearDownPod(ns, name, Network::DEFAULT_NETWORK_INTERFACE_NAME, realSandboxID, stdAnnos,
|
|
--
|
|
2.25.1
|
|
|