criu/test
Ahmed Elaidy a13ce915c2 zdtm: use private bind-mount as GCOV external mount target
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>
2026-03-11 15:10:23 -07:00
..
compel Run 'make indent' on header files 2021-09-03 10:31:00 -07:00
cuda-checkpoint test: add get-state to mocked cuda-checkpoint tool 2025-03-21 12:40:31 -07:00
exhaustive make: remove checks for python 2 binary 2023-10-22 13:29:25 -07:00
inhfd Remove travis-ci leftovers 2025-11-02 07:48:23 -08:00
javaTests test/javaTests: update org.testng:testng (Maven) 2023-04-15 21:17:21 -07:00
jenkins compel: remove hardware breakpoint usage 2026-03-08 23:01:54 -07:00
libfault zdtm: add support for LD_PRELOAD tests 2024-09-11 16:02:11 -07:00
others test: libcriu: use installed headers and library 2026-03-04 11:06:12 +00:00
pki test: create new tls certificates 2021-09-03 10:31:00 -07:00
plugins zdtm: add inventory test plugins 2025-03-21 12:40:31 -07:00
zdtm zdtm: use private bind-mount as GCOV external mount target 2026-03-11 15:10:23 -07:00
.gitignore zdtm: Add javaTests output to .gitignore 2021-09-03 10:31:00 -07:00
abrt.sh test/abrt: skip core dumps from the seccomp_filter test 2019-04-20 20:25:26 -07:00
crit-recode.py make: remove checks for python 2 binary 2023-10-22 13:29:25 -07:00
empty-netns-prep.sh test: don't use nsenter in tests 2017-05-19 09:17:20 +03:00
groups.desc zdtm.py: Generator of groups of tests 2015-12-08 14:54:41 +03:00
inhfd.desc zdtm.py: Add inhfd tests for --inherit-fd option 2015-10-19 12:42:01 +03:00
Makefile test/make: remove unused target 2024-09-11 16:02:11 -07:00
pycriu lib: use separate packages for pycriu and crit 2023-11-27 16:47:16 -08:00
umount2.c zdtm: add a program to umount a test root 2016-09-26 15:42:40 +03:00
zdtm.desc test: Get rid of live directory 2016-02-20 13:40:52 +03:00
zdtm.py zdtm: use private bind-mount as GCOV external mount target 2026-03-11 15:10:23 -07:00
zdtm_ct.c zdtm: Update netns purpose comment in zdtm_ct. 2023-10-22 13:29:25 -07:00
zdtm_mount_cgroups zdtm: use unique holder for cgroups 2022-04-28 17:53:52 -07:00
zdtm_umount_cgroups zdtm: use unique holder for cgroups 2022-04-28 17:53:52 -07:00