• Andrey Vagin's avatar
    criu: allow the root task to handle SIGCHLD · 0b33bac3
    Andrey Vagin authored
    If criu process attaches to the root task (it happens for opts.swrk_restore
    and opts.restore_detach) with ptrace, then any signal delivered to the root
    would be also delivered to criu. The latter woult treat the former to die
    due to this delivery and would abort the restore.
    
    Fix it by checking that criu (current == NULL) gets ptrace notification
    (si_code == CLD_TRAPPED) about signal delivered (si_status = SIGCHLD,
    no other signals are allowed by the restoring tasks).
    
    This patch fixes the following error of static/zombie00:
    
    Execute zdtm/live/static/zombie00
    ./zombie00 --pidfile=zombie00.pid --outfile=zombie00.out
    Dump 2207
    Restore
    Test: zdtm/live/static/zombie00, Result: FAIL
    ==================================== ERROR ====================================
    Restore log: /root/git/orig/criu/test/dump/static/zombie00/2207/1/restore.log
    (00.026826) Error (cr-restore.c:1085): 2207 killed by signal 17
    (00.026985) Error (cr-restore.c:1706): Restoring FAILED.
    ================================= ERROR OVER =================================
    
    Reported-by: Mr Jenkins
    Cc: Pavel Emelyanov <xemul@parallels.com>
    Cc: Tycho Andersen <tycho.andersen@canonical.com>
    Signed-off-by: 's avatarAndrey Vagin <avagin@openvz.org>
    Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
    0b33bac3
Name
Last commit
Last update
Documentation Loading commit data...
arch Loading commit data...
include Loading commit data...
lib Loading commit data...
pie Loading commit data...
protobuf Loading commit data...
scripts Loading commit data...
test Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
Makefile Loading commit data...
Makefile.config Loading commit data...
Makefile.crtools Loading commit data...
Makefile.inc Loading commit data...
README Loading commit data...
cgroup.c Loading commit data...
cr-check.c Loading commit data...
cr-dedup.c Loading commit data...
cr-dump.c Loading commit data...
cr-exec.c Loading commit data...
cr-restore.c Loading commit data...
cr-service.c Loading commit data...
cr-show.c Loading commit data...
crtools Loading commit data...
crtools.c Loading commit data...
eventfd.c Loading commit data...
eventpoll.c Loading commit data...
fifo.c Loading commit data...
file-ids.c Loading commit data...
file-lock.c Loading commit data...
files-ext.c Loading commit data...
files-reg.c Loading commit data...
files.c Loading commit data...
fsnotify.c Loading commit data...
image-desc.c Loading commit data...
image.c Loading commit data...
ipc_ns.c Loading commit data...
irmap.c Loading commit data...
kcmp-ids.c Loading commit data...
kerndat.c Loading commit data...
libnetlink.c Loading commit data...
log.c Loading commit data...
mem.c Loading commit data...
mount.c Loading commit data...
namespaces.c Loading commit data...
net.c Loading commit data...
netfilter.c Loading commit data...
page-pipe.c Loading commit data...
page-read.c Loading commit data...
page-xfer.c Loading commit data...
pagemap-cache.c Loading commit data...
parasite-syscall.c Loading commit data...
pipes.c Loading commit data...
plugin.c Loading commit data...
proc_parse.c Loading commit data...
protobuf-desc.c Loading commit data...
protobuf.c Loading commit data...
pstree.c Loading commit data...
ptrace.c Loading commit data...
rbtree.c Loading commit data...
rst-malloc.c Loading commit data...
sd-daemon.c Loading commit data...
sd-daemon.h Loading commit data...
security.c Loading commit data...
shmem.c Loading commit data...
sigframe.c Loading commit data...
signalfd.c Loading commit data...
sk-inet.c Loading commit data...
sk-netlink.c Loading commit data...
sk-packet.c Loading commit data...
sk-queue.c Loading commit data...
sk-tcp.c Loading commit data...
sk-unix.c Loading commit data...
sockets.c Loading commit data...
stats.c Loading commit data...
string.c Loading commit data...
sysctl.c Loading commit data...
timerfd.c Loading commit data...
tty.c Loading commit data...
tun.c Loading commit data...
util.c Loading commit data...
uts_ns.c Loading commit data...