Commit graph

49 commits

Author SHA1 Message Date
Andrei Vagin
3c7d4fa013 criu: Version 4.2 (CRIUTIBILITY)
Major changes:
* plugins/amdgpu: Implement parallel restore
* Handle processes with uprobes vma
* Fix: getsockopt usage for SO_PASSCRED/SO_PASSSEC on Linux 6.16
* Relax ELF magic check to support MIPS libraries
* pagemap: prevent integer overflow in pagemap_len

This release's name is a nod to the growing challenge we face in
maintaining compatibility across the rapidly evolving Linux kernel
ecosystem.

The full changelog can be found here: https://criu.org/Download/criu/4.2.

Signed-off-by: Andrei Vagin <avagin@gmail.com>
2025-11-13 08:40:46 -08:00
Andrei Vagin
a44aa6d985 criu: Version 4.1.1
This release of CRIU (4.1.1) addresses a critical compatibility issue
introduced in the Linux kernel and back-ported to all stable releases.

The kernel commit (12f147ddd6de "do_change_type(): refuse to operate on
unmounted/not ours mounts") addressed the security issue introduced
almost 20 years ago. Unfortunately, this change inadvertently broke the
restore functionality of mount namespaces within CRIU. Users attempting
to restore a container on updated kernels would encounter the error:
"mnt-v2: Failed to make mount 476 slave: Invalid argument."

This release contains the necessary adjustments to CRIU, allowing it to
work seamlessly with kernels incorporating this security change.

Signed-off-by: Andrei Vagin <avagin@gmail.com>
2025-07-29 09:10:08 -07:00
Andrei Vagin
b6059ff193 criu: Version 4.1 (CRISC-V)
Major changes:
* RISC-V Support
* PIDFD Support
* CUDA Enhancements
* Fixes here and there

The full changelog can be found here: https://criu.org/Download/criu/4.1.

Signed-off-by: Andrei Vagin <avagin@google.com>
2025-03-25 14:31:33 -07:00
Andrei Vagin
c2b48ff423 criu: Version 4.0 (CRIUDA)
Major changes:
* CUDA plugin to support checkpointing and restoring NVIDIA CUDA applications.
* Shadow stack support
* Pagemap cache: Added support for PAGEMAP_SCAN ioctl

The full changelog can be found here: https://criu.org/Download/criu/4.0.

Signed-off-by: Andrei Vagin <avagin@gmail.com>
2024-09-21 16:34:14 -07:00
Andrei Vagin
f8b14286b0 criu: Version 3.19 (Bronze Peacock)
Two major highlights of this release:
* LoongArch64 support
* A lot of fixes and improvments form the Google backlog.

The full changelog can be found here: https://criu.org/Download/criu/3.19.

This marks the final release of the 3.x series. The upcoming version
will be 4.0! Additionally, the naming pattern will be changed. Any ideas
are welcome.

Signed-off-by: Andrei Vagin <avagin@gmail.com>
2023-11-27 16:47:16 -08:00
Andrei Vagin
4c1a2ac41b criu: Version 3.18 (Silver Sandpiper)
The highlight feature of this release is the ability to use CRIU for
non-root users. Adrian Reber implemented the kernel part and created the
initial version of CRIU changes. Then Younes Manton joined the effort
and pushed it to the finish line.

The full change log is here: https://criu.org/Download/criu/3.18

Signed-off-by: Andrei Vagin <avagin@gmail.com>
2023-04-22 20:47:09 -07:00
Adrian Reber
d46f40f4ff criu: Version 3.17.1
* Fixes for pre-dump read mode
 * Fixes for mount-v2
 * amdgpu plugin build and installation fixes
 * Some minor CI related fixes

Signed-off-by: Adrian Reber <areber@redhat.com>
2022-06-23 14:53:25 -07:00
Adrian Reber
4f8f295e57 criu: Version 3.17
Amongst a huge number of fixes all over the place this release introduces:

* mount-v2 engine
* support for MAP_HUGETLB mappings
* support for Linux Restartable Sequences
* support for SOCK_SEQPACKET unix sockets
* CRIU AMD GPU plugin
* setsockopt(SO_BUF_LOCK) support for tcp sockets

Signed-off-by: Adrian Reber <areber@redhat.com>
2022-05-05 12:42:14 -07:00
Adrian Reber
4a1731891e criu: Version 3.16.1
* Switch criu-ns from unversioned 'python' to 'python3'
   for easier distribution packaging
 * Add '--join-ns' interface to libcriu to allow joining
   namespaces via libcriu like CLI and RPC already allow

Signed-off-by: Adrian Reber <areber@redhat.com>
2021-10-13 22:44:30 -07:00
Adrian Reber
000ea82669 criu: Version 3.16
Amongst a huge number of fixes all over the place and the move away from
Travis this release introduces:

* better support for restoring containers into existing pods
* pidfd based pid reuse detection for RPC clients
* allow restoring of precreated veth devices
* license change for all files in the images/ directory to MIT
* criu-ns helper script
* use clang-format for automatic code indentation
* support checkpoint/restore of stacked apparmor profiles
* [GSoC] Add nftables based network locking/unlocking (Zeyad Yasser)

Signed-off-by: Adrian Reber <areber@redhat.com>
2021-09-22 08:22:46 -07:00
Andrei Vagin
f68da4a86f criu: Version 3.15
This is yet another big release with many new features in it:

* Introduced criu-image-streamer
* Added MIPS support.
* Allow checkpointing out of existing PID namespace and
  restoring into existing PID namespace.
* Added additional file validation mechanisms
* Added support to checkpoint and restore BPF hash maps and array maps.
* Initial cgroup2 support

Signed-off-by: Andrei Vagin <avagin@gmail.com>
2020-11-03 08:31:28 -08:00
Pavel Emelyanov
95ead14874 criu: Version π
The long-tempting release with lots of new features on board.
We have finally the time namespace support, great improvment of
the pre-dump memory consumption, new clone3 support and many
more.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
2020-04-29 16:31:49 +03:00
Pavel Emelyanov
c703e3fd84 criu: Version 3.13
Here we have some bugfixes, huuuge *.py patch for coding style
and nice set of new features like 32bit for ARM, TLS for page
server and new mode for CGroups.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
2019-09-11 11:29:31 +03:00
Andrei Vagin
f4de24c38b criu: Version 3.12.1
Changelog:
* Restore SELinux socket labels

Signed-off-by: Andrei Vagin <avagin@gmail.com>
2019-05-16 09:39:30 -07:00
Pavel Emelyanov
437561d2bb criu: Version 3.12
Suddenly it's a feature-reach release. We have support for Android build
and several tempting C/R things -- raw sockets, selinux labels and ro
ghost files.

And a couple of fixes, of course.
2019-04-25 20:26:57 +03:00
Adrian Reber
69e3536285 Bump SONAME to 2
libcriu.so used to have the SONAME

$ readelf -d lib/c/libcriu.so   | grep SONAME
 0x000000000000000e (SONAME)             Library soname: [libcriu.so.1]

The recent changes to libcriu (removed and added functions, changes from
`char *`-args to `const char *`) are breaking ABI and API. This requires
a new SONAME of 2. This patch changes the SONAME to 2:

$ readelf -d lib/c/libcriu.so   | grep SONAME
 0x000000000000000e (SONAME)             Library soname: [libcriu.so.2]

Signed-off-by: Adrian Reber <areber@redhat.com>
2019-04-20 20:25:26 -07:00
Pavel Emelyanov
c74b83cd49 criu: Version 3.11 (for workgroups)
So here it is -- the release with lots of new stuff and bugfixes.
Mainly, the new code is for integration with Docker and to support
modern hardware.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2018-11-06 14:31:36 +03:00
Andrei Vagin
c49eab368a criu: Version 3.10
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2018-07-10 08:38:09 +03:00
Pavel Emelyanov
202b7745bd criu: Version 3.9
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2018-05-21 15:10:25 +03:00
Pavel Emelyanov
137ce1a5fa criu: Version 3.8.1
A bug sneaked into the --shell-job restore while doing 3.8 merge.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2018-03-29 21:58:56 +03:00
Pavel Emelyanov
c21e09cfe2 criu: Version 3.8
We've slowed down a little, but still new features and bugfixes appear.
This time we've improved lazy migration, completed SCM messages support,
added nesting netns support (now we have two of them -- net and mnt)
and did many small fixes here and there.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2018-03-13 15:42:34 +03:00
Pavel Emelyanov
5759076cea criu: Version 3.7
This time we shifted the update one month, due to the amount of
changes not being very big. And got pretty big update, including
a set of bugfixes and new functionality.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-12-19 21:08:35 +03:00
Pavel Emelyanov
086df7e570 criu: Version 3.6
As usually -- many bugfixes and several new features. The s390x stuff
goes well too. The most tempting new feature is the ability to dump
and restore files sent over unix sockets (SCM_RIGHTS).

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-10-23 14:23:02 +03:00
Pavel Emelyanov
91bc6e072a criu: Version 3.5
So, the long-running task with lazy restore is (almost) finished :) Some
issues are still to be resolved, but the heaviest lift has been done.

