Message ID | 20170629071301.GC19906@lisas.de |
---|---|
State | Accepted |
Series | "criu build failures with glibc-2.25.90 (fedora rawhide)" |
Headers | show |
diff --git a/criu/cr-restore.c b/criu/cr-restore.c index cfc8f504..7e11c8c5 100644 --- a/criu/cr-restore.c +++ b/criu/cr-restore.c @@ -897,7 +897,6 @@ static void zombie_prepare_signals(void) (1 << SIGPOLL) |\ (1 << SIGIO) |\ (1 << SIGSYS) |\ - (1 << SIGUNUSED)|\ (1 << SIGSTKFLT)|\ (1 << SIGPWR) \ ) diff --git a/test/zdtm/static/pthread01.c b/test/zdtm/static/pthread01.c index 52f849c0..2520fcfe 100644 --- a/test/zdtm/static/pthread01.c +++ b/test/zdtm/static/pthread01.c @@ -43,7 +43,7 @@ static char *decode_signal(const sigset_t *s, char *buf) COLLECT(SIGTERM); COLLECT(SIGSTKFLT); COLLECT(SIGCHLD); COLLECT(SIGCONT); COLLECT(SIGSTOP); COLLECT(SIGTSTP); COLLECT(SIGTTIN); COLLECT(SIGTTOU); COLLECT(SIGURG); COLLECT(SIGXCPU); COLLECT(SIGXFSZ); COLLECT(SIGVTALRM); COLLECT(SIGPROF); COLLECT(SIGWINCH); COLLECT(SIGIO); - COLLECT(SIGPOLL); COLLECT(SIGPWR); COLLECT(SIGSYS); COLLECT(SIGUNUSED); + COLLECT(SIGPOLL); COLLECT(SIGPWR); COLLECT(SIGSYS); #undef COLLECT return buf;
On 06/29/2017 10:13 AM, Adrian Reber wrote: > Trying to upgrade the criu package on Fedora I ran into a build failure > on Fedora rawhide (development branch). > > https://kojipkgs.fedoraproject.org//work/tasks/3909/20233909/build.log > > The next pre-release of glibc (2.25.90) is part of that Fedora branch > and glibc removed SIGUNUSED from bits/signum.h: > > criu/cr-restore.c: In function 'sig_fatal': > criu/cr-restore.c:900:9: error: 'SIGUNUSED' undeclared (first use in this function); did you mean 'SI_USER'? > (1 << SIGUNUSED)|\ > ^ > criu/cr-restore.c:907:41: note: in expansion of macro 'SIG_FATAL_MASK' > return (sig > 0) && (sig < SIGMAX) && (SIG_FATAL_MASK & (1UL << sig)); > ^~~~~~~~~~~~~~ > criu/cr-restore.c:900:9: note: each undeclared identifier is reported only once for each function it appears in > (1 << SIGUNUSED)|\ > ^ > criu/cr-restore.c:907:41: note: in expansion of macro 'SIG_FATAL_MASK' > return (sig > 0) && (sig < SIGMAX) && (SIG_FATAL_MASK & (1UL << sig)); > ^~~~~~~~~~~~~~ > criu/cr-restore.c:908:1: warning: control reaches end of non-void function [-Wreturn-type] > } > ^ > make[2]: *** [/builddir/build/BUILD/criu-3.2.1/scripts/nmk/scripts/build.mk:111: criu/cr-restore.o] Error 1 > make[1]: *** [criu/Makefile:73: criu/built-in.o] Error 2 > make: *** [Makefile:218: criu] Error 2 > > According to a glibc developer SIGSYS returns the same value as > SIGUNUSED. Not sure if that is the right fix for criu Cc-ing Dima. > https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=8082d91e1c449e0cb137468b731004a5e605c8c6 > > > diff --git a/criu/cr-restore.c b/criu/cr-restore.c > index cfc8f504..7e11c8c5 100644 > --- a/criu/cr-restore.c > +++ b/criu/cr-restore.c > @@ -897,7 +897,6 @@ static void zombie_prepare_signals(void) > (1 << SIGPOLL) |\ > (1 << SIGIO) |\ > (1 << SIGSYS) |\ > - (1 << SIGUNUSED)|\ > (1 << SIGSTKFLT)|\ > (1 << SIGPWR) \ > ) > diff --git a/test/zdtm/static/pthread01.c b/test/zdtm/static/pthread01.c > index 52f849c0..2520fcfe 100644 > --- a/test/zdtm/static/pthread01.c > +++ b/test/zdtm/static/pthread01.c > @@ -43,7 +43,7 @@ static char *decode_signal(const sigset_t *s, char *buf) > COLLECT(SIGTERM); COLLECT(SIGSTKFLT); COLLECT(SIGCHLD); COLLECT(SIGCONT); COLLECT(SIGSTOP); > COLLECT(SIGTSTP); COLLECT(SIGTTIN); COLLECT(SIGTTOU); COLLECT(SIGURG); COLLECT(SIGXCPU); > COLLECT(SIGXFSZ); COLLECT(SIGVTALRM); COLLECT(SIGPROF); COLLECT(SIGWINCH); COLLECT(SIGIO); > - COLLECT(SIGPOLL); COLLECT(SIGPWR); COLLECT(SIGSYS); COLLECT(SIGUNUSED); > + COLLECT(SIGPOLL); COLLECT(SIGPWR); COLLECT(SIGSYS); > #undef COLLECT > > return buf; > > > I can submit a real patch if this is the right approach. > > With this patch I get following zdtm result: > > ################### 10 TEST(S) FAILED (TOTAL 294/SKIPPED 26) ################### > * zdtm/static/del_standalone_un(h) > * zdtm/static/cgroup_stray(h) > * zdtm/static/cgroup02(h) > * zdtm/static/cgroupns(h) > * zdtm/static/cgroup01(h) > * zdtm/static/cgroup00(h) > * zdtm/static/socket-tcp-syn-sent(h) > * zdtm/static/cgroup04(h) > * zdtm/static/deleted_unix_sock(h) > * zdtm/static/cgroup03(h) > ##################################### FAIL ##################################### > > All cgroup related tests are hanging and I had to kill criu > manually. This must have been issue with unified hier. Would you try the patch "[PATCH] cgroup: Skip unified hier controllers"? -- Pavel
On Thu, Jun 29, 2017 at 01:21:11PM +0300, Pavel Emelyanov wrote: > > ################### 10 TEST(S) FAILED (TOTAL 294/SKIPPED 26) ################### > > * zdtm/static/del_standalone_un(h) > > * zdtm/static/cgroup_stray(h) > > * zdtm/static/cgroup02(h) > > * zdtm/static/cgroupns(h) > > * zdtm/static/cgroup01(h) > > * zdtm/static/cgroup00(h) > > * zdtm/static/socket-tcp-syn-sent(h) > > * zdtm/static/cgroup04(h) > > * zdtm/static/deleted_unix_sock(h) > > * zdtm/static/cgroup03(h) > > ##################################### FAIL ##################################### > > > > All cgroup related tests are hanging and I had to kill criu > > manually. > > This must have been issue with unified hier. > Would you try the patch "[PATCH] cgroup: Skip unified hier controllers"? The patch still works and it already has my: Reported-and-tested-by: Adrian Reber <adrian@lisas.de> I would really like to see this patch merged as without it criu is broken on Fedora since a while. With your cgroups patch I get: ################### 2 TEST(S) FAILED (TOTAL 313/SKIPPED 25) #################### * zdtm/static/del_standalone_un(h) * zdtm/static/deleted_unix_sock(h) ##################################### FAIL ##################################### Adrian
On 06/29/2017 02:01 PM, Adrian Reber wrote: > On Thu, Jun 29, 2017 at 01:21:11PM +0300, Pavel Emelyanov wrote: >>> ################### 10 TEST(S) FAILED (TOTAL 294/SKIPPED 26) ################### >>> * zdtm/static/del_standalone_un(h) >>> * zdtm/static/cgroup_stray(h) >>> * zdtm/static/cgroup02(h) >>> * zdtm/static/cgroupns(h) >>> * zdtm/static/cgroup01(h) >>> * zdtm/static/cgroup00(h) >>> * zdtm/static/socket-tcp-syn-sent(h) >>> * zdtm/static/cgroup04(h) >>> * zdtm/static/deleted_unix_sock(h) >>> * zdtm/static/cgroup03(h) >>> ##################################### FAIL ##################################### >>> >>> All cgroup related tests are hanging and I had to kill criu >>> manually. >> >> This must have been issue with unified hier. >> Would you try the patch "[PATCH] cgroup: Skip unified hier controllers"? > > The patch still works and it already has my: > > Reported-and-tested-by: Adrian Reber <adrian@lisas.de> > > I would really like to see this patch merged as without it criu is > broken on Fedora since a while. :) Andrey should merge it right at once. > With your cgroups patch I get: > > ################### 2 TEST(S) FAILED (TOTAL 313/SKIPPED 25) #################### > * zdtm/static/del_standalone_un(h) > * zdtm/static/deleted_unix_sock(h) > ##################################### FAIL ##################################### I've seen those failures some time ago too. IIRC it was missing some 'chmod +x'-s on either test/ dir or some dir beneath it (or all of it). Let me check. -- Pavel
On 06/29/2017 01:21 PM, Pavel Emelyanov wrote: > On 06/29/2017 10:13 AM, Adrian Reber wrote: >> Trying to upgrade the criu package on Fedora I ran into a build failure >> on Fedora rawhide (development branch). >> >> https://kojipkgs.fedoraproject.org//work/tasks/3909/20233909/build.log >> >> The next pre-release of glibc (2.25.90) is part of that Fedora branch >> and glibc removed SIGUNUSED from bits/signum.h: >> >> criu/cr-restore.c: In function 'sig_fatal': >> criu/cr-restore.c:900:9: error: 'SIGUNUSED' undeclared (first use in this function); did you mean 'SI_USER'? >> (1 << SIGUNUSED)|\ >> ^ >> criu/cr-restore.c:907:41: note: in expansion of macro 'SIG_FATAL_MASK' >> return (sig > 0) && (sig < SIGMAX) && (SIG_FATAL_MASK & (1UL << sig)); >> ^~~~~~~~~~~~~~ >> criu/cr-restore.c:900:9: note: each undeclared identifier is reported only once for each function it appears in >> (1 << SIGUNUSED)|\ >> ^ >> criu/cr-restore.c:907:41: note: in expansion of macro 'SIG_FATAL_MASK' >> return (sig > 0) && (sig < SIGMAX) && (SIG_FATAL_MASK & (1UL << sig)); >> ^~~~~~~~~~~~~~ >> criu/cr-restore.c:908:1: warning: control reaches end of non-void function [-Wreturn-type] >> } >> ^ >> make[2]: *** [/builddir/build/BUILD/criu-3.2.1/scripts/nmk/scripts/build.mk:111: criu/cr-restore.o] Error 1 >> make[1]: *** [criu/Makefile:73: criu/built-in.o] Error 2 >> make: *** [Makefile:218: criu] Error 2 >> >> According to a glibc developer SIGSYS returns the same value as >> SIGUNUSED. Not sure if that is the right fix for criu > > Cc-ing Dima. Looks good to me, SIGUNUSED is the same to SIGSYS, so we can easily remove it. Reviewed-by: Dmitry Safonov <dsafonov@virtuozzo.com> > >> https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=8082d91e1c449e0cb137468b731004a5e605c8c6 >> >> >> diff --git a/criu/cr-restore.c b/criu/cr-restore.c >> index cfc8f504..7e11c8c5 100644 >> --- a/criu/cr-restore.c >> +++ b/criu/cr-restore.c >> @@ -897,7 +897,6 @@ static void zombie_prepare_signals(void) >> (1 << SIGPOLL) |\ >> (1 << SIGIO) |\ >> (1 << SIGSYS) |\ >> - (1 << SIGUNUSED)|\ >> (1 << SIGSTKFLT)|\ >> (1 << SIGPWR) \ >> ) >> diff --git a/test/zdtm/static/pthread01.c b/test/zdtm/static/pthread01.c >> index 52f849c0..2520fcfe 100644 >> --- a/test/zdtm/static/pthread01.c >> +++ b/test/zdtm/static/pthread01.c >> @@ -43,7 +43,7 @@ static char *decode_signal(const sigset_t *s, char *buf) >> COLLECT(SIGTERM); COLLECT(SIGSTKFLT); COLLECT(SIGCHLD); COLLECT(SIGCONT); COLLECT(SIGSTOP); >> COLLECT(SIGTSTP); COLLECT(SIGTTIN); COLLECT(SIGTTOU); COLLECT(SIGURG); COLLECT(SIGXCPU); >> COLLECT(SIGXFSZ); COLLECT(SIGVTALRM); COLLECT(SIGPROF); COLLECT(SIGWINCH); COLLECT(SIGIO); >> - COLLECT(SIGPOLL); COLLECT(SIGPWR); COLLECT(SIGSYS); COLLECT(SIGUNUSED); >> + COLLECT(SIGPOLL); COLLECT(SIGPWR); COLLECT(SIGSYS); >> #undef COLLECT >> >> return buf; >> >> >> I can submit a real patch if this is the right approach. >> >> With this patch I get following zdtm result: >> >> ################### 10 TEST(S) FAILED (TOTAL 294/SKIPPED 26) ################### >> * zdtm/static/del_standalone_un(h) >> * zdtm/static/cgroup_stray(h) >> * zdtm/static/cgroup02(h) >> * zdtm/static/cgroupns(h) >> * zdtm/static/cgroup01(h) >> * zdtm/static/cgroup00(h) >> * zdtm/static/socket-tcp-syn-sent(h) >> * zdtm/static/cgroup04(h) >> * zdtm/static/deleted_unix_sock(h) >> * zdtm/static/cgroup03(h) >> ##################################### FAIL ##################################### >> >> All cgroup related tests are hanging and I had to kill criu >> manually. > > This must have been issue with unified hier. > Would you try the patch "[PATCH] cgroup: Skip unified hier controllers"? > > -- Pavel >
>> With your cgroups patch I get: >> >> ################### 2 TEST(S) FAILED (TOTAL 313/SKIPPED 25) #################### >> * zdtm/static/del_standalone_un(h) >> * zdtm/static/deleted_unix_sock(h) >> ##################################### FAIL ##################################### > > I've seen those failures some time ago too. IIRC it was missing some 'chmod +x'-s > on either test/ dir or some dir beneath it (or all of it). Let me check. Hm :( Even stat()-ing the path the test tries to bind to doesn't work. The reason for that is that test is run with non-root privileges and the directory you have your sources in is not accessible by non-root. Gents, what do you think would be better -- raising this test's priviledges, so that it runs as root, or limiting the flavor, so that it runs as non-root but in namespaces? -- Pavel
On Thu, Jun 29, 2017 at 02:11:37PM +0300, Pavel Emelyanov wrote: > > With your cgroups patch I get: > > > > ################### 2 TEST(S) FAILED (TOTAL 313/SKIPPED 25) #################### > > * zdtm/static/del_standalone_un(h) > > * zdtm/static/deleted_unix_sock(h) > > ##################################### FAIL ##################################### > > I've seen those failures some time ago too. IIRC it was missing some 'chmod +x'-s > on either test/ dir or some dir beneath it (or all of it). Let me check. I remember it now also. After some chmod-ing all tests pass. Adrian
Applied, thanks! On Thu, Jun 29, 2017 at 09:13:01AM +0200, Adrian Reber wrote: > Trying to upgrade the criu package on Fedora I ran into a build failure > on Fedora rawhide (development branch). > > https://kojipkgs.fedoraproject.org//work/tasks/3909/20233909/build.log > > The next pre-release of glibc (2.25.90) is part of that Fedora branch > and glibc removed SIGUNUSED from bits/signum.h: > > criu/cr-restore.c: In function 'sig_fatal': > criu/cr-restore.c:900:9: error: 'SIGUNUSED' undeclared (first use in this function); did you mean 'SI_USER'? > (1 << SIGUNUSED)|\ > ^ > criu/cr-restore.c:907:41: note: in expansion of macro 'SIG_FATAL_MASK' > return (sig > 0) && (sig < SIGMAX) && (SIG_FATAL_MASK & (1UL << sig)); > ^~~~~~~~~~~~~~ > criu/cr-restore.c:900:9: note: each undeclared identifier is reported only once for each function it appears in > (1 << SIGUNUSED)|\ > ^ > criu/cr-restore.c:907:41: note: in expansion of macro 'SIG_FATAL_MASK' > return (sig > 0) && (sig < SIGMAX) && (SIG_FATAL_MASK & (1UL << sig)); > ^~~~~~~~~~~~~~ > criu/cr-restore.c:908:1: warning: control reaches end of non-void function [-Wreturn-type] > } > ^ > make[2]: *** [/builddir/build/BUILD/criu-3.2.1/scripts/nmk/scripts/build.mk:111: criu/cr-restore.o] Error 1 > make[1]: *** [criu/Makefile:73: criu/built-in.o] Error 2 > make: *** [Makefile:218: criu] Error 2 > > According to a glibc developer SIGSYS returns the same value as > SIGUNUSED. Not sure if that is the right fix for criu > > https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=8082d91e1c449e0cb137468b731004a5e605c8c6 > > > diff --git a/criu/cr-restore.c b/criu/cr-restore.c > index cfc8f504..7e11c8c5 100644 > --- a/criu/cr-restore.c > +++ b/criu/cr-restore.c > @@ -897,7 +897,6 @@ static void zombie_prepare_signals(void) > (1 << SIGPOLL) |\ > (1 << SIGIO) |\ > (1 << SIGSYS) |\ > - (1 << SIGUNUSED)|\ > (1 << SIGSTKFLT)|\ > (1 << SIGPWR) \ > ) > diff --git a/test/zdtm/static/pthread01.c b/test/zdtm/static/pthread01.c > index 52f849c0..2520fcfe 100644 > --- a/test/zdtm/static/pthread01.c > +++ b/test/zdtm/static/pthread01.c > @@ -43,7 +43,7 @@ static char *decode_signal(const sigset_t *s, char *buf) > COLLECT(SIGTERM); COLLECT(SIGSTKFLT); COLLECT(SIGCHLD); COLLECT(SIGCONT); COLLECT(SIGSTOP); > COLLECT(SIGTSTP); COLLECT(SIGTTIN); COLLECT(SIGTTOU); COLLECT(SIGURG); COLLECT(SIGXCPU); > COLLECT(SIGXFSZ); COLLECT(SIGVTALRM); COLLECT(SIGPROF); COLLECT(SIGWINCH); COLLECT(SIGIO); > - COLLECT(SIGPOLL); COLLECT(SIGPWR); COLLECT(SIGSYS); COLLECT(SIGUNUSED); > + COLLECT(SIGPOLL); COLLECT(SIGPWR); COLLECT(SIGSYS); > #undef COLLECT > > return buf; > > > I can submit a real patch if this is the right approach. > > With this patch I get following zdtm result: > > ################### 10 TEST(S) FAILED (TOTAL 294/SKIPPED 26) ################### > * zdtm/static/del_standalone_un(h) > * zdtm/static/cgroup_stray(h) > * zdtm/static/cgroup02(h) > * zdtm/static/cgroupns(h) > * zdtm/static/cgroup01(h) > * zdtm/static/cgroup00(h) > * zdtm/static/socket-tcp-syn-sent(h) > * zdtm/static/cgroup04(h) > * zdtm/static/deleted_unix_sock(h) > * zdtm/static/cgroup03(h) > ##################################### FAIL ##################################### > > All cgroup related tests are hanging and I had to kill criu > manually. > > Adrian > _______________________________________________ > CRIU mailing list > CRIU@openvz.org > https://lists.openvz.org/mailman/listinfo/criu