[CRIU] [PATCH] pre-dump: skip dead tasks
Mike Rapoport
rppt at linux.vnet.ibm.com
Sun Jul 10 23:44:22 PDT 2016
On Sun, Jul 10, 2016 at 07:52:02PM +0300, Andrey Vagin wrote:
> From: Andrew Vagin <avagin at virtuozzo.com>
>
> Program terminated with signal SIGSEGV, Segmentation fault.
> #0 0x0000000000435744 in cr_pre_dump_finish (ret=0) at cr-dump.c:1452
> 1452 pr_info("\tPre-dumping %d\n", ctl->pid.virt);
> (gdb) bt
> #0 0x0000000000435744 in cr_pre_dump_finish (ret=0) at cr-dump.c:1452
> #1 cr_pre_dump_tasks (pid=pid at entry=24) at cr-dump.c:1556
> #2 0x000000000041f665 in main (argc=<optimized out>, argv=0x7ffda430e818, envp=<optimized out>) at crtools.c:753
>
> https://github.com/xemul/criu/issues/189
>
> Cc: Mike Rapoport <rppt at linux.vnet.ibm.com>
> Signed-off-by: Andrew Vagin <avagin at virtuozzo.com>
> ---
I'd make the subject little bit more elaborate, something like
criu: pre-dump: skip memory dump for dead tasks
Otherwise, seems Ok to me :)
> criu/cr-dump.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/criu/cr-dump.c b/criu/cr-dump.c
> index 9e2a33e..febef16 100644
> --- a/criu/cr-dump.c
> +++ b/criu/cr-dump.c
> @@ -1449,6 +1449,9 @@ static int cr_pre_dump_finish(int ret)
> struct parasite_ctl *ctl = dmpi(item)->parasite_ctl;
> struct page_xfer xfer;
>
> + if (!task_alive(item))
> + continue;
> +
> pr_info("\tPre-dumping %d\n", ctl->pid.virt);
> timing_start(TIME_MEMWRITE);
> ret = open_page_xfer(&xfer, CR_FD_PAGEMAP, ctl->pid.virt);
> --
> 2.7.4
>
More information about the CRIU
mailing list