- 21 Apr, 2019 40 commits
-
-
Radostin Stoyanov authored
Use realloc() to change the size of the memory block pointed to by info->source instead of allocating new memory area and releasing the old one. If info->source is NULL then the call is equivalent to malloc(size). Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com>
-
Radostin Stoyanov authored
The `show` and `exec` commands have been deprecated for some time, and it is unlikely to be called by users. It would be better to move them the end of the sequence of if-statements. Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com>
-
Radostin Stoyanov authored
The function parse_options() should return an integer 0, 1 or 2, where: 0 := Success 1 := Failure 2 := CRIU should display help text The current behaviour always creates a warning message which shows the return value of that function. However, when the return value is different than 0 (Success) CRIU will fail. Since the logging is not initialised when this message is created, it will be lost, and therefore it can be removed completely. Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com>
-
Radostin Stoyanov authored
The value stored in 'ret' is never used. Instead, output an error message. Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com>
-
Radostin Stoyanov authored
Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com>
-
Mike Rapoport authored
Although non-cooperative userfaultfd events have been merged into the Linux kernel since 4.11 they were racy until 4.18. Exclude "dangerous" tests for older kernels. Signed-off-by:
Mike Rapoport <rppt@linux.ibm.com>
-
Mike Rapoport authored
Somehow in travis tests the mmap of 8K gets "rounded" down and the actual VMA starts 4K below the returned address. This causes /proc/pid/smaps parsing to fail. Increasing the allocation size to 2M seems to resolve the problem and until the root cause is identified it looks like a viable workaround. Signed-off-by:
Mike Rapoport <rppt@linux.ibm.com>
-
Martin Wührer authored
The functions criu_(local_)set_service_address and criu_(local_)set_service_binary are the only functions that do not create a copy of the given string arguments. This may lead to problems, if the original string gets freed but criu relies on them. Additionally, the function criu_local_init_opts() assigns the default service_binary now to opt->service_binary instead of opt->service_address which is in my opinion the preferred way since both are types of an anonymous union. Signed-off-by:
Martin Wührer <martin.wuehrer@artech.at>
-
Mike Rapoport authored
Verify that enabling / disabling THP with prctl(PR_SET_THP_DISABLE) does not change VMA flags Signed-off-by:
Mike Rapoport <rppt@linux.ibm.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Takashi Iwai authored
Since asciidoc is based on Phyton 2, we want to move to alternative, and a promising one is asciidoctor. This patch allows to use asciidoctor for formatting man pages instead of asiidoc, by passing a make option, USE_ASCIIDOCTOR=yes. Although asciidoctor is almost compatible with asciidoc, it can produce a man page directly from a text file without XML, which is more efficiently. So in asciidoctor mode, we don't require xmlto. Signed-off-by:
Takashi Iwai <tiwai@suse.de> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Takashi Iwai authored
a2x is never used although its presence is checked mandatorily. Let's remove this superfluous check and the unused entry. Signed-off-by:
Takashi Iwai <tiwai@suse.de> Reviewed-by:
Dmitry Safonov <0x7f454c46@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Radostin Stoyanov authored
Split the function parse_config() into smaller parts by introducing the parse_statement(), and add more descriptive comments to improve readability. In addition, make sure that the last element of the array of strings 'configuration' is initialised to NULL, which is necessary to properly count the number of elements after parsing. Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Martin Wührer authored
As most of the `criu_(local_)*` functions already call `strdup()`, it is possible, to change the function signature to `const char *`. As the struct `criu_opts` already contains a `const char * service_binary`, also the member `service_address` is changed to `const char`. Additonally, also the function `criu_local_set_freeze_cgroup()` now calls `strdup()`. Signed-off-by:
Martin Wührer <martin.wuehrer@artech.at> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Martin Wührer authored
According to https://criu.org/API_compliance, the C-library doesn't support the pageserver option. This patch contains the functions `criu_(local_)set_page_server_address_port()` that allow to specify on which ip and tcp-port the pageserver is listening. This patch affects only the c-lib, as criu-rpc already supports the pageserver settings. Signed-off-by:
Martin Wührer <martin.wuehrer@artech.at> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Kir Kolyshkin authored
Add run as a phony target. Move .PHONY declarations next to their targets. Reviewed-by:
Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by:
Kir Kolyshkin <kolyshkin@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Kir Kolyshkin authored
Here $(Q) is substituted with either @ or nothing, depending on whether V is set, to either have verbose output or not. So, it does not make sense to add another @. Reviewed-by:
Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by:
Kir Kolyshkin <kolyshkin@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Kir Kolyshkin authored
Since this part is inside "define" statement, double $ should be used to refer to internal functions, to call the patsubst when a define is called (rather than defined). This should fix dependency generation for images/ Reviewed-by:
Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by:
Kir Kolyshkin <kolyshkin@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Martin Wührer authored
If `criu_local_init_opts()` is applied on the same opts-object several times, not all of the allocated memory gets freed. Therefore, the functions `criu_(local_)free_opts()` were introduced. These functions ensure, that opts get freed accordingly. Furthermore, `criu_(local_)free_opts()` gets part of the c-api, and can therefore be called by external projects too. Additionally, with this commit `criu_local_init_opts()` now uses `criu_local_free_opts()`, to free the opts-parameter if it was already initalized before. This commit also contains a fix in `send_req_and_recv_resp_sk()` which lead to a memory leak, if criu-notifications were received. Signed-off-by:
Martin Wührer <martin.wuehrer@artech.at> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Radostin Stoyanov authored
The purpose of this helper function is to perform actions common to different interfaces, after all CRIU options have been parsed. This can be used, for instance, to verify that a specific option was passed to CRIU via CLI, RPC or config file. Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Acked-by:
Adrian Reber <areber@redhat.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Radostin Stoyanov authored
Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Radostin Stoyanov authored
Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Radostin Stoyanov authored
Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Acked-by:
Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Radostin Stoyanov authored
Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Acked-by:
Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Radostin Stoyanov authored
Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Radostin Stoyanov authored
The header "lsm.h" was added in crtools.c with commit 6af96c84 and it became unused after commit 09c131c8. Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Radostin Stoyanov authored
The option --lsm-profile was added with commit: 6af96c84 lsm: add a --lsm-profile flag In LXD, we use the container name in the LSM profile. If the container name is changed on migrate (on the host side), we want to use a different LSM profile name (a. la. --cgroup-root). This flag adds that support. A usage example is available in https://github.com/lxc/lxc/commit/13389b2963692a51162c703d8a64a79542b18949Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Radostin Stoyanov authored
The --tcp-close option was introduced with commit 2c370428 tcp: Add tcp-close option to restore connected TCP sockets in closed state This options is applicable only for restore. Therefore, move the documentation from 'dump' to 'restore'. Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Radostin Stoyanov authored
The --log-pid option was introduced with commit fc7bedc5 crtools: make to be able to split messages by pid This option is applicable only for restore. Therefore, move the documentation from "Common options" to "restore". Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Radostin Stoyanov authored
Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Radostin Stoyanov authored
The current behaviour of CRIU is to inherit the group leader of the parent process when migrating a session leader (with --shell-job). However, it is possible for a process to be group leader without being a session leader (e.g. a shell process). In this case CRIU should restore the original group ID of the process and inherit only the session ID. Closes #593 Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Reviewed-by:
Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Radostin Stoyanov authored
getsid(0) and getpgid(0) will return session ID and PGID of the calling process. Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Jeff Law authored
I received this patch from Jeff Law as a fix for build failures with the upcoming GCC 9. The following is Jeff Law's description of the patch: Attached you'll find the fix for criu. You'll see it's just a matter of dropping the sp/esp clobber from the relevant asm statements. THe details: criu has a macro which defines an asm which appears to want to set a new stack pointer, then directly issue a sigreturn call to the kernel. Some variants clobber sp (aarch64, arm, x86), others do not (ppc, s390) While the asm does indeed set a new stack pointer, we never return from a sigreturn syscall -- at least not in the normal way. We actually return back to the point where the process was interrupted by the signal. So describing the affect of the asm on the stack pointer is pedantically correct, it actually has no real effect and can just be dropped to avoid the hard error from gcc-9. Suggested-by:
Jeff Law <law@redhat.com> Reviewed-by:
Dmitry Safonov <0x7f454c46@gmail.com> Signed-off-by:
Adrian Reber <areber@redhat.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Radostin Stoyanov authored
In commit c1404f66 mount: restore cwd after creating a roots yard (v2) were introduced changes to the function cleanup_mnt_ns() that handle the case when opts.root is set. However, after commit 2e8970be mount: create a mount point for the root mount namespace in the roots yard the cleanup_mnt_ns() function always results in error: mnt: Can't remove the directory ...: No such file or directory when restore fails and opts.root has been set. Resolves #467 Signed-off-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Andrei Vagin authored
The test library has functions to create tcp sockets. Cc: Radostin Stoyanov <rstoyanov1@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com> Reviewed-by:
Radostin Stoyanov <rstoyanov1@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Adrian Reber authored
Up until now any pr_* logging command (except pr_msg) was lost if logging has not been set up (log_init()). To make sure not logging messages are lost, vprint_on_level() now writes all messages (except LOG_MSG) to a temporary buffer which is written to the logging FD once that is set up. Improved-by:
Andrei Vagin <avagin@gmail.com> Signed-off-by:
Adrian Reber <areber@redhat.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Pavel Tikhomirov authored
Error messages in linkat_hard and open_path about link errors contradict each other, fix the wrong one. Signed-off-by:
Pavel Tikhomirov <ptikhomirov@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Cyrill Gorcunov authored
In regular checkpoint (not "check" action) current architecture implies that basic diag modules such as tcp/udp and etc will be loaded. In turn raw diag in most case is either unloaded or even not compiled in the system. Thus for them just zap an error (but print this information inside log). If an application does use raw sockets in real we will fail later when being checkpointing the sockets itselves. Signed-off-by:
Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Cyrill Gorcunov authored
So we would always know what is happening even if module is nor compiled or supported. Signed-off-by:
Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Cyrill Gorcunov authored
Lets just use regular pr_perror helper prefix without additional 'ERROR' keyword which may confuse external tools. Signed-off-by:
Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-
Cyrill Gorcunov authored
For example if diag module is not built then we should not spam with error message but we will print an error if only a particular socket is really used. v2: - continue passing @ns into error handler because it should be balanced with receieve handler by number of arguments; while we don't use it yet in our handlers better to reserve it immediately for future use; - strictly speaking probing raw diag module has not much sense by now -- the kernel doesn't support its autoloading in some versions; still for code consistency we should do the same things for all modules. Signed-off-by:
Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
-