summaryrefslogtreecommitdiff
path: root/0118-skip-calling-cni-plugin-cleanup-when-network-namespa.patch
diff options
context:
space:
mode:
Diffstat (limited to '0118-skip-calling-cni-plugin-cleanup-when-network-namespa.patch')
-rw-r--r--0118-skip-calling-cni-plugin-cleanup-when-network-namespa.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/0118-skip-calling-cni-plugin-cleanup-when-network-namespa.patch b/0118-skip-calling-cni-plugin-cleanup-when-network-namespa.patch
new file mode 100644
index 0000000..4b33de5
--- /dev/null
+++ b/0118-skip-calling-cni-plugin-cleanup-when-network-namespa.patch
@@ -0,0 +1,51 @@
+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 118/121] 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
+