[CRIU] Restoring failed on ARMv7

Pavel Emelyanov xemul at parallels.com
Mon Nov 2 07:59:59 PST 2015


On 10/30/2015 05:48 PM, Artem Kuzmitskiy wrote:
> 
> 
> 2015-10-30 16:33 GMT+03:00 Pavel Emelyanov <xemul at parallels.com <mailto:xemul at parallels.com>>:
> 
>     On 10/30/2015 04:17 PM, Artem Kuzmitskiy wrote:
>     >
>     >
>     > 2015-10-30 12:52 GMT+03:00 Pavel Emelyanov <xemul at parallels.com <mailto:xemul at parallels.com> <mailto:xemul at parallels.com <mailto:xemul at parallels.com>>>:
>     >
>     >     On 10/30/2015 12:38 PM, Artem Kuzmitskiy wrote:
>     >     > Hi all,
>     >     >
>     >     > I checked criu on armv7 with 3.16 kernel and got next error when restoring:
>     >     > ....
>     >     > (00.087176)   6034: task_args: 0xd6000
>     >     > task_args->pid: 6034
>     >     > task_args->nr_threads: 1
>     >     > task_args->clone_restore_fn: 0xd1c90
>     >     > task_args->thread_args: 0xd62c0
>     >     > pie: Switched to the restorer 6034
>     >     > pie: Error (pie/restorer.c:772): Unable to unmap (-): 1992687616
>     >
>     >     Ouch, the pie logging is ... not complete :) Can you strace the restoring
>     >     to see what's going on with this syscall?
>     >
>     >
>     > Strace log (command -strace criu restore -d -D images -o restore.log -v4 --shell-job -t 11758)
> 
>     Plz, add -f option to strace, the subtasks syscalls are of the main interest.

I see no failed munmap-s in the strace below. And this part

> clone(Process 4820 attached
> child_stack=0x7e894b00, flags=SIGCHLD) = 4820
> [pid  5387] gettimeofday({1446215777, 101923}, NULL) = 0
> [pid  5387] write(1023, "(00.031539) PID: real 4820 virt "..., 37) = 37
> [pid  5387] flock(3, LOCK_UN)           = 0
> [pid  5387] close(3)                    = 0
> [pid  5387] gettimeofday({1446215777, 103520}, NULL) = 0
> [pid  5387] write(1023, "(00.033136) Wait until namespace"..., 46) = 46
> [pid  5387] futex(0x76f7a010, FUTEX_WAIT, 1, NULLsyscall: unknown syscall trap 0x0f000000
>  <unfinished ...>
> [pid  4820] ????( <unfinished ...>

makes me wonder what's going on.

> Process 4820 detached
> <... futex resumed> )                   = 0
> gettimeofday({1446215777, 106384}, NULL) = 0
> write(1023, "(00.036000) Running setup-namesp"..., 45) = 45
> gettimeofday({1446215777, 106785}, NULL) = 0
> futex(0x76f7a014, FUTEX_WAKE, 2147483647) = 1
> futex(0x76f7a010, FUTEX_WAIT, 1, NULL)  = 0
> futex(0x76f7a014, FUTEX_WAKE, 2147483647) = 1
> futex(0x76f7a010, FUTEX_WAIT, 1, NULL)  = 0
> gettimeofday({1446215777, 173012}, NULL) = 0
> futex(0x76f7a014, FUTEX_WAKE, 2147483647) = 0
> futex(0x76f7a010, FUTEX_WAIT, 1, NULL)  = 0
> kill(4820, SIGKILL)                     = 0
> futex(0x76f7a014, FUTEX_WAKE, 2147483647) = 0
> gettimeofday({1446215777, 181254}, NULL) = 0
> write(1023, "(00.110870) Error (cr-restore.c:"..., 57) = 57
> exit_group(1)
>  
> 
> 
>     > execve("/usr/sbin/criu", ["criu", "restore", "-d", "-D", "images", "-o", "restore.log", "-v4", "--shell-job", "-t", "11758"], [/* 18 vars */]) = 0
>     > brk(0)                                  = 0xb8000
>     > uname({sys="Linux", node="board", ...}) = 0
>     > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76f2c000
>     > access("/etc/ld.so.preload", R_OK)      = 0
>     > open("/etc/ld.so.preload", O_RDONLY|O_CLOEXEC) = 3
>     > fstat64(3, {st_mode=S_IFREG|0644, st_size=20, ...}) = 0
>     > mmap2(NULL, 20, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x76f2b000
>     > close(3)                                = 0
>     > open("/lib/libSegFault.so", O_RDONLY|O_CLOEXEC) = 3
>     > read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\274\v\0\0004\0\0\0"..., 512) = 512
>     > fstat64(3, {st_mode=S_IFREG|0755, st_size=11112, ...}) = 0
>     > mmap2(NULL, 42988, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76efc000
>     > mprotect(0x76eff000, 28672, PROT_NONE)  = 0
>     > mmap2(0x76f06000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2) = 0x76f06000
>     > close(3)                                = 0
>     > munmap(0x76f2b000, 20)                  = 0
>     > open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
>     > fstat64(3, {st_mode=S_IFREG|0644, st_size=37561, ...}) = 0
>     > mmap2(NULL, 37561, PROT_READ, MAP_PRIVATE, 3, 0) = 0x76ef2000
>     > close(3)                                = 0
>     > open("/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
>     > read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0000\30\0\0004\0\0\0"..., 512) = 512
>     > fstat64(3, {st_mode=S_IFREG|0755, st_size=40466, ...}) = 0
>     > mmap2(NULL, 57916, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76ee3000
>     > mprotect(0x76ee9000, 28672, PROT_NONE)  = 0
>     > mmap2(0x76ef0000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5) = 0x76ef0000
>     > close(3)                                = 0
>     > open("/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
>     > read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\360X\0\0004\0\0\0"..., 512) = 512
>     > fstat64(3, {st_mode=S_IFREG|0755, st_size=136266, ...}) = 0
>     > mmap2(NULL, 127548, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76ec3000
>     > mprotect(0x76ed8000, 28672, PROT_NONE)  = 0
>     > mmap2(0x76edf000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14) = 0x76edf000
>     > mmap2(0x76ee1000, 4668, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x76ee1000
>     > close(3)                                = 0
>     > open("/usr/lib/libprotobuf-c.so.1", O_RDONLY|O_CLOEXEC) = 3
>     > read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0l\n\0\0004\0\0\0"..., 512) = 512
>     > fstat64(3, {st_mode=S_IFREG|0755, st_size=20608, ...}) = 0
>     > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76f2b000
>     > mmap2(NULL, 51908, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76eb6000
>     > mprotect(0x76ebb000, 28672, PROT_NONE)  = 0
>     > mmap2(0x76ec2000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4) = 0x76ec2000
>     > close(3)                                = 0
>     > open("/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
>     > read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\374\n\0\0004\0\0\0"..., 512) = 512
>     > fstat64(3, {st_mode=S_IFREG|0755, st_size=53152, ...}) = 0
>     > mmap2(NULL, 49372, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76ea9000
>     > mprotect(0x76ead000, 28672, PROT_NONE)  = 0
>     > mmap2(0x76eb4000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3) = 0x76eb4000
>     > close(3)                                = 0
>     > open("/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
>     > read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0x\321\0\0004\0\0\0"..., 512) = 512
>     > fstat64(3, {st_mode=S_IFREG|0644, st_size=1453584, ...}) = 0
>     > mmap2(NULL, 150892, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76e84000
>     > mprotect(0x76ea1000, 28672, PROT_NONE)  = 0
>     > mmap2(0x76ea8000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c) = 0x76ea8000
>     > close(3)                                = 0
>     > open("/lib/tls/v7l/neon/vfp/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>     > stat64("/lib/tls/v7l/neon/vfp", 0x7eefc328) = -1 ENOENT (No such file or directory)
>     > open("/lib/tls/v7l/neon/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>     > stat64("/lib/tls/v7l/neon", 0x7eefc328) = -1 ENOENT (No such file or directory)
>     > open("/lib/tls/v7l/vfp/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>     > stat64("/lib/tls/v7l/vfp", 0x7eefc328)  = -1 ENOENT (No such file or directory)
>     > open("/lib/tls/v7l/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>     > stat64("/lib/tls/v7l", 0x7eefc328)      = -1 ENOENT (No such file or directory)
>     > open("/lib/tls/neon/vfp/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>     > stat64("/lib/tls/neon/vfp", 0x7eefc328) = -1 ENOENT (No such file or directory)
>     > open("/lib/tls/neon/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>     > stat64("/lib/tls/neon", 0x7eefc328)     = -1 ENOENT (No such file or directory)
>     > open("/lib/tls/vfp/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>     > stat64("/lib/tls/vfp", 0x7eefc328)      = -1 ENOENT (No such file or directory)
>     > open("/lib/tls/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>     > stat64("/lib/tls", 0x7eefc328)          = -1 ENOENT (No such file or directory)
>     > open("/lib/v7l/neon/vfp/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>     > stat64("/lib/v7l/neon/vfp", 0x7eefc328) = -1 ENOENT (No such file or directory)
>     > open("/lib/v7l/neon/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>     > stat64("/lib/v7l/neon", 0x7eefc328)     = -1 ENOENT (No such file or directory)
>     > open("/lib/v7l/vfp/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>     > stat64("/lib/v7l/vfp", 0x7eefc328)      = -1 ENOENT (No such file or directory)
>     > open("/lib/v7l/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>     > stat64("/lib/v7l", 0x7eefc328)          = -1 ENOENT (No such file or directory)
>     > open("/lib/neon/vfp/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>     > stat64("/lib/neon/vfp", 0x7eefc328)     = -1 ENOENT (No such file or directory)
>     > open("/lib/neon/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>     > stat64("/lib/neon", 0x7eefc328)         = -1 ENOENT (No such file or directory)
>     > open("/lib/vfp/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>     > stat64("/lib/vfp", 0x7eefc328)          = -1 ENOENT (No such file or directory)
>     > open("/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
>     > read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\30\204\1\0004\0\0\0"..., 512) = 512
>     > fstat64(3, {st_mode=S_IFREG|0755, st_size=1584080, ...}) = 0
>     > mmap2(NULL, 1271184, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76d4d000
>     > mprotect(0x76e76000, 32768, PROT_NONE)  = 0
>     > mmap2(0x76e7e000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x129) = 0x76e7e000
>     > mmap2(0x76e81000, 9616, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x76e81000
>     > close(3)                                = 0
>     > open("/usr/lib/libunwind-arm.so.8", O_RDONLY|O_CLOEXEC) = 3
>     > read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\204\25\0\0004\0\0\0"..., 512) = 512
>     > fstat64(3, {st_mode=S_IFREG|0755, st_size=47800, ...}) = 0
>     > mmap2(NULL, 232320, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76d14000
>     > mprotect(0x76d1f000, 32768, PROT_NONE)  = 0
>     > mmap2(0x76d27000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xb) = 0x76d27000
>     > mmap2(0x76d28000, 150400, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x76d28000
>     > close(3)                                = 0
>     > open("/usr/lib/libunwind.so.8", O_RDONLY|O_CLOEXEC) = 3
>     > read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0p\26\0\0004\0\0\0"..., 512) = 512
>     > fstat64(3, {st_mode=S_IFREG|0755, st_size=31400, ...}) = 0
>     > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76f2a000
>     > mmap2(NULL, 215952, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76cdf000
>     > mprotect(0x76ce6000, 32768, PROT_NONE)  = 0
>     > mmap2(0x76cee000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7) = 0x76cee000
>     > mmap2(0x76cef000, 150416, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x76cef000
>     > close(3)                                = 0
>     > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76f29000
>     > set_tls(0x76f294c0, 0x76f29ba8, 0x76f2f050, 0x76f294c0, 0x76f2f050) = 0
>     > mprotect(0x76e7e000, 8192, PROT_READ)   = 0
>     > mprotect(0x76eb4000, 4096, PROT_READ)   = 0
>     > mprotect(0x76edf000, 4096, PROT_READ)   = 0
>     > mprotect(0x76ef0000, 4096, PROT_READ)   = 0
>     > mprotect(0x76f2e000, 4096, PROT_READ)   = 0
>     > munmap(0x76ef2000, 37561)               = 0
>     > set_tid_address(0x76f29068)             = 12387
>     > set_robust_list(0x76f29070, 0xc)        = 0
>     > rt_sigaction(SIGRTMIN, {0x76ec83b0, [], SA_SIGINFO|0x4000000}, NULL, 8) = 0
>     > rt_sigaction(SIGRT_1, {0x76ec825c, [], SA_RESTART|SA_SIGINFO|0x4000000}, NULL, 8) = 0
>     > rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
>     > getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
>     > mmap2(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76bde000
>     > sigaltstack({ss_sp=0x76bde008, ss_flags=0, ss_size=1048576}, NULL) = 0
>     > rt_sigaction(SIGSEGV, {0x76efd3b9, [ILL ABRT BUS FPE SEGV TERM STKFLT], SA_STACK|SA_RESTART|SA_SIGINFO|0x4000000}, NULL, 8) = 0
>     > rt_sigaction(SIGILL, {0x76efd3b9, [ILL ABRT BUS FPE SEGV TERM STKFLT], SA_STACK|SA_RESTART|SA_SIGINFO|0x4000000}, NULL, 8) = 0
>     > rt_sigaction(SIGABRT, {0x76efd3b9, [ILL ABRT BUS FPE SEGV TERM STKFLT], SA_STACK|SA_RESTART|SA_SIGINFO|0x4000000}, NULL, 8) = 0
>     > rt_sigaction(SIGFPE, {0x76efd3b9, [ILL ABRT BUS FPE SEGV TERM STKFLT], SA_STACK|SA_RESTART|SA_SIGINFO|0x4000000}, NULL, 8) = 0
>     > rt_sigaction(SIGBUS, {0x76efd3b9, [ILL ABRT BUS FPE SEGV TERM STKFLT], SA_STACK|SA_RESTART|SA_SIGINFO|0x4000000}, NULL, 8) = 0
>     > rt_sigaction(SIGSTKFLT, {0x76efd3b9, [ILL ABRT BUS FPE SEGV TERM STKFLT], SA_STACK|SA_RESTART|SA_SIGINFO|0x4000000}, NULL, 8) = 0
>     > getuid32()                              = 0
>     > getgid32()                              = 0
>     > prlimit64(0, 0x7, 0, 0x7eefcb48)        = 0
>     > open("images", O_RDONLY|O_LARGEFILE)    = 3
>     > dup3(3, 1022, O_CLOEXEC)                = 1022
>     > close(3)                                = 0
>     > chdir("images")                         = 0
>     > gettimeofday({1446209107, 383183}, NULL) = 0
>     > open("restore.log", O_WRONLY|O_CREAT|O_TRUNC|O_APPEND|O_LARGEFILE, 0600) = 3
>     > dup3(3, 1023, O_CLOEXEC)                = 1023
>     > close(3)                                = 0
>     > gettimeofday({1446209107, 384146}, NULL) = 0
>     > write(1023, "(00.000963) Warn  (crtools.c:619"..., 75) = 75
>     > access("/var/lib/criu/", F_OK)          = -1 ENOENT (No such file or directory)
>     > brk(0)                                  = 0xb8000
>     > brk(0xd9000)                            = 0xd9000
>     > openat(1022, "inventory.img", O_RDONLY|O_LARGEFILE) = 3
>     > mmap2(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0) = 0x76bce000
>     > read(3, "\02611X\36\0\0\0\10\2\20\1\32\24\10\1\20\1\30\1 \1(\0010\0028\3@\4H\5"..., 4096) = 38
>     > close(3)                                = 0
>     > mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, 0, 0) = 0x76f27000
>     > open("/proc/sys", O_RDONLY|O_LARGEFILE) = 3
>     > openat(3, "net/ipv4/tcp_rmem", O_RDONLY|O_LARGEFILE) = 4
>     > read(4, "4096\t87380\t6291456\n", 1024) = 19
>     > close(4)                                = 0
>     > close(3)                                = 0
>     > gettimeofday({1446209107, 389068}, NULL) = 0
>     > write(1023, "(00.005885) TCP recv queue memor"..., 49) = 49
>     > open("/proc/sys", O_RDONLY|O_LARGEFILE) = 3
>     > openat(3, "kernel/cap_last_cap", O_RDONLY|O_LARGEFILE) = 4
>     > read(4, "37\n", 1024)                   = 3
>     > close(4)                                = 0
>     > close(3)                                = 0
>     > SYS_385(0, 0, 0x7eefc684, 0, 0xa6658)   = -1 ENOSYS (Function not implemented)
>     > gettimeofday({1446209107, 391484}, NULL) = 0
>     > write(1023, "(00.008301) Found task size of b"..., 40) = 40
>     > access("/sys/kernel/security/apparmor", F_OK) = -1 ENOENT (No such file or directory)
>     > gettimeofday({1446209107, 392535}, NULL) = 0
>     > mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, 0, 0) = 0x76efa000
>     > gettimeofday({1446209107, 393139}, NULL) = 0
>     > write(1023, "(00.009956) Reading image tree\n", 31) = 31
>     > openat(1022, "pstree.img", O_RDONLY|O_LARGEFILE) = 3
>     > read(3, "\31CVT00'P\16\0\0\0\10\356[\20\0\30\356[ \3579(\356[", 4096) = 26
>     > openat(1022, "ids-11758.img", O_RDONLY|O_LARGEFILE) = 4
>     > read(4, "\31CVT0 CT\24\0\0\0\10\2\20\2\30\2 \2(\0010\0028\3@\4H\5P\6", 4096) = 32
>     > close(4)                                = 0
>     > gettimeofday({1446209107, 395177}, NULL) = 0
>     > write(1023, "(00.011994) Add mnt ns 5 pid 117"..., 35) = 35
>     > read(3, "", 4096)                       = 0
>     > close(3)                                = 0
>     > getsid(12387)                           = 9043
>     > getpgid(0x3063)                         = 12386
>     > gettimeofday({1446209107, 396839}, NULL) = 0
>     > write(1023, "(00.013656) Migrating process tr"..., 69) = 69
>     > gettimeofday({1446209107, 397401}, NULL) = 0
>     > write(1023, "(00.014218) Will restore in 0 na"..., 41) = 41
>     > gettimeofday({1446209107, 397866}, NULL) = 0
>     > write(1023, "(00.014683) NS mask to use 0\n", 29) = 29
>     > getpgid(0x3063)                         = 12386
>     > gettimeofday({1446209107, 398571}, NULL) = 0
>     > write(1023, "(00.015388) Collecting 36/18 (fl"..., 39) = 39
>     > openat(1022, "reg-files.img", O_RDONLY|O_LARGEFILE) = 3
>     > read(3, "\31CVT666P\36\0\0\0\10\1\20\2\30\0*\n\10\0\20\0\30\0 \0(\0002\n"..., 4096) = 427
>     > gettimeofday({1446209107, 399779}, NULL) = 0
>     > write(1023, "(00.016596) Collected [dev/pts/6"..., 41) = 41
>     > gettimeofday({1446209107, 400306}, NULL) = 0
>     > write(1023, "(00.017123) Collected [tmp/simpl"..., 42) = 42
>     > gettimeofday({1446209107, 400808}, NULL) = 0
>     > write(1023, "(00.017625) Collected [usr/lib/l"..., 58) = 58
>     > gettimeofday({1446209107, 401656}, NULL) = 0
>     > write(1023, "(00.018473) Collected [usr/lib/l"..., 62) = 62
>     > gettimeofday({1446209107, 402439}, NULL) = 0
>     > write(1023, "(00.019256) Collected [lib/libc-"..., 48) = 48
>     > gettimeofday({1446209107, 402987}, NULL) = 0
>     > write(1023, "(00.019804) Collected [lib/libgc"..., 49) = 49
>     > gettimeofday({1446209107, 403470}, NULL) = 0
>     > write(1023, "(00.020287) Collected [lib/libSe"..., 50) = 50
>     > gettimeofday({1446209107, 404021}, NULL) = 0
>     > write(1023, "(00.020838) Collected [lib/ld-2."..., 46) = 46
>     > gettimeofday({1446209107, 404747}, NULL) = 0
>     > write(1023, "(00.021564) Collected [tmp] ID 0"..., 35) = 35
>     > gettimeofday({1446209107, 405344}, NULL) = 0
>     > write(1023, "(00.022161) Collected [.] ID 0xa"..., 33) = 33
>     > read(3, "", 4096)                       = 0
>     > close(3)                                = 0
>     > gettimeofday({1446209107, 406298}, NULL) = 0
>     > write(1023, "(00.023115)  `- ... done\n", 25) = 25
>     > gettimeofday({1446209107, 406818}, NULL) = 0
>     > write(1023, "(00.023635) Collecting 49/53 (fl"..., 39) = 39
>     > openat(1022, "remap-fpath.img", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
>     > gettimeofday({1446209107, 407654}, NULL) = 0
>     > write(1023, "(00.024471) No remap-fpath.img i"..., 37) = 37
>     > gettimeofday({1446209107, 408113}, NULL) = 0
>     > write(1023, "(00.024930)  `- ... done\n", 25) = 25
>     > gettimeofday({1446209107, 408641}, NULL) = 0
>     > write(1023, "(00.025458) Collecting 39/21 (fl"..., 39) = 39
>     > openat(1022, "inetsk.img", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
>     > gettimeofday({1446209107, 409475}, NULL) = 0
>     > write(1023, "(00.026292) No inetsk.img image\n", 32) = 32
>     > gettimeofday({1446209107, 410065}, NULL) = 0
>     > write(1023, "(00.026882)  `- ... done\n", 25) = 25
>     > ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
>     > dup3(0, 1019, O_CLOEXEC)                = 1019
>     > openat(1022, "cgroup.img", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
>     > gettimeofday({1446209107, 411906}, NULL) = 0
>     > write(1023, "(00.028723) No cgroup.img image\n", 32) = 32
>     > rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
>     > rt_sigaction(SIGCHLD, {0x2c0ed, [CHLD], SA_RESTART|SA_SIGINFO|SA_NOCLDSTOP|0x4000000}, NULL, 8) = 0
>     > rt_sigprocmask(SIG_SETMASK, ~[CHLD RTMIN RT_1], NULL, 8) = 0
>     > gettimeofday({1446209107, 413415}, NULL) = 0
>     > write(1023, "(00.030232) Running pre-restore "..., 40) = 40
>     > open("/proc", O_RDONLY|O_LARGEFILE|O_DIRECTORY) = 3
>     > dup3(3, 1018, O_CLOEXEC)                = 1018
>     > close(3)                                = 0
>     > openat(1022, "mountpoints-5.img", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
>     > gettimeofday({1446209107, 415476}, NULL) = 0
>     > write(1023, "(00.032293) No mountpoints-5.img"..., 39) = 39
>     > gettimeofday({1446209107, 415985}, NULL) = 0
>     > write(1023, "(00.032802) mnt: Reading mountpo"..., 60) = 60
>     > openat(1022, "core-11758.img", O_RDONLY|O_LARGEFILE) = 3
>     > read(3, "\31CVTG8\5U\306\1\0\0\10\2\32\356\1\10\1\20\0\30\200\3520 \200\200\201\202\4("..., 4096) = 466
>     > close(3)                                = 0
>     > gettimeofday({1446209107, 417454}, NULL) = 0
>     > write(1023, "(00.034271) Forking task with 11"..., 52) = 52
>     > open("/proc", O_RDONLY|O_LARGEFILE|O_DIRECTORY) = 3
>     > dup3(3, 1021, O_CLOEXEC)                = 1021
>     > close(3)                                = 0
>     > openat(1021, "sys/kernel/ns_last_pid", O_RDWR|O_LARGEFILE) = 3
>     > flock(3, LOCK_EX)                       = 0
>     > write(3, "11757", 5)                    = 5
>     > clone(child_stack=0x7eefcb10, flags=SIGCHLD) = 11758
>     > gettimeofday({1446209107, 421536}, NULL) = 0
>     > write(1023, "(00.038353) PID: real 11758 virt"..., 39) = 39
>     > flock(3, LOCK_UN)                       = 0
>     > close(3)                                = 0
>     > gettimeofday({1446209107, 423155}, NULL) = 0
>     > write(1023, "(00.039972) Wait until namespace"..., 46) = 46
>     > gettimeofday({1446209107, 423726}, NULL) = 0
>     > write(1023, "(00.040543) Running setup-namesp"..., 45) = 45
>     > gettimeofday({1446209107, 424206}, NULL) = 0
>     > futex(0x76efa014, FUTEX_WAKE, 2147483647) = 1
>     > futex(0x76efa010, FUTEX_WAIT, 1, NULL)  = 0
>     > futex(0x76efa014, FUTEX_WAKE, 2147483647) = 1
>     > futex(0x76efa010, FUTEX_WAIT, 1, NULL)  = 0
>     > gettimeofday({1446209107, 486890}, NULL) = 0
>     > futex(0x76efa014, FUTEX_WAKE, 2147483647) = 0
>     > futex(0x76efa010, FUTEX_WAIT, 1, NULL)  = 0
>     > kill(11758, SIGKILL)                    = 0
>     > futex(0x76efa014, FUTEX_WAKE, 2147483647) = 0
>     > gettimeofday({1446209107, 492784}, NULL) = 0
>     > write(1023, "(00.109601) Error (cr-restore.c:"..., 57) = 57
>     > exit_group(1)                           = ?
>     >
>     >
>     >     > pie: Error (pie/restorer.c:1304): Restorer fail 6034
>     >     > (00.087584) Error (cr-restore.c:1927): Restoring FAILED
>     >     > ...
>     >     >
>     >     > Is it current criu limitation or kernel should patched?
>     >
>     >     I'm not an expert on ARM :) Maybe Christopher would suggest something?
>     >
>     >     > Test performed on two versions of criu, details below.
>     >     >
>     >     > Kernel version:
>     >     > 3.16 + configuration options from criu.org <http://criu.org> <http://criu.org> <http://criu.org>
>     >     >
>     >     > Result of criu check --ms for criu 1.6(abdea652a94140269413681bfbaf3d90e5888052):
>     >     >
>     >     > Warn  (cr-check.c:188): Skipping unssuported PR_SET_MM_MAP
>     >     >
>     >     > Warn  (cr-check.c:592): Skipping PTRACE_O_SUSPEND_SECCOMP check
>     >     >
>     >     > Warn  (cr-check.c:619): Dirty tracking is OFF. Memory snapshot will not work.
>     >     >
>     >     > Warn  (tun.c:58): Skipping tun support check
>     >     >
>     >     > Warn  (timerfd.c:48): timerfd: Skipping timerfd support check
>     >     >
>     >     > Warn  (cr-check.c:296): Skipping mnt_id support check
>     >     >
>     >     > Warn  (cr-check.c:706): Skipping unsupported AIO remap
>     >     >
>     >     > Warn  (cr-check.c:722): fdinfo doesn't contain the lock field
>     >     >
>     >     > Looks good.
>     >     >
>     >     >
>     >     > Result of criu check --ms for criu 1.7(4c5b23e52c1dc4e3fbbc7472b92e7b1ce9d22f02):
>     >     >
>     >     > Warn  (cr-check.c:189): Skipping unssuported PR_SET_MM_MAP
>     >     >
>     >     > Warn  (cr-check.c:588): Skipping PTRACE_O_SUSPEND_SECCOMP check
>     >     >
>     >     > Warn  (cr-check.c:615): Dirty tracking is OFF. Memory snapshot will not work.
>     >     >
>     >     > Error (timerfd.c:55): timerfd: No timerfd support for c/r: Inappropriate ioctl for device
>     >     >
>     >     > Warn  (cr-check.c:702): Skipping unsupported AIO remap
>     >     >
>     >     > Warn  (cr-check.c:718): fdinfo doesn't contain the lock field
>     >     >
>     >     >
>     >     > Thanks andvance.
>     >     >
>     >     > --
>     >     > Best regards,
>     >     > Artem Kuzmitskiy
>     >     >
>     >     >
>     >     >
>     >     > _______________________________________________
>     >     > CRIU mailing list
>     >     > CRIU at openvz.org <mailto:CRIU at openvz.org> <mailto:CRIU at openvz.org <mailto:CRIU at openvz.org>>
>     >     > https://lists.openvz.org/mailman/listinfo/criu
>     >     >
>     >
>     >
>     >
>     >
>     > --
>     > Best regards,
>     > Artem Kuzmitskiy
>     >
> 
> 
> 
> 
> -- 
> Best regards,
> Artem Kuzmitskiy
> 



More information about the CRIU mailing list