Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CRIU dump or checkpoint hangs with Docker container on Ubuntu 24.04 (Noble) #2516

Open
ohcomely opened this issue Nov 12, 2024 · 0 comments
Open

Comments

@ohcomely
Copy link

Environment

  • OS: Ubuntu 24.04 (Noble)
  • Kernel: 6.8.0-48-generic
  • Docker version: 24.0.7 (build 24.0.7-0ubuntu4.1)
  • CRIU version: 4.0

What works

  • Successfully tested CRIU with a simple process (basic counter program)
  • Can successfully run criu check
  • CRIU installation and basic operations are functional

What doesn't work

  1. Docker's built-in checkpoint/restore feature hangs:
# Start a simple counter container
docker run -d --name looper busybox /bin/sh -c 'i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done'

# After some time, attempt to checkpoint
docker checkpoint create looper checkpoint1
# Hangs/freezes here
  1. Direct CRIU usage also fails. When attempting to checkpoint the same container using CRIU directly, it hangs at the parasite stage:
(00.010611) Found 23 file descriptors
(00.010612) ----------------------------------------
(00.010619) Dump private signals of 54486
(00.010624) Dump shared signals of 54486
(00.010626) Dump rseq of 54486: ptr = 0x7b9ce3de0060 sign = 0x53053053
(00.010636) Parasite syscall_ip at 0x5959c1a6f000

Steps to reproduce

  1. Start a test container:
docker run -d --name looper busybox /bin/sh -c 'i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done'
  1. Try Docker's checkpoint feature:
docker checkpoint create looper checkpoint1
# Hangs here
  1. Alternatively, try direct CRIU usage:
# Get container PID
pid=$(docker inspect --format '{{.State.Pid}}' looper)

# Attempt to dump
sudo criu dump -t $pid -D /tmp/checkpoint --shell-job -v4

This also hangs at the parasite stage with the same output:

(00.010611) Found 23 file descriptors
(00.010612) ----------------------------------------
(00.010619) Dump private signals of 54486
(00.010624) Dump shared signals of 54486
(00.010626) Dump rseq of 54486: ptr = 0x7b9ce3de0060 sign = 0x53053053
(00.010636) Parasite syscall_ip at 0x5959c1a6f000
  • The Docker daemon is running with experimental features enabled
  • Full system logs and CRIU debug output can be provided if needed

Question

How can I successfully checkpoint a Docker container on Ubuntu 24.04? Both methods I've tried have failed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant