From ee720f966fdf14a99b8ebc685f3948bb8b29ba73 Mon Sep 17 00:00:00 2001 From: zhongtao 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 --- .../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_ptrGetSandboxConfig(); std::map 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(CRIHelpers::Constants::POD_SANDBOX_KEY, netnsPath)); pluginErr.Clear(); m_pluginManager->TearDownPod(ns, name, Network::DEFAULT_NETWORK_INTERFACE_NAME, realSandboxID, stdAnnos, -- 2.25.1