mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-07-22 17:49:13 +00:00
With GCOV=1, zdtm.py passes the CRIU workspace parent as an external bind-mount into the test namespace (ZDTM_CRIU). On restore in the uns flavor CRIU calls open_tree(OPEN_TREE_CLONE) on that path. Because the workspace is a parent of the user namespace mount tree, its mounts are MNT_LOCKED, and open_tree returns EINVAL. Fix by creating a private bind-mount of the workspace parent at '../criu.tree' before each test run, then using that path as the source of the bind-mount inside the ZDTM namespace (ns.c). On restore, point the external mapping at 'criu.tree' instead of the raw workspace path. Because criu.tree is MS_PRIVATE and is created before any CRIU run, cgroupfs submounts that CRIU later creates inside the workspace (cg_yard via mkdtemp) do not propagate into it. open_tree(OPEN_TREE_CLONE, criu.tree) therefore sees no locked submounts and succeeds. This replaces the earlier --work-dir workaround, which was correct in principle but broke the RPC test path where criu_rpc.__set_opts has no handler for --work-dir. Fixes: #2911 Signed-off-by: Ahmed Elaidy <elaidya225@gmail.com> |
||
|---|---|---|
| .. | ||
| arch | ||
| bpfmap_zdtm.c | ||
| bpfmap_zdtm.h | ||
| cpuid.h | ||
| datagen.c | ||
| file.c | ||
| fs.c | ||
| fs.h | ||
| groups.c | ||
| groups.desc | ||
| list.h | ||
| lock.c | ||
| lock.h | ||
| Makefile | ||
| mem.c | ||
| mountinfo.c | ||
| mountinfo.h | ||
| msg.c | ||
| ns.c | ||
| ns.h | ||
| parseargs.c | ||
| parseargs.sh | ||
| stop_and_chk.sh | ||
| streamutil.c | ||
| sysctl.c | ||
| sysctl.h | ||
| tcp.c | ||
| test.c | ||
| unix.c | ||
| xmalloc.h | ||
| zdtmtst.h | ||