[CRIU] Checkpoint failure on arm64 platform

Vijay Kilari vijay.kilari at gmail.com
Sun Dec 20 22:15:35 PST 2015


Hi,

I am trying to do docker checkpoint/restore on arm64 platform.
The checkpoint fails while with the sys_readlink of /proc/self.
Below is the list of steps that I am trying.

crui check returns as below.

ubuntu at ubuntu:~/criu/criu-1.7$ sudo criu check
Error (cr-check.c:602): Kernel doesn't support PTRACE_O_SUSPEND_SECCOMP
Warn  (cr-check.c:619): Dirty tracking is OFF. Memory snapshot will not work.
Error (cr-check.c:749): CLONE_PARENT | CLONE_NEWPID don't work together
ubuntu at ubuntu:~/criu/criu-1.7$

Am I missing some kernel configuration or patches required for criu required
for kernel 4.2?.

ubuntu at ubuntu:~$ sudo docker run -d justinzh/arm64-vivid:latest tail
-f /dev/null

and with checkpoint, I get below error. Cannot readlink /proc/self(-9)

ubuntu at ubuntu:~$ sudo docker checkpoint 039619dc7bd6

ie: Error (pie/parasite.c:288): Can't readlink /proc/self (-9)
pie: __sent ack msg: 15 15 -9
pie: Error (pie/parasite.c:631): Close the control socket for writing
>
(00.009497) Error (parasite-syscall.c:815): Can't retrieve FD from socket
pie: Daemon waits for command
(00.009535) Wait for ack 15 on daemon socket
(00.009553) Error (parasite-syscall.c:298): Message reply from daemon
is trimmed (12/0)
(00.009564) Error (cr-dump.c:1201): Can't get proc fd (pid: 4255)


Complete log:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(00.009351) Wait for parasite being daemonized...
pie: Running daemon thread leader
(00.009373) Wait for ack 2 on daemon socket
pie: __sent ack msg: 2 2 0
(00.009406) Fetched ack: 2 2 0
pie: Daemon waits for command
(00.009420) Parasite 4255 has been switched to daemon mode
(00.009449) Sent msg to daemon 15 0 0
pie: __fetched msg: 15 0 0
pie: Error (pie/parasite.c:288): Can't readlink /proc/self (-9)
pie: __sent ack msg: 15 15 -9
pie: Error (pie/parasite.c:631): Close the control socket for writing
>
(00.009497) Error (parasite-syscall.c:815): Can't retrieve FD from socket
pie: Daemon waits for command
(00.009535) Wait for ack 15 on daemon socket
(00.009553) Error (parasite-syscall.c:298): Message reply from daemon
is trimmed (12/0)
(00.009564) Error (cr-dump.c:1201): Can't get proc fd (pid: 4255)
(00.009583) Waiting for 4255 to trap
(00.009597) Daemon 4255 exited trapping
(00.009612) Sent msg to daemon 6 0 0
(00.009652) 4255 was trapped
(00.009672) 4255 is going to execute the syscall cf
(00.009701) 4255 was trapped
(00.009715) `- Expecting exit
(00.009740) 4255 was trapped
(00.009754) 4255 is going to execute the syscall 40
pie: __fetched msg: 6 0 0
(00.009792) 4255 was trapped
(00.009804) `- Expecting exit
(00.009829) 4255 was trapped
(00.009842) 4255 is going to execute the syscall b2
(00.009865) 4255 was trapped
(00.009876) `- Expecting exit
(00.009900) 4255 was trapped
(00.009913) 4255 is going to execute the syscall 40
pie: 1: new_sp=0x3ff99613000 ip 0x3ff996dca74
(00.009947) 4255 was trapped
(00.009958) `- Expecting exit
(00.009982) 4255 was trapped
(00.009994) 4255 is going to execute the syscall 39
(00.010030) 4255 was trapped
(00.010041) `- Expecting exit
(00.010065) 4255 was trapped
(00.010077) 4255 is going to execute the syscall 39
(00.010101) 4255 was trapped
(00.010112) `- Expecting exit
(00.010135) 4255 was trapped
(00.010147) 4255 is going to execute the syscall 8b
(00.010173) 4255 was stopped
(00.010204) 4255 was trapped
(00.010219) 4255 is going to execute the syscall 40
(00.010243) 4255 was trapped
(00.010254) `- Expecting exit
(00.010277) 4255 was trapped
(00.010290) 4255 is going to execute the syscall d7
(00.010335) 4255 was stopped
(00.010518) Unlock network
(00.010537) Running network-unlock scripts
(00.010552)     RPC
(00.010639) Unfreezing tasks into 1
(00.010658)     Unseizing 4255 into 1
(00.010755) Error (cr-dump.c:1617): Dumping FAILED.

ubuntu at ubuntu:~/criu/criu-1.7$ uname -a
Linux ubuntu 4.2.0-02479-g4fdbbaf-dirty #1 SMP Thu Dec 17 17:01:06 IST
2015 aarch64 aarch64 aarch64 GNU/Linux
ubuntu at ubuntu:~/criu/criu-1.7

ubuntu at ubuntu:~/criu/criu-1.7$ lsmod
Module                  Size  Used by
veth                  262144  0
netlink_diag          262144  0
af_packet_diag        262144  0
udp_diag              262144  0
tcp_diag              262144  0
inet_diag             262144  2 tcp_diag,udp_diag
unix_diag             262144  0
xt_conntrack          262144  1
ipt_MASQUERADE        262144  1
nf_nat_masquerade_ipv4   262144  1 ipt_MASQUERADE
iptable_nat           262144  1
nf_conntrack_ipv4     262144  2
nf_defrag_ipv4        262144  1 nf_conntrack_ipv4
nf_nat_ipv4           262144  1 iptable_nat
xt_addrtype           262144  2
iptable_filter        262144  1
ip_tables             262144  2 iptable_filter,iptable_nat
x_tables              262144  5
ip_tables,ipt_MASQUERADE,xt_conntrack,iptable_filter,xt_addrtype
nf_nat                262144  2 nf_nat_ipv4,nf_nat_masquerade_ipv4
nf_conntrack          262144  5
nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4
br_netfilter          262144  0
bridge                327680  1 br_netfilter
stp                   262144  1 bridge
llc                   262144  2 stp,bridge
dm_thin_pool          262144  2
dm_bio_prison         262144  1 dm_thin_pool
dm_persistent_data    262144  1 dm_thin_pool
dm_bufio              262144  1 dm_persistent_data
aes_ce_blk            262144  0
ablk_helper           262144  1 aes_ce_blk
cryptd                262144  1 ablk_helper
aes_ce_cipher         262144  1 aes_ce_blk
ghash_ce              262144  0
sha2_ce               262144  0
sha1_ce               262144  0
rtc_efi               262144  0
shpchp                262144  0
uio_pdrv_genirq       262144  0
uio                   262144  1 uio_pdrv_genirq
ipv6                  458752  526 bridge,udp_diag
ubuntu at ubuntu:~/criu/criu-1.7$ zcat /proc/config.gz | grep PID_NS
CONFIG_PID_NS=y
ubuntu at ubuntu:~/criu/criu-1.7$

Regards
Vijay


More information about the CRIU mailing list