[CRIU] [PATCH] [v2] criu: check that ghost files are cleaned up in error cases
Pavel Emelyanov
xemul at virtuozzo.com
Thu Jun 16 04:25:34 PDT 2016
On 06/15/2016 08:59 PM, Andrey Vagin wrote:
> From: Andrew Vagin <avagin at virtuozzo.com>
>
> v2: reuse FI_RESTORE_ROOT_ONLY
> Signed-off-by: Andrew Vagin <avagin at virtuozzo.com>
> ---
> criu/cr-restore.c | 6 ++++++
> criu/include/fault-injection.h | 5 +++++
> test/jenkins/criu-fault.sh | 3 ++-
> 3 files changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/criu/cr-restore.c b/criu/cr-restore.c
> index ec6e459..984dbfe 100644
> --- a/criu/cr-restore.c
> +++ b/criu/cr-restore.c
> @@ -1732,6 +1732,12 @@ static int restore_root_task(struct pstree_item *init)
> if (ret < 0)
> goto out_kill;
>
> + if (fault_injected(FI_CLEAN_REMAPS_WITH_MNTNS)) {
No, the fault injection point should state "we fail at a point when ...",
not "we fail to check how ...".
So this particular finj should be named smth like FI_RESTORE_MNTNS.
> + pr_info("fault: check cleaning remaps\n");
> + ret = -1;
> + goto out_kill;
> + }
> +
> timing_stop(TIME_FORK);
>
> ret = restore_switch_stage(CR_STATE_RESTORE);
> diff --git a/criu/include/fault-injection.h b/criu/include/fault-injection.h
> index f1e5c72..3b5a2cd 100644
> --- a/criu/include/fault-injection.h
> +++ b/criu/include/fault-injection.h
> @@ -5,8 +5,13 @@
> enum faults {
> FI_NONE = 0,
> FI_DUMP_EARLY,
> + /*
> + * FI_RESTORE_ROOT_ONLY can be used to check cleaning ghost
> + * files before populating mount namespaces
> + */
> FI_RESTORE_ROOT_ONLY,
> FI_DUMP_PAGES,
> + FI_CLEAN_REMAPS_WITH_MNTNS, /* after creating mount namespaces */
> /* not fatal */
> FI_CHECK_OPEN_HANDLE = 128,
> FI_NO_MEMFD = 129,
> diff --git a/test/jenkins/criu-fault.sh b/test/jenkins/criu-fault.sh
> index 113d47d..1e645e5 100755
> --- a/test/jenkins/criu-fault.sh
> +++ b/test/jenkins/criu-fault.sh
> @@ -4,8 +4,9 @@ set -e
> source `dirname $0`/criu-lib.sh
> prep
> ./test/zdtm.py run -t zdtm/static/env00 --fault 1 --keep-going --report report -f h || fail
> -./test/zdtm.py run -t zdtm/static/unlink_fstat00 --fault 2 --keep-going --report report -f h || fail
> ./test/zdtm.py run -t zdtm/static/maps00 --fault 3 --keep-going --report report -f h || fail
> ./test/zdtm.py run -t zdtm/static/inotify_irmap --fault 128 --keep-going --pre 2 -f uns || fail
> ./test/zdtm.py run -t zdtm/static/env00 --fault 129 -f uns || fail
> ./test/zdtm.py run -t zdtm/transition/fork --fault 130 -f h || fail
> +./test/zdtm.py run -t zdtm/static/mntns_ghost --fault 2 || fail
> +./test/zdtm.py run -t zdtm/static/mntns_ghost --fault 4 || fail
>
More information about the CRIU
mailing list