Another notable thing is VDSO C/R rework. It's now more robust and fast.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-09-27 15:30:40 +03:00
Pavel Emelyanov
a31c1854e1 criu: Version 3.4
The biggest new thing this time is s390x arch support!
Also we have several improvements and a set of bugfixes
as usual.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-08-21 16:27:57 +03:00
Pavel Emelyanov
b0b9a97086 criu: Version 3.3
Most of the changes this time are preparation for future
new features and optimizations, that hasn't yet been well
tested and polished.

However, we have several new features. The most important
one is the --tcp-close option to help migration of Docker
containers, that constantly change their IP address.

And, as usually, a set of bugfixes.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-07-18 21:55:27 +03:00
Pavel Emelyanov
f25fda8431 criu: Version 3.2.1
This is a hot-fix with a regression fix and an urgent
support for the latest-n-greatest kernel API change.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-06-28 08:49:36 +03:00
Pavel Emelyanov
2fe24bc451 criu: Version 3.2
This is the no-new-features release :) We have several bugfixes,
memory restore optimization and a little bit more.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-06-19 12:59:14 +03:00
Pavel Emelyanov
12e3adc68c criu: Version 3.1
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-05-22 11:40:37 +03:00
Pavel Emelyanov
fce878938e criu: Version 3.0
So, we've done a HUUGE rework in this release, that's why it's 3.0.
Two biggest changes are:

