- 17 Oct, 2017 40 commits
-
-
Kirill Tkhai authored
This will be used in further to determine whether task's namespace allows to restore file_desc. Signed-off-by:
Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Kirill Tkhai authored
Keep int pid with short-len fields to avoid alignment gaps in structure. Signed-off-by:
Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Kirill Tkhai authored
The algorhythm of searching file master will be more complicated in next patches. So, move current functionality in separate func. Signed-off-by:
Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Kirill Tkhai authored
Signed-off-by:
Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Kirill Tkhai authored
The only user is fifo, but it uses collect_fd() to do read only actions (the only change is fifo_info::reg_d population, which may be easily moved to open_fifo_fd()). So, move the collect_special_file() functionality from collect_fifo_fd() to open_fifo_fd() and kill collect_fd method at all. Signed-off-by:
Kirill Tkhai <ktkhai@virtuozzo.com>
-
Kirill Tkhai authored
Add new argument to this function. Signed-off-by:
Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Kirill Tkhai authored
Declare it extern and allow to use outside files.c. Signed-off-by:
Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Kirill Tkhai authored
On 01.06.2017 14:34, Kirill Tkhai wrote: > Everything is prepared: the pair "type and id" is > uniqul, so find_file_desc() in collect_fd() will > work as expected and it will find the file_desc > we just added in autofs_create_pipe()->collect_one_pipe_ops(). > > So, the not-generic helper may be killed. > > Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com> Returned debug print: [PATCH 4/5 v2]files: Kill autofs_create_fle() and use generic helper Everything is prepared: the pair "type and id" is uniqul, so find_file_desc() in collect_fd() will work as expected and it will find the file_desc we just added in autofs_create_pipe()->collect_one_pipe_ops(). So, the not-generic helper may be killed. v2: Leave debug print on the place. Signed-off-by:
Kirill Tkhai <ktkhai@virtuozzo.com> Acked-by:
Stanislav Kinsburskiy <skinsbursky@virtuozzo.com> Acked-by:
Stanislav Kinsburskiy <skinsbursky@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Kirill Tkhai authored
shmalloc() already returns address with sizeof(unsigned long) alignment. So, the second alignment is useless. Signed-off-by:
Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Kirill Tkhai authored
Allow to mark some fles as "fake" and close them, when they are not needed. v2: Cache fake file in separate list, when they are restored, to do not iterate over files list again. Signed-off-by:
Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Kirill Tkhai authored
Signed-off-by:
Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Kirill Tkhai authored
It has only one user. Also, in next patches will be used pstree_item_by_virt() function, and I don't want to add "#include" to "files.h" for it, and to nest headers. Signed-off-by:
Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Kirill Tkhai authored
Fake masters are files, which are not owned by a process, that is able to open them. Signed-off-by:
Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Pavel Emelyanov authored
Due to a misprint in an if the 6rd info for sit device was restored when not present. https://github.com/xemul/criu/issues/366Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Pavel Emelyanov authored
Same here -- prepare the IFLA_INFO_DATA section using the date from SitEntry. Issue #11 Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Pavel Emelyanov authored
Nothing special here, just parse all known NLAs and keep them on the image. Issue #11 Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Andrei Vagin authored
This flag is reseted each time when uid-s, gid-s or capabilities are changed. ------------------------ grep Error ------------------------ (00.235109) 6: Opening 0x002ad2fb7a1000-0x002ad2fb7a2000 0000000000000000 (101) vma (00.235115) 6: Search for 0x002ad2fb7a1000 shmem 0x3ec72 0x2b9ac74058c0/5 (00.235119) 6: Waiting for the 3ec72 shmem to appear (00.235122) 6: Opening shmem [/proc/5/fd/6] (00.235153) 6: Error (criu/shmem.c:453): Can't open 5/fd/6 on procfs: Permission denied (00.235171) 6: Error (criu/mem.c:1200): `- Can't open vma (00.283466) uns: calling exit_usernsd (-1, 1) (00.283521) uns: daemon calls 0x47f6b0 (189, -1, 1) (00.283532) uns: `- daemon exits w/ 0 (00.289212) uns: daemon stopped (00.289232) Error (criu/cr-restore.c:2152): Restoring FAILED. ------------------------ ERROR OVER ------------------------ Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Andrei Vagin authored
page_ids is a global variable and it is used to dump shared memroy, process memory and ipc shared memory. The problem is that an IPC namespace is dumped in a child process, so page_ids isn't changed in a parent process. This patch is a quick workaround this issue. Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Andrei Vagin authored
Currently test_daemon() sends a signal to a parent process, when a test completed a prepartion stage. But it doesn't work, if a child changed uid and gid, because it doesn't have enough permissions in this case. This patch reworks a synchronization scheme to use a futex instead of sending signals. Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Cyrill Gorcunov authored
Wait for thread to finish its creation instead of calling sleep. Same time call for test_daemon only when we're ready. CC: Vitaly Ostrosablin <vostrosablin@virtuozzo.com> Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Cyrill Gorcunov authored
CC: Vitaly Ostrosablin <vostrosablin@virtuozzo.com> Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Andrei Vagin authored
It is known issue that a vsyscall vmas are not unmapped from x32 processes. Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Andrei Vagin authored
If a process calls BUG(), it genereates a core file and we get a false warning from abrtd. Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Andrei Vagin authored
For us it doesn't matter what names of users and groups are used, we want to be sure that we restore right uid-s and gid-s. If we use these functions, we can't run tests in namespaces and they use an external unix socket, what can be a problem too. sk unix: Runaway socket: ino 0x1df1ae4 peer_ino 0x1df1ae3 family 1 type 1 state 1 name /run/dbus/system_bus_socket Error (criu/sk-unix.c:712): sk unix: External socket is used. Consider using --ext-unix-sk option. Cc: Vitaly Ostrosablin <vostrosablin@virtuozzo.com> Cc: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com> Acked-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Andrei Vagin authored
so that .gcda (coverage data) files are created with read-write permissions for all, otherwise uns tests will not be able to modify these files and code coverage data will not be collected for them. Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Andrei Vagin authored
This test create a closed socket with a non-empty sent queue. Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Andrei Vagin authored
If a connection was reseted, it can have some data in a sent queue, a use can't read this data, so we can ignore them too. https://jira.sw.ru/browse/PSBM-67026Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Alice Frosi authored
- Add new test "s390x_runtime_instr" to check if the RI control block is correctly restored when the RI is active. - Add RI control block in test s390x_regs_check.c The original test case for RI has been provided by Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by:
Alice Frosi <alice@linux.vnet.ibm.com> Reviewed-by:
Michael Holzheu <holzheu@linux.vnet.ibm.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Alice Frosi authored
- Add new test "s390x_gs_threads" for GS with broadcast command for the s390_guarded_storage() system call. - Add GS control blocks in test s390x_regs_check.c The original test case for GS has been provided by Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by:
Alice Frosi <alice@linux.vnet.ibm.com> Reviewed-by:
Michael Holzheu <holzheu@linux.vnet.ibm.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Alice Frosi authored
Dump and restore process with RI control block. Runtime instrumentation allows to collect information about program execution as CPU data. The RI control block is dumped and restored for all threads. Ptrace kernel interface is provided by: c122bc239b13 ("s390/ptrace: add runtime instrumention register get/set") Signed-off-by:
Alice Frosi <alice@linux.vnet.ibm.com> Reviewed-by:
Michael Holzheu <holzheu@linux.vnet.ibm.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Alice Frosi authored
Dump and restore tasks with GS control blocks. Guarded-storage is a new s390 feature to improve garbage collecting languages like Java. There are two control blocks in the CPU: - GS control block - GS broadcast control block Both control blocks have to be dumped and restored for all threads. Signed-off-by:
Alice Frosi <alice@linux.vnet.ibm.com> Reviewed-by:
Michael Holzheu <holzheu@linux.vnet.ibm.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Alice Frosi authored
Add new function arch_set_task_regs_nosigrt(). It allows to restore architecture-specific registers not present in sigreturn signal frame. Each architecture can overwrite this function. The arch_set_task_regs_nosigrt function restores the registers between the final sigreturn and PTRACE_DETACH. We do this at this point because we are sure that all threads have already been created. Add arch_set_thread_regs in pre-dump because some registers may have been changed by the parasite infection and they are not present in sigreturn signal frame. Signed-off-by:
Alice Frosi <alice@linux.vnet.ibm.com> Reviewed-by:
Michael Holzheu <holzheu@linux.vnet.ibm.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Mike Rapoport authored
Running all the tests with --lazy-pages and --remote-lazy-pages takes too long. Let's run only several representing tests for those cases. Signed-off-by:
Mike Rapoport <rppt@linux.vnet.ibm.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Mike Rapoport authored
The UFFDIO_UNREGISTER returns ENOMEM only when it is unable to get mm_struct. We can assume in such case that the task is exited. Signed-off-by:
Mike Rapoport <rppt@linux.vnet.ibm.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Adrian Reber authored
On Fedora rawhide with kernel-headers-4.14.0-0.rc2.git0.1.fc28.x86_64 glibc-devel-2.26.90-15.fc28.x86_64 criu does not build any more: In file included from /usr/include/linux/aio_abi.h:31:0, from criu/cr-check.c:24: /usr/include/sys/mount.h:35:3: error: expected identifier before numeric constant MS_RDONLY = 1, /* Mount read-only. */ ^ make[2]: *** [/builddir/build/BUILD/criu-3.5/scripts/nmk/scripts/build.mk:111: criu/cr-check.o] Error 1 make[1]: *** [criu/Makefile:73: criu/built-in.o] Error 2 make: *** [Makefile:233: criu] Error 2 This simple re-ordering of includes fixes it for me. Signed-off-by:
Adrian Reber <areber@redhat.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Andrei Vagin authored
Otherwise we will see warnings like these ones: Warn (criu/kerndat.c:805): Can't load /run/criu.kdat Warn (criu/net.c:2726): Unable to get a socket network namespace Warn (criu/kerndat.c:844): Can't keep kdat cache on non-tempfs Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Andrei Vagin authored
test/zdtm.py:1535:30: E711 comparison to None should be 'if cond is not None:' test/zdtm.py:1538:31: E711 comparison to None should be 'if cond is not None:' test/zdtm.py:1601:31: E711 comparison to None should be 'if cond is not None:' Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Vitaly Ostrosablin authored
As requested, implement a test with two threads that have mismatching, non-root credentials, like Apache does. Signed-off-by:
Vitaly Ostrosablin <vostrosablin@virtuozzo.com> Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-
Cyrill Gorcunov authored
We are carrying uids/gids in per-thread way since v1.8, so no need to require them to match anymore. We still require seccomp to match though. Need to revisit, seems may relax this requirement as well. Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
-