Work
Everything below is in checkpoint-restore/criu, the Linux checkpoint/restore tool. Links go to the merged commits or the pull request.
Google Summer of Code 2026
Checkpoint/restore support for the identity data the kernel attaches to Unix socket messages. Mentored by Alexander Mikhalitsyn. Written up in the article.
-
SCM_CREDENTIALS checkpoint/restore
Ported a long-standing OpenVZ implementation upstream, preserving the original authorship, and added test coverage. Queued packets now keep the sender pid, uid and gid across a checkpoint.
-
SCM_PIDFD and SO_PASSPIDFD checkpoint/restore
Twelve commits. A receiver mints a pidfd from the sending process the kernel pinned to each queued message, so restore has to put that process back. Where the sender had already exited, its wait status is captured at dump time and reproduced on restore by a stand-in process, leaving the pidfd stale in exactly the way it was before.
Earlier upstream work
Seventeen patches merged in early 2026, before the coding period began.
-
Per-thread timer_slack_ns checkpoint/restore
Collected from each thread through PR_GET_TIMERSLACK inside the parasite and restored per thread, so a process that tuned its own timer slack keeps it. Image format change, plus a test.
-
Pipe ownership on restore
A pipe restored by a root CRIU stayed owned by root, so a non-root process got EACCES reopening its own pipe through /proc/self/fd. Fixes issue #2984.
-
Partial write handling in bwritev()
Unbuffered writes went straight to writev(), which can return short. A short write there leaves a checkpoint image quietly incomplete.
-
Dangling pointers in the Unix socket icon hash
A failed allocation partway through could leave half-inserted entries in a global hash. Everything is now allocated before anything is published.
-
Memory leaks and a truncation check in the socket queue
Several leaks along error paths, a packet that could be left on a list with its data already freed, a missing MSG_CTRUNC check, and a control buffer too small for the file descriptors SCM_RIGHTS can carry.
-
Double-open of the userns image in stream mode
The image streamer rejects duplicate file requests, so the entry is now read once and shared. Plus assorted CI and coverage fixes.