[CRIU] ✗ travis-ci: failure for Per-thread seccomp support, v3
Cyrill Gorcunov
gorcunov at gmail.com
Fri Apr 27 10:14:04 MSK 2018
On Thu, Apr 26, 2018 at 04:14:16PM -0700, Andrei Vagin wrote:
> ================ Run zdtm/static/seccomp_filter_threads in uns =================
> Start test
> Test is SUID
> ./seccomp_filter_threads --pidfile=seccomp_filter_threads.pid --outfile=seccomp_filter_threads.out
> Run criu dump
> Run criu restore
> Send the 15 signal to 240
> Wait for zdtm/static/seccomp_filter_threads(240) to die for 0.100000
> ######### Test zdtm/static/seccomp_filter_threads FAIL at result check #########
> Test output: ================================
> __NR_ptrace filtered inside a sole thread 7
> Waiting thread 0
> __NR_mincore filtered inside a sole thread 9
> __NR_prctl filtered inside a sole thread 8
> Triggering 0 __NR_ptrace thread 7
> Triggering 2 __NR_mincore thread 9
> Triggering 1 __NR_prctl thread 8
> Waiting thread 1
> Waiting thread 2
> 21:30:42.531: 5: ERR: seccomp_filter_threads.c:50: fopen failed (errno = 13 (Permission denied))
> 21:30:42.531: 5: FAIL: seccomp_filter_threads.c:201: seccomp mode mismatch -1 (errno = 13 (Permission denied))
int get_seccomp_mode(pid_t pid)
{
FILE *f;
char buf[PATH_MAX];
sprintf(buf, "/proc/%d/status", pid);
f = fopen(buf, "r+");
if (!f) {
--> pr_perror("fopen failed");
return -1;
}
while (NULL != fgets(buf, sizeof(buf), f)) {
int mode;
if (sscanf(buf, "Seccomp:\t%d", &mode) != 1)
continue;
fclose(f);
return mode;
}
fclose(f);
return -1;
}
I suspect it's is due to "r+" mode in f = fopen(buf, "r+");. It didn't trigger on
my machine, neither in travis tests I ran. Andrew, is there simple way to rerun
this series with plain read-only (ie f = fopen(buf, "r");) without resending
the whole series?
More information about the CRIU
mailing list