[CRIU] CRIU in Docker for Mac

Andrei Vagin avagin at virtuozzo.com
Thu Jan 26 12:31:25 PST 2017


On Thu, Jan 26, 2017 at 02:24:42PM +0000, Ross Boucher wrote:
> Well, to be clear, this was just me running the same command travis does: make
> -C scripts/travis $TR_ARCH
> Should those flags be added to the script that actually runs the tests in that
> makefile?

Sure, I will add.
> 
> On Wed, Jan 25, 2017 at 2:34 PM Andrei Vagin <avagin at virtuozzo.com> wrote:
> 
>     On Wed, Jan 25, 2017 at 06:50:32PM +0000, Ross Boucher wrote:
>     > Still fails:
>     >
>     > https://gist.github.com/boucher/220a9e955422d0b35f9cfe1abffbec14
> 
> 
>     """
>     (00.061531) Running network-lock scripts
>     modprobe: can't change directory to '/lib/modules': No such file or
>     directory
>     ip6tables-restore v1.6.0: ip6tables-restore: unable to initialize table
>     'filter'
> 
>     Error occurred at line: 1
>     Try `ip6tables-restore -h' or 'ip6tables-restore --help' for more
>     information.
>     (00.110236) Error (criu/util.c:670): exited, status=2
>     """
> 
>     You have to load modules from the host:
>     modprobe xt_mark ip6_tables ip6table_filter nfnetlink nf_conntrack_netlink
>     nf_conntrack
> 
>     or you can use the next command:
>     docker run --rm -it --privileged -v /lib/modules:/lib/modules criu-alpine .
>     /test/zdtm.py run -t zdtm/static/env00
> 
>     >
>     > On Wed, Jan 25, 2017 at 1:46 PM Andrei Vagin <avagin at gmail.com> wrote:
>     >
>     >     On Wed, Jan 25, 2017 at 10:39 AM, Ross Boucher <rboucher at gmail.com>
>     wrote:
>     >     > Should I be applying those patches to your alpine branch or to
>     master? I
>     >     see
>     >     > they are already in your branch (the one built by travis, right?).
>     When I
>     >     > build your branch, it compiles alright but the tests fail:
>     >
>     >     There was an extra commit. Now I removed it and you can use the
>     alpine
>     >     branch from my repo.
>     >
>     >     Thanks,
>     >     Andrei
>     >
>     >     >
>     >     > ========================== Run zdtm/static/env00 in h
>     >     > ==========================
>     >     > Start test
>     >     > ./env00 --pidfile=env00.pid --outfile=env00.out --envname=
>     ENV_00_TEST
>     >     > Run criu dump
>     >     > =[log]=> dump/zdtm/static/env00/32/1/dump.log
>     >     > ------------------------ grep Error ------------------------
>     >     > (00.044957) Error (criu/util.c:670): exited, status=3
>     >     > (00.057244) Error (compel/src/lib/infect-rpc.c:72): Command 66 for
>     daemon
>     >     > failed with -1
>     >     > (00.057276) Error (criu/mem.c:464): Can't dump page with parasite
>     >     > (00.057702) Error (criu/cr-dump.c:1673): Dumping FAILED.
>     >     > ------------------------ ERROR OVER ------------------------
>     >     > ################### Test zdtm/static/env00 FAIL at CRIU dump
>     >     > ###################
>     >     > Send the 9 signal to  32
>     >     > ##################################### FAIL
>     >     > #####################################
>     >     >
>     >     >
>     >     > On Wed, Jan 25, 2017 at 2:12 AM Andrei Vagin <avagin at virtuozzo.com>
>     >     wrote:
>     >     >>
>     >     >> On Tue, Jan 24, 2017 at 07:37:50PM -0800, Andrei Vagin wrote:
>     >     >> > On Tue, Jan 24, 2017 at 11:17:28PM +0000, Ross Boucher wrote:
>     >     >> > > It seems that this function probably isn't implemented in
>     musl:
>     >     >> > >
>     >     >> > > https://git.musl-libc.org/cgit/musl/tree/src/sched/
>     >     sched_getscheduler.c
>     >     >> >
>     >     >> > Uhuuuu. musl is so lightweight and fast!!!!!
>     >     >> > https://git.musl-libc.org/cgit/musl/tree/src/sched/
>     sched_getparam.c
>     >     >> >
>     >     >> > Ross, could you try out this patch:
>     >     >> >
>     >     >> > https://github.com/avagin/criu/commit/
>     >     265e9fc138f98b742a68b6991225f28d3c99f9b5
>     >     >>
>     >     >> And you need one more patch:
>     >     >>
>     >     >> https://github.com/avagin/criu/commit/
>     >     ff8777b3628eae6b7cc98c7b925cf88508dd3aa8
>     >     >>
>     >     >> With these two patches static/env00 passes on Alpine:
>     >     >>
>     >     >> https://travis-ci.org/avagin/criu/builds/195081973
>     >     >>
>     >     >> >
>     >     >> > Thanks,
>     >     >> > Andrei
>     >     >> >
>     >     >> > >
>     >     >> > > Is there any hope for a workaround?
>     >     >> > >
>     >     >> > > On Tue, Jan 24, 2017 at 6:09 PM Ross Boucher <
>     rboucher at gmail.com>
>     >     >> > > wrote:
>     >     >> > >
>     >     >> > >     Installing ip6tables got a bit further, but now it seems
>     to fail
>     >     >> > > possibly
>     >     >> > >     on sched_getscheduler:
>     >     >> > >
>     >     >> > >     (00.032508) Error (criu/cr-dump.c:134): Can't get sched
>     policy
>     >     for
>     >     >> > > 2337:
>     >     >> > >     Function not implemented
>     >     >> > >
>     >     >> > >     Full log:
>     >     >> > > https://gist.github.com/boucher/
>     5c8edcbf0c7f9d9e39ed1d74c09440e5
>     >     >> > >
>     >     >> > >
>     >     >> > >     On Tue, Jan 24, 2017 at 5:53 PM Ross Boucher <
>     rboucher at gmail.com
>     >     >
>     >     >> > > wrote:
>     >     >> > >
>     >     >> > >         Hey everyone,
>     >     >> > >
>     >     >> > >         Since checkpoint/restore has shipped in experimental
>     mode
>     >     for
>     >     >> > > Docker, I
>     >     >> > >         thought I'd try to get it working with Docker for Mac.
>     I
>     >     think
>     >     >> > > this
>     >     >> > >         should be possible, since it seems building for Alpine
>     linux
>     >     >> > > has
>     >     >> > >         already been taken care of, but I haven't gotten it
>     working
>     >     >> > > just yet.
>     >     >> > >
>     >     >> > >         What I have done is install CRIU 2.9, from the apk
>     testing
>     >     >> > > repository
>     >     >> > >         for alpine linux, in the d4m vm[1], then run a simple
>     >     >> > > checkpoint on a
>     >     >> > >         busybox container. Here's the dump log:
>     >     >> > >
>     >     >> > >
>     >     >> > > https://gist.github.com/boucher/
>     2ac2de1d80ab59bce518d108ec8d0371
>     >     >> > >
>     >     >> > >         Seems that some network script isn't working, but I'm
>     not
>     >     sure
>     >     >> > > if the
>     >     >> > >         log is telling me that its an RPC script.
>     >     >> > >
>     >     >> > >         Thanis,
>     >     >> > >         Ross
>     >     >> > >
>     >     >> > >
>     >     >> > >         [1]: You can access the vm with screen:
>     >     >> > >
>     >     >> > >         screen ~/Library/Containers/com.docker.docker/Data/
>     >     >> > >         com.docker.driver.amd64-linux/tty
>     >     >> > >
>     >     >> > >
>     >     >> >
>     >     >> > > _______________________________________________
>     >     >> > > CRIU mailing list
>     >     >> > > CRIU at openvz.org
>     >     >> > > https://lists.openvz.org/mailman/listinfo/criu
>     >     >> >
>     >     >> > _______________________________________________
>     >     >> > CRIU mailing list
>     >     >> > CRIU at openvz.org
>     >     >> > https://lists.openvz.org/mailman/listinfo/criu
>     >     >
>     >     >
>     >     > _______________________________________________
>     >     > CRIU mailing list
>     >     > CRIU at openvz.org
>     >     > https://lists.openvz.org/mailman/listinfo/criu
>     >     >
>     >
> 


More information about the CRIU mailing list