[CRIU] CRIU and travis (aarch64)

Adrian Reber adrian at lisas.de
Wed Oct 30 01:05:52 MSK 2019


On Tue, Oct 29, 2019 at 10:08:53PM +0100, Adrian Reber wrote:
> On Tue, Oct 29, 2019 at 10:01:40AM -0700, Andrei Vagin wrote:
> > Hi Adrian,
> > 
> > On Tue, Oct 29, 2019 at 9:26 AM Adrian Reber <adrian at lisas.de> wrote:
> > >
> > > I just tried to switch CRIU to use the native aarch64 support on Travis
> > > and it failed with:
> > 
> > I was playing with this too:
> > https://travis-ci.org/avagin/criu/jobs/594911849
> 
> Ha, that looks more or less just the same to my changes.
> 
> > but I don't have time to complete this, so it would be nice if you
> > will be able to send patches:
> 
> I can try to look more into it, no problem.
> 
> > > + [ -f  ]
> > > + umask 0000
> > > + ./criu/criu check
> > > Error (criu/cr-check.c:512): /proc/sys/kernel/sem_next_id is inaccessible: Permission denied
> > >
> > > As I have been told this is related to the fact that Travis uses
> > > unprivileged LXD containers to distribute jobs to aarch64. As I
> > > understand it this makes it probably not possible for us to use Travis's
> > > native aarch64 support.
> > >
> > > Let me know if anyone has an idea if this can be solved somehow.
> > 
> > We can try to dump and restore env00 as regular user:
> > zdtm.py run zdtm/static/env00 --user
> 
> Let me try that. Thanks.

That fails on aarch64 with:

+ ./test/zdtm.py run -t zdtm/static/env00 -k always --user
make[1]: Entering directory '/home/travis/build/adrianreber/criu/test'
ccache gcc -D_GNU_SOURCE    umount2.c   -o umount2
make[1]: Leaving directory '/home/travis/build/adrianreber/criu/test'
make[1]: Entering directory '/home/travis/build/adrianreber/criu/test'
ccache gcc -D_GNU_SOURCE    zdtm_ct.c   -o zdtm_ct
make[1]: Leaving directory '/home/travis/build/adrianreber/criu/test'
mount: permission denied
Traceback (most recent call last):
  File "./test/zdtm.py", line 2560, in <module>
    tst.available()
  File "./test/zdtm.py", line 602, in available
    ["flock", "zdtm_mount_cgroups.lock", "./zdtm_mount_cgroups"])
  File "/usr/lib/python2.7/subprocess.py", line 541, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '[u'flock', u'zdtm_mount_cgroups.lock', u'./zdtm_mount_cgroups']' returned non-zero exit status 1

and on baremetal x86_64 it also fails:

(00.009123) ========================================
(00.009132) Error (criu/util.c:1343): rlimit: Can't setup RLIMIT_NOFILE for self: Operation not permitted
(00.009625) cg:     `- [perf_event] -> [/] [0]
(00.009627) cg:     `- [pids] -> [/user.slice/user-2000.slice] [0]
(00.009629) cg:     `- [rdma] -> [/] [0]
(00.009631) cg: Set 1 is criu one
(00.009668) Warn  (compel/src/lib/infect.c:127): Unable to interrupt task: 38 (Operation not permitted)
(00.009674) Unlock network
(00.009678) Unfreezing tasks into 1
(00.009680) 	Unseizing 38 into 1
(00.009683) Error (compel/src/lib/infect.c:342): Unable to detach from 38: No such process
(00.009691) Error (criu/cr-dump.c:1763): Dumping FAILED.

On aarch64 it is also not possible to run criu cpuinfo dump/check.

See https://travis-ci.org/adrianreber/criu/builds/604684809

So building, like we do right now, is possible, but not much more.

		Adrian


More information about the CRIU mailing list