* Compel library -- the framwork for parasite code injection.
* 32bit x86 support. Note, that it's neither x32 support, not 32-bit
  criu. It's purely the ability to dump 32-bit tasks on 64-bit host.

With compel at hands the 'criu exec' is removed.

Main set of kudos go to Cyrill and Dima for this heavy lifting :)

Other things include shutdown-ed UDP sockets, bind-mounts to external
bind mounts, ASAN, extentions to RPC, rework of SysVIPC shmem dump
format and some bugfixes and beautifications in CRIT.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-04-24 11:46:26 +03:00
Cyrill Gorcunov
2acc20056b compel: build -- Add @sublevel
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2017-03-14 23:58:08 +03:00
Cyrill Gorcunov
acfa85ba5a compel: Initial commit for standalone tool
The compel component is a replacement for several aspects of CRIU
functionality: binary blobs generation for PIE parasite/restore code,
and a library for parasite code injection and execution (to be implemented).

In the commit we rather shuffle compel into own directory and
use it for

1) Fetching cflags when compiling PIE blobs
2) Use its "piegen" functionality to generate blobs themselves.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2017-03-14 21:03:20 +03:00
Pavel Emelyanov
40738f7b6a criu: Version 2.12
This is not a huge release. Some new stuff for Docker c/r
and several bugs fixed.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-03-08 21:45:51 +03:00
Pavel Emelyanov
e4f60eee8b criu: Version 2.11.1
In 2.11 we've had several got bronek:

- page-server start via RPC
- Fedora build
- ppc64le restorer switch

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-17 14:28:05 +03:00
Pavel Emelyanov
8719b7c99d criu: Version 2.11
This is a bugfix-mostly release. Interesting new features include
the huge rework of files restoring engine which fixed us bugs we
haven't seen in reality :) but have proven they exist. Als this
rework opens the way for scm-rigts c/r we need for nginx.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-13 11:23:08 +03:00
Pavel Emelyanov
e6156f31dd criu: Version 2.10
So, this time we had TCP transitional states support, but it was
in semi-finished libsoccr library :) And in order to have the TCP
C/R fixed we fixed the library and are now ready to release them
both.

Said that, two main features of the Waxwing release are

* libsoccr -- the library for TCP sockets C/R
* TCP transitional states C/R

Also we have a set of bugfixes, caught performance issue on Xen
and a little bit more.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-01-16 12:06:01 +03:00
Pavel Emelyanov
6d9e6d15bf soccr: Wire into builder
For now build the .a library not to produce criu wrappers.
Next version should include the .so library as well.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-01-16 11:03:41 +03:00
Pavel Emelyanov
553c6ff8d8 criu: Version 2.9
This is quite a tiny bigfix mostly release.

One interesting thing, though, is that CRIU can now be built with
clang on all the supported architectures :)

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-12-12 11:42:12 +03:00
Pavel Emelyanov
7251cb3aa9 criu: Version 2.8
So, this time we've mostly have a lot of code rework for
compel. A big portion of it is still in criu-dev, but
some has been merged into master.

Other than this and a bunch of bugfixes -- .config file,
support for Tun-Tap devices and deprecation of several
CLI and RPC options by the --external one.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-11-14 11:12:41 +03:00
Pavel Emelyanov
db07f442d6 criu: Version 2.7
Not a lot this time, just a bunch of bugfixes and improvements.
A lot has happened in -dev branch around compel, hopefully the
next release will have it.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-10-17 11:30:31 +03:00
Pavel Emelyanov
090bcd0103 criu: Version 2.6
So, this time we have quite a lot of new features for a monthly
release cadence, including --leave-stopped on restore, TMEM for
PPC and shmem changes tracking.

Also bugfixes, of course, and a little bit more deprecations.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-09-12 12:44:04 +03:00
Pavel Emelyanov
c031417255 criu: Version 2.5
Bug-fix mostly release.

We've also came very close in -dev branch to having x86 32bit
support, so hopefully we'll have it in 2.6/2.7. Lazy restore
now in test-able state, but still we want kernel patches to
leave maintainer's tree, so we still wait.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-08-15 15:40:05 +03:00
Pavel Emelyanov
9a97e0ca35 criu: Version 2.4
This time we have a bunch of new features, such as more
cgroup stuff, AutoFS, coredump out of images, etc.

Virtuozzo guys have released vz7-rtm, and fixed a lot
of bugs in criu while doing it :)

Plus some ancient stuff removed.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-07-11 13:43:45 +03:00
Pavel Emelyanov
1ba5a900db criu: Version 2.3
So, we have some nice new features, again aimed at better integration,
also have massive restorer blob preparation rework and several nasty
bugfixes in mounts code.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-06-14 11:41:17 +03:00
Cyrill Gorcunov
17ae160b33 build: Add export of sublevels and extra
We use in our PCS7 packaging and I think it's
suitable for everything else as well.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Reviewed-by: Dmitry Safonov <dsafonov@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-05-30 13:46:28 +03:00
Pavel Emelyanov
845b822cd4 criu: Version 2.2
This is bugfix mostly release again.

Also did some tunes for better integration with OpenVZ (action scripts),
updated to support newer kernels improvements and removed pagemap greedy
mode and --namespaces option.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-05-16 11:24:32 +03:00
Pavel Emelyanov
9f7f0e02a4 criu: Version 2.1
Here's the first once-a-month release with whatever is there in
the master branch. We have quite a few new features, but a lot of
bugifxes :)

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-04-11 11:19:43 +03:00
Pavel Emelyanov
7f1a4a160a criu: Version 2.0
So, here it is. We planned not only to re-shuffle the code, but
also to provide compel thing to people, but have only managed to
do the former. OK, the compel then would go in 2.1 :)

But, we also change the dev-n-release model, so from now on we
have 2 branches and release stable one every month to show new
stuff earlier.

Have fun!

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-03-07 20:56:59 +03:00
Cyrill Gorcunov
4854940d6f build: Move versions definitions on top level
- define all versions in Makefile.versions toplevel file
 - rename CRTOOLSVERSION to CRIU_VERSION (and add CRIU_ prefixes)
 - rename versions for C librabry

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-02-18 14:15:09 +03:00