Projects
Eulaceura:Factory
iSulad
_service:obs_scm:0119-skip-calling-cni-plugin-c...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:0119-skip-calling-cni-plugin-cleanup-when-network-namespa.patch of Package iSulad
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
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2