criu/test
Valeriy Vdovin 691b4a4e7e zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions
Any filesystem syscall, that needs to navigate to inode by it's
absolute path performs successive lookup operations for each part of the
path. Lookup operation includes access rights check.
Usually but not always zdtm tests processes fall under 'other' access
category. Also, usually directories don't have 'x' bit set for other.
In case when bit 'x' is not set and user-ID and group-ID of a process
relate it to 'other', test's will not succeed in performing these
syscalls which are most of filesystem api, that has const char *path
as part of it arguments (open, openat, mkdir, bind, etc).
The observable behavior of that is that zdtm tests fail at file
creation ops on one system and pass on the other. The above is not
immediately clear to the developer by just looking at failed test's logs.
Investigation of that is also not quick for a developer due to the
complex structure of zdtm runtime where nested clones with
NAMESPACE flags take place alongside with bind-mounts.

As an additional note: 'get_current_dir_name' is documented as returning
EACCESS in case when some part of the path lacks read/list permissions.
But in fact it's not always so. Practice shows, that test processes can
get false success on this operation only to fail on later call to
something like mkdir/mknod/bind with a given path in arguments.

'get_cwd_check_perm' is a wrapper around 'get_current_dir_name'. It also
checks for permissions on the given filepath and logs the error. This
directs the developer towards the right investigation path or even
eliminates the need for investigation completely.

Signed-off-by: Valeriy Vdovin <valeriy.vdovin@virtuozzo.com>
2020-03-27 19:36:20 +03:00
..
compel compel: Provide piegen_opt_t in library 2019-04-20 20:25:26 -07:00
exhaustive py: Reformat everything into pep8 style 2019-09-07 15:59:56 +03:00
inhfd python: sort imports 2020-03-27 19:36:20 +03:00
javaTests Add Socket-based Java Functional Tests 2020-02-04 12:39:44 -08:00
jenkins test/jenkins: remove empty line at the end of file 2020-03-27 19:36:20 +03:00
others python: sort imports 2020-02-16 09:15:31 -08:00
pki zdtm: Add --tls option 2019-09-07 15:59:53 +03:00
zdtm zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions 2020-03-27 19:36:20 +03:00
.gitignore gitignores: ignore some more generated files 2017-03-15 00:05:55 +03:00
abrt.sh test/abrt: skip core dumps from the seccomp_filter test 2019-04-20 20:25:26 -07:00
check_actions.py test/other: Resolve Py3 compatibility issues 2019-09-07 15:59:56 +03:00
crit-recode.py crit-recode: skip (not try to parse) nftables raw image 2020-03-27 19:36:20 +03: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 Modify and add test for configuration file functionality 2018-10-30 19:27:52 +03:00
pycriu Adapt zdtm for python3 compatibility 2018-07-09 18:25:16 +03:00
show_action.sh test: Check action scripts to work as we expect 2016-05-06 14:39:25 +03: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/inhfd: force python to read new data from a file 2020-03-27 19:36:20 +03:00
zdtm_ct.c test: don't do MS_REC|MS_PRIVATE for host mounts 2016-09-06 19:31:20 +03:00
zdtm_mount_cgroups tests: prevent zdtm_mount_cgroups from failing w/ EBUSY 2016-02-03 16:25:28 +03:00
zdtm_umount_cgroups zdtm: cleanup zdtmtst and zdtmtst.defaultroot cgroups after finishing test 2018-10-30 19:27:58 +03:00