[CRIU] failure dumping nginx in docker container

Saied Kazemi saied at google.com
Thu Jun 4 13:22:38 PDT 2015


I am running into the exact same CRIU failure with a mysqld server running
in a container:

(00.007793) Error (proc_parse.c:404): Can't handle non-regular mapping on
26317's map 7ff7022cc000

for the following segment:

7ff7022cc000-7ff7022ce000 rw-s 00000000 00:0a 72033
 /[aio] (deleted)

I am using CRIU 1.6 on a 3.18.0 kernel.  Below is the output of strace.
Kernel successfully opens the file:

# criu --version
Version: 1.6
GitID: v1.6-5-g5e1a8a2
# criu check
Error (cr-check.c:665): AIO remap doesn't work properly
Error (cr-check.c:681): fdinfo doesn't contain the lock field
# zcat /proc/config.gz | grep AIO
CONFIG_AIO=y
# CONFIG_DELL_WMI_AIO is not set
# strace ./aio_test /proc/26317/map_files/7ff7022cc000-7ff7022ce000
execve("./aio_test", ["./aio_test", "/proc/26317/map_files/7ff7022cc0"...],
[/* 17 vars */]) = 0
uname({sys="Linux", node="saied-cr-vm", ...}) = 0
brk(0)                                  = 0x203d000
brk(0x203e1c0)                          = 0x203e1c0
arch_prctl(ARCH_SET_FS, 0x203d880)      = 0
readlink("/proc/self/exe", "/home/saied/aio_test", 4096) = 20
brk(0x205f1c0)                          = 0x205f1c0
brk(0x2060000)                          = 0x2060000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
directory)
open("/proc/26317/map_files/7ff7022cc000-7ff7022ce000", O_RDONLY) = 3
exit_group(3)                           = ?
+++ exited with 3 +++

Any ideas?

--Saied


On Thu, Jun 4, 2015 at 2:18 AM, Pavel Emelyanov <xemul at parallels.com> wrote:

> On 06/03/2015 08:42 PM, Ross Boucher wrote:
> > This is a new instance of the same process -- the dump is the same, but
> the map id that's failing now is:
> > 7f81502d9000 (just to explain that the other id won't appear in this log)
>
> The bogus mapping is
>
> 7f81502d9000-7f81502dc000 rw-s 00000000 00:0b 1635352
> /[aio] (deleted)
>
> OK, this is the AIO ring. Strange, CRIU should support it. I have several
> questions.
>
> 1. What's the kernel version you're using?
> 2. Can you run the "criu check", what would it show?
> 3. Also, please, take this proggie
>
> #include <stdio.h>
>
> int main(int argc, char **argv)
> {
>         open(argv[1], 0);
> }
>
>
> and strace what it does on the /proc/$nginx_pid/map_files/$aio_mapping. The
> correct behavior should be -ENXIO reported by the kernel. By seeing this
> CRIU finds out that the mapping in question is AIO. In some older kernels
> this rung used to be open-able, but on those kernels AIO rings were not
> remap-able, so CRIU didn't support AIO-s on them. Maybe that's your case?
>
> -- Pavel
> _______________________________________________
> CRIU mailing list
> CRIU at openvz.org
> https://lists.openvz.org/mailman/listinfo/criu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvz.org/pipermail/criu/attachments/20150604/d2f81db1/attachment.html>


More information about the CRIU mailing list