kata-containers/runtime/patches/0091-kata-runtime-add-sandbox-file-lock-while-call-GetSan.patch

52 lines
1.7 KiB
Diff
Raw Normal View History

kata:sync bugfix patches, runtime 0079-0096 agent 0021-0024 runtime: 0079-kata-runtime-fix-qemu-SCSIBus-info-not-saved-into-pe.patch 0080-kata-runtime-fix-the-block-device-not-removed-in-dev.patch 0081-kata-runtime-cut-too-long-message-in-grpc-log.patch 0082-kata-runtime-change-sandbox-state-to-unhealthy-when-.patch 0083-kata-runtime-add-removeMountBlockDevices-for-contain.patch 0084-kata-runtime-fix-validInterface-func-cause-crash-pro.patch 0085-kata-runtime-fix-kata-netmon-does-not-exit-when-cont.patch 0086-kata-runtime-add-checkCPUSet-before-create-container.patch 0087-kata-runtime-force-delete-the-sandbox-and-container.patch 0088-kata-runtime-check-sandbox-healthy-state-before-call.patch 0089-kata-add-support-for-update-iface.patch 0090-kata-set-sandbox-or-container-status-to-unhealthy.patch 0091-kata-runtime-add-sandbox-file-lock-while-call-GetSan.patch 0092-qemu-add-arm64-to-support-list-of-dimm.patch 0093-kata-runtime-add-timeout-for-grpcWaitProcessRequest.patch 0094-kata-runtime-fix-update-iface-clean-NIC-cause-route-.patch 0095-kata-runtime-fix-qemu-process-resource-resi.patch 0096-kata-containers-Move-from-query-cpus-to-query-cpus-f.patch agent: 0021-kata-agent-fix-sync-clock-not-work-problem.patch 0022-kata-agent-delete-container-id-from-sandbox-struct.patch 0023-kata-agent-modify-log-level.patch 0024-kata-agent-fix-agent.debug_console-not-work-when-bui.patch Signed-off-by: Vanient <xiadanni1@huawei.com> (cherry picked from commit f2d936028666741658157472b8de9d02187c6d55)
2022-09-09 17:04:39 +08:00
From 3f422248b2521b5c9f449b4d3d61193426bd2246 Mon Sep 17 00:00:00 2001
From: jiangpengfei <jiangpengfei9@huawei.com>
Date: Mon, 15 Mar 2021 04:07:43 -0400
Subject: [PATCH] kata-runtime: add sandbox file lock while call
GetSandboxCgroupPath
reason: vci.GetSandboxCgroupPath func will load the sandbox persist.json file,
which is shared with all the containers in the same sandbox. So need to add a
sandbox file lock to make sure load sandbox persist.json file is mutexable.
Conflict: NA
Reference:https://gitee.com/src-openeuler/kata-containers
Change-Id: I07eeb213256bd27f6d5718a65cf7e7ccbec2ecb7
Signed-off-by: jiangpengfei <jiangpengfei9@huawei.com>
---
virtcontainers/cgroups.go | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/virtcontainers/cgroups.go b/virtcontainers/cgroups.go
index 21708eb..6b1d193 100644
--- a/virtcontainers/cgroups.go
+++ b/virtcontainers/cgroups.go
@@ -22,6 +22,7 @@ import (
"github.com/kata-containers/runtime/virtcontainers/utils"
specs "github.com/opencontainers/runtime-spec/specs-go"
"github.com/sirupsen/logrus"
+ vcTypes "github.com/kata-containers/runtime/virtcontainers/pkg/types"
)
type cgroupPather interface {
@@ -155,6 +156,16 @@ func deleteCgroup(hierarchy cgroups.Hierarchy, cgroupPath string) error {
// GetSandboxCgroupPath return the cgroup path of specified sandbox
func GetSandboxCgroupPath(ctx context.Context, sandboxID string) (string, error) {
+ if sandboxID == "" {
+ return "", vcTypes.ErrNeedSandboxID
+ }
+
+ unlock, err := rwLockSandbox(sandboxID)
+ if err != nil {
+ return "", err
+ }
+ defer unlock()
+
config, err := loadSandboxConfig(sandboxID)
if err != nil {
return "", err
--
1.8.3.1