Files
Jing Chen ff3425ac1f Fix crash and resource-leak bugs in the containerd shim
- runsc/debug.go: the SIGUSR2 stack dumper never exited its loop, so one
signal pinned a core for the life of the shim.
- proc/init_state.go: the start-failure path closed p.io unconditionally,
but Init.Create leaves it nil for terminal containers. The nil deref
killed the shim, and with it the pod.
- proc/utils.go: getLastRuntimeError leaked the log file it opened, on
every failed runsc command.
- utils/volumes.go: configureShm wrote into a nil annotation map, which
IsSandbox permits.
- runsc/epoll.go: the cgroups v1 OOM watcher panicked on the first
publish failure, which is normal under CRI-O. Reuse forward's leniency
check; the panic under containerd is kept.
- runsccmd/runsc.go: cmdOutput returned slices aliasing sync.Pool buffers
that putBuf immediately recycled.
2026-08-26 22:47:36 +00:00

94 lines
4.3 KiB
Python

load("//tools:defs.bzl", "go_library", "go_test")
package(
default_applicable_licenses = ["//:license"],
licenses = ["notice"],
)
go_library(
name = "runsc",
srcs = [
"api.go",
"container.go",
"debug.go",
"epoll.go",
"oom_v2.go",
"options.go",
"sandbox.go",
"service.go",
"service_linux.go",
"state.go",
],
visibility = ["//pkg/shim:__subpackages__"],
deps = [
"//pkg/cleanup",
"//pkg/shim/v1/extension",
"//pkg/shim/v1/proc",
"//pkg/shim/v1/runsccmd",
"//pkg/shim/v1/runtimeoptions",
"//pkg/shim/v1/taskserver",
"//pkg/shim/v1/taskserver:task_server_go_proto",
"//pkg/shim/v1/utils",
"//runsc/specutils",
"@com_github_burntsushi_toml//:go_default_library",
"@com_github_containerd_cgroups_v3//:go_default_library",
"@com_github_containerd_cgroups_v3//cgroup1:go_default_library",
"@com_github_containerd_cgroups_v3//cgroup1/stats:go_default_library", # keep
"@com_github_containerd_cgroups_v3//cgroup2:go_default_library",
"@com_github_containerd_cgroups_v3//cgroup2/stats:go_default_library", # keep
"@com_github_containerd_console//:go_default_library",
"@com_github_containerd_containerd_api//events:go_default_library",
"@com_github_containerd_containerd_api//runtime/sandbox/v1:go_default_library",
"@com_github_containerd_containerd_api//runtime/task/v2:go_default_library",
"@com_github_containerd_containerd_api//types:go_default_library",
"@com_github_containerd_containerd_api//types/runc/options:go_default_library",
"@com_github_containerd_containerd_api//types/task:go_default_library",
"@com_github_containerd_containerd_v2//cmd/containerd-shim-runc-v2/process:go_default_library",
"@com_github_containerd_containerd_v2//core/events:go_default_library",
"@com_github_containerd_containerd_v2//core/mount:go_default_library",
"@com_github_containerd_containerd_v2//core/runtime:go_default_library",
"@com_github_containerd_containerd_v2//pkg/namespaces:go_default_library",
"@com_github_containerd_containerd_v2//pkg/protobuf:go_default_library",
"@com_github_containerd_containerd_v2//pkg/protobuf/types:go_default_library",
"@com_github_containerd_containerd_v2//pkg/shim:go_default_library",
"@com_github_containerd_containerd_v2//pkg/shutdown:go_default_library",
"@com_github_containerd_containerd_v2//pkg/stdio:go_default_library",
"@com_github_containerd_containerd_v2//pkg/sys/reaper:go_default_library",
"@com_github_containerd_errdefs//:go_default_library",
"@com_github_containerd_errdefs_pkg//errgrpc:go_default_library",
"@com_github_containerd_fifo//:go_default_library",
"@com_github_containerd_go_runc//:go_default_library",
"@com_github_containerd_log//:go_default_library",
"@com_github_containerd_typeurl_v2//:go_default_library",
"@com_github_opencontainers_runtime_spec//specs-go:go_default_library",
"@com_github_sirupsen_logrus//:go_default_library",
"@org_golang_google_protobuf//types/known/anypb:go_default_library",
"@org_golang_x_sys//unix:go_default_library",
],
)
go_test(
name = "runsc_test",
srcs = [
"debug_test.go",
"epoll_test.go",
"oom_v2_test.go",
"service_test.go",
"state_test.go",
],
library = ":runsc",
deps = [
"//pkg/shim/v1/utils",
"@com_github_containerd_cgroups_v3//cgroup1:go_default_library",
"@com_github_containerd_cgroups_v3//cgroup2:go_default_library",
"@com_github_containerd_containerd_api//events:go_default_library",
"@com_github_containerd_containerd_api//runtime/task/v2:go_default_library",
"@com_github_containerd_containerd_v2//core/events:go_default_library",
"@com_github_containerd_containerd_v2//core/runtime:go_default_library",
"@com_github_containerd_errdefs//:go_default_library",
"@com_github_google_go_cmp//cmp:go_default_library",
"@com_github_opencontainers_runtime_spec//specs-go:go_default_library",
"@org_golang_x_sys//unix:go_default_library",
],
)