Skip to content

Conversation

@lifubang
Copy link
Member

To backport some PRs in CI area:

#4934

`lima-vm/lima-actions/ssh` is now merged into `lima-vm/lima-actions/setup`.

https://github.com/lima-vm/lima-actions/releases/tag/v1.1.0

#4917

ci: bump golangci-lint to v2.5

#4937

All the new code appears in main (not in the release branches), and we only want extra linter rules to apply to new code.

Disable lint-extra job if the PR is not to the main branch.

Inspired by lint-extra warnings in release-1.x PRs.

@lifubang lifubang added area/ci backport/1.4-pr A backport PR to release-1.4 labels Oct 16, 2025
@kolyshkin
Copy link
Contributor

Wait, golangci-lint 2.5 should error on naked returns like this:

libcontainer/exeseal/cloned_binary_linux.go:128:1: File is not properly formatted (gofumpt)
		return
^
libcontainer/mount_linux.go:239:1: File is not properly formatted (gofumpt)
	return
^
libcontainer/rootfs_linux.go:1158:1: File is not properly formatted (gofumpt)
		return
^

and it's not. My guess, this is because of caching. @lifubang you need to include the other commit from #4917.

AkihiroSuda and others added 4 commits October 16, 2025 06:59
`lima-vm/lima-actions/ssh` is now merged into
`lima-vm/lima-actions/setup`.

https://github.com/lima-vm/lima-actions/releases/tag/v1.1.0

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
(cherry picked from commit c0e6f42)
Signed-off-by: lifubang <lifubang@acmcoder.com>
Since gofumpt v0.9.0 there's a new formatting rule to "clothe" any naked
returns.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
(cherry picked from commit b2f8a74)
Signed-off-by: lifubang <lifubang@acmcoder.com>
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
(cherry picked from commit 2aea861)
Signed-off-by: lifubang <lifubang@acmcoder.com>
All the new code appears in main (not in the release branches),
and we only want extra linter rules to apply to new code.

Disable lint-extra job if the PR is not to the main branch.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
(cherry picked from commit 1c4dba6)
Signed-off-by: lifubang <lifubang@acmcoder.com>
@lifubang lifubang force-pushed the backport-4934-4917-4937 branch from a5b9b97 to ae19971 Compare October 16, 2025 07:01
@cyphar
Copy link
Member

cyphar commented Oct 16, 2025

The CI failure seems like a bug in criu-dev:


# runc --debug checkpoint --work-path ./work-dir test_busybox_netdevice (status=1)
# time="2025-10-16T07:04:19Z" level=debug msg="Using CRIU 40100" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:885"
# time="2025-10-16T07:04:19Z" level=debug msg="Using CRIU in DUMP mode" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:929"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option ImagesDirFd with value 8" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option ImagesDir with value " func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option Pid with value 15408" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option LeaveRunning with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option ExtUnixSk with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option TcpEstablished with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option EvasiveDevices with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option ShellJob with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option FileLocks with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option LogLevel with value 4" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option LogFile with value dump.log" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option Ps with value <nil>" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option NotifyScripts with value true" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option Root with value /tmp/bats-run-zVOm24/runc.NrGxm3/bundle/rootfs" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option ParentImg with value " func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option TrackMem with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option AutoDedup with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option WorkDirFd with value 9" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option LinkRemap with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option Veths with value []" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option CpuCap with value 4294967295" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option ForceIrmap with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option ExecCmd with value []" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option ExtMnt with value [key:\"/proc/kcore\" val:\"/dev/null\" key:\"/proc/keys\" val:\"/dev/null\" key:\"/proc/latency_stats\" val:\"/dev/null\" key:\"/proc/timer_list\" val:\"/dev/null\" key:\"/dev/null\" val:\"/dev/null\" key:\"/dev/random\" val:\"/dev/random\" key:\"/dev/full\" val:\"/dev/full\" key:\"/dev/tty\" val:\"/dev/tty\" key:\"/dev/zero\" val:\"/dev/zero\" key:\"/dev/urandom\" val:\"/dev/urandom\"]" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option ManageCgroups with value true" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option CgRoot with value []" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option RstSibling with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option InheritFd with value []" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option AutoExtMnt with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option ExtSharing with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option ExtMasters with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option SkipMnt with value []" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option EnableFs with value []" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option UnixSkIno with value []" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option ManageCgroupsMode with value DEFAULT" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option GhostLimit with value 1048576" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option IrmapScanPaths with value []" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option External with value [net[4026532241]:extRootNetNS]" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option EmptyNs with value 1073741824" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option JoinNs with value []" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option CgroupProps with value " func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option CgroupPropsFile with value " func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option CgroupDumpController with value []" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option FreezeCgroup with value /sys/fs/cgroup/system.slice/test_busybox_netdevice" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option Timeout with value 0" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option TcpSkipInFlight with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option WeakSysctls with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option LazyPages with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option StatusFd with value 0" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option OrphanPtsMaster with value true" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option ConfigFile with value /etc/criu/runc.conf" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option TcpClose with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option LsmProfile with value " func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option TlsCacert with value " func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option TlsCacrl with value " func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option TlsCert with value " func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option TlsKey with value " func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option Tls with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option TlsNoCnVerify with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option CgroupYard with value " func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option PreDumpMode with value SPLICE" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option PidfdStoreSk with value 0" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option LsmMountContext with value " func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option NetworkLock with value IPTABLES" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option MntnsCompatMode with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option SkipFileRwxCheck with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option Unprivileged with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option LeaveStopped with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option DisplayStats with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=debug msg="CRIU option LogToStderr with value false" func="libcontainer.(*Container).criuSwrk()" file="libcontainer/criu_linux.go:945"
# time="2025-10-16T07:04:19Z" level=warning msg="open work-dir/dump.log: no such file or directory" func="libcontainer.logCriuErrors()" file="libcontainer/criu_linux.go:788"
# time="2025-10-16T07:04:19Z" level=error msg="read unixpacket @->@: EOF" func="main.fatalWithCode()" file="utils.go:62"
# Cannot find device "dummy0"
# --- teardown ---

I saw a similar failure in runc-private (also on release-1.4, strangely enough).

@lifubang
Copy link
Member Author

I saw a similar failure in runc-private (also on release-1.4, strangely enough).

Caching is such a deep and mysterious art—so advanced that I couldn’t grasp it. Anyway, I just nuked the cache, and magically, the CI turned green! 🥲

@kolyshkin kolyshkin merged commit 13a5c4e into opencontainers:release-1.4 Oct 16, 2025
72 of 74 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ci backport/1.4-pr A backport PR to release-1.4

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants