[CRIU] [Announce] CRIU v3.3 (Crystal Pelican)

Adrian Reber adrian at lisas.de
Thu Jul 20 13:08:00 MSK 2017


On Wed, Jul 19, 2017 at 05:26:20PM +0200, Adrian Reber wrote:
> On Wed, Jul 19, 2017 at 04:52:50PM +0300, Dmitry Safonov wrote:
> > 2017-07-19 16:39 GMT+03:00 Adrian Reber <adrian at lisas.de>:
> > > On Wed, Jul 19, 2017 at 11:54:31AM +0300, Pavel Emelyanov wrote:
> > >> On 07/19/2017 10:26 AM, Adrian Reber wrote:
> > >> > On Tue, Jul 18, 2017 at 10:01:35PM +0300, Pavel Emelyanov wrote:
> > >> >> The new version is out. Most of the changes this time are preparation for future new
> > >> >> features and optimizations, that hasn't yet been well tested and polished.
> > >> >>
> > >> >> However, we have several new features. The most important one is the --tcp-close
> > >> >> option to help migration of Docker containers, that constantly change their IP address.
> > >> >>
> > >> >> And, as usually, a set of bugfixes.
> > >> >>
> > >> >> Changelog: https://criu.org/Download/criu/3.3
> > >> >> Sources: http://download.openvz.org/criu/criu-3.3.tar.bz2
> > >> >
> > >> > I have a build failure on aarch64:
> > >> >
> > >> > In file included from compel/plugins/std/infect.c:13:0:
> > >> > compel/include/uapi/compel/asm/sigframe.h:30:20: error: field 'uc' has incomplete type
> > >> >   struct ucontext   uc;
> > >> >                     ^~
> > >>
> > >> Ouch :( As a lame excuse we have aarch64 build passed on Travis :)
> > >> https://travis-ci.org/xemul/criu/jobs/255093557
> > >>
> > >> Adrian, would you try to fix this issue, it looks like just some system header
> > >> that was included on Travis' Ubuntu is missing on Fedora.
> > >
> > > This is another glibc change:
> > >
> > > https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=251287734e89a52da3db682a8241eb6bccc050c9;hp=c86ed71d633c22d6f638576f7660c52a5f783d66
> > >
> > > 'struct ucontext' has been renamed to 'struct ucontext_t'
> > 
> > Ugh, thanks for noticing that!
> > 
> > >
> > > Any recommendations how a fix should look like? Old glibc has 'struct
> > > ucontext' and the new, upcoming release has 'struct ucontext_t'.
> > 
> > There are scripts/feature-tests.mak - simple tests for compiler/environment.
> > Add there a test something like UCONTEXT_T with a simple
> > main() { struct ucontext_t tmp; return 0; }
> > 
> > Add this also to FEATURES_LIST in Makefile.config and then define
> 
> That works, but config.h is not included into compel. I guess that
> compel should not include files from criu, right? So I have the
> information in criu but not in compel. There is no feature check in
> compel yet, as far as I see.

I just saw that there is a simpler fix, without feature test.

The struct used to be:

typedef struct ucontext {
  ...
} ucontext_t;

Now it is
typedef struct ucontext_t {
  ...
} ucontext_t;

The easy fix would be to replace 'struct ucontext' with 'ucontext_t' in
criu and then it should work for all arches and all glibc-s.

		Adrian


More information about the CRIU mailing list