Difference between revisions of "Download/criu/3.x"
Jump to navigation
Jump to search
(Add missing 3.x releases) |
|||
Line 5: | Line 5: | ||
<div class="noautonum">__TOC__</div> | <div class="noautonum">__TOC__</div> | ||
− | {{fe|Changelog|{{nln}}|3.1|3.0}} | + | * {{fe|Changelog|{{nln}}|3.19|3.18|3.17.1|3.17|3.16.1|3.16|3.15|3.14|3.13|3.12|3.11|3.10|3.9|3.8.1|3.8|3.7|3.6|3.5|3.4|3.3|3.2.1|3.2|3.1|3.0}} |
+ | |||
== See also == | == See also == |
Revision as of 23:06, 15 January 2025
This page lists older (3.x) CRIU releases. For latest release, see Download/criu.
With 3.x, we've finally split Compel from the rest of the CRIU and also added support for 32-bit tasks on x86-64 platform.
- == v. 3.19 ==
Tarball: | criu-3.19.tar.gz |
Version: | 3.19 "Bronze Peacock" |
Released: | 27 Nov 2023 |
GIT tag: | v3.19 |
New features
- LoongArch64 support
- C/R membarrier() registrations
- Restore THP_DISABLE prctl.
- prctl: Migrate prctl(NO_NEW_PRIVS) setting.
Bugfixes
- Many fixes and improvements from the Google team.
- Fix dumping hugetlb-based memfd on kernels < 4.16.
- Fixes here and there.
Improvements
- drop python 2 support
- support XSAVE on newer Intel CPUs
v. 3.18
Tarball: | criu-3.18.tar.gz |
Version: | 3.18 "Silver Sandpiper" |
Released: | 22 Apr 2023 |
GIT tag: | v3.18 |
New features
- Allow CRIU to be used as non-root
- Add SIGTSTP support
- Add opt to skip file r/w/x check on restore
Bugfixes
- Many fixes here and there
Improvements
- cgroup2: Dump cgroup controllers of every threads in a process
- save IP_FREEBIND option for SOCK_RAW sockets also
- support IP_PKTINFO and IPV6_RECVPKTINFO options
- Implement hw breakpoint for arm64 platform
- Set only used XFEATURE_* in xstate_bv
- Checkpoint and restore some global properties
- A checkpoint optimization for highly sparse ghost files (--ghost-fiemap)
v. 3.17.1
Tarball: | criu-3.17.1.tar.gz |
Version: | 3.17.1 "Radiant Redstart" |
Released: | 23 Jun 2022 |
GIT tag: | v3.17.1 |
Bugfixes
- Fixes for pre-dump read mode
- Fixes for mount-v2
- amdgpu plugin build and installation fixes
- Some minor CI related fixes
v. 3.17
Tarball: | criu-3.17.tar.gz |
Version: | 3.17 "Radiant Redstart" |
Released: | 5 May 2022 |
GIT tag: | v3.17 |
New features
- Introduced mount-v2 engine
- Added support for MAP_HUGETLB mappings
- Added support for Linux Restartable Sequences
- Added support for SOCK_SEQPACKET unix sockets
- CRIU AMD GPU plugin
Bugfixes
- GCC 12 compatibility fixes
- cgroup: fix --manage-cgroups=ignore
- several memory leaks fixed in net, files, mount, tun and config subsystems
Improvements
- bpf: switch from deprecated bpf_create_map_xattr to bpf_map_create
- bpfmap: handle map_extra field
- setsockopt(SO_BUF_LOCK) support for tcp sockets
v. 3.16.1
Tarball: | criu-3.16.1.tar.gz |
Version: | 3.16.1 "Petrified Puffin" |
Released: | 14 Oct 2021 |
GIT tag: | v3.16.1 |
Bugfixes
- Switch criu-ns helper script from unversioned 'python' to 'python3' for easier distribution packaging
Improvements
- Add '--join-ns' interface to libcriu to allow joining namespaces via libcriu like CLI and RPC already allow
v. 3.16
Tarball: | criu-3.16.tar.gz |
Version: | 3.16 "Petrified Puffin" |
Released: | 22 Sep 2021 |
GIT tag: | v3.16 |
New features
- criu-ns helper script
- support checkpoint/restore of stacked apparmor profiles
- [GSoC] Add nftables based network locking/unlocking (Zeyad Yasser)
- allow restoring of precreated veth devices
Bugfixes
- Many fixes here and there
Improvements
- better support for restoring containers into existing pods
- pidfd based pid reuse detection for RPC clients
- license change for all files in the images/ directory to MIT
- use clang-format for automatic code indentation
v. 3.15
Tarball: | criu-3.15.tar.gz |
Version: | 3.15 "Titanium Falcon" |
Released: | 03 Nov 2020 |
GIT tag: | v3.15 |
New features
- Introduced criu-image-streamer (also see https://github.com/checkpoint-restore/criu-image-streamer).
- Added MIPS support.
- Allow checkpointing out of existing PID namespace and restoring into existing PID namespace.
- Added additional file validation mechanisms (buildid in addition to filesize).
- Added support to checkpoint and restore BPF hash maps (BPF_MAP_TYPE_HASH) and array maps (BPF_MAP_TYPE_ARRAY).
- Initial cgroups v2 support
Bugfixes
- Many fixes here and there
Improvements
- Additional libcriu interfaces (orphan_pts_master, version, FD handling)
- Use the new mount API
v. 3.14
Tarball: | criu-3.14.tar.gz |
Version: | 3.14 "Platinum Peacock" |
Released: | 29 Apr 2020 |
GIT tag: | v3.14 |
New features
- C/R of memfd memory mappings and file descriptors.
- Add time namespace support.
- Add the read pre-dump mode which uses process_vm_readv.
- Add
--cgroup-yard
option - Add support of the cgroup v2 freezer.
- Add support of opened O_PATH fds.
Bugfixes
- Fix C/R ia32 processes on AMD #398
- Fix cross-compilation
- Many fixes here and there
Improvements
- Use clone3() with set_tid to restore processes
- Clean up compel headers.
- Use the new mount API
v. 3.13
Tarball: | criu-3.13.tar.gz |
Version: | 3.13 "Silicon Willet" |
Released: | 11 Sep 2019 |
GIT tag: | v3.13 |
New features
- VDSO: arm32 support
- Add TLS support for page server communications
- "Ignore" mode for
--manage-cgroups
- Restore SO_BROADCAST option for inet sockets
Bugfixes
- Auxiliary events were left in inotify queues
- Lazy-pages daemon didn't detect stack pages and surrounders properly and marked them as "lazy"
- Memory and resource leakage fixes detected by coverity, cppcheck and clang
Improvements
- Use gettimeofday() directly from vdso for restore timings
- Reformat all .py code into pep8 style
v. 3.12
Tarball: | criu-3.12.tar.gz |
Version: | 3.12 "Ice Penguin" |
Released: | 25 Apr 2019 |
GIT tag: | v3.12 |
New features
- build CRIU with Android NDK
- C/R of
- IP RAW sockets
- lsm: dump and restore any SELinux process label
- support restoring ghost files on readonly mounts
Bugfixes
- Do not lock network if running in the host network namespace
- Fix RPC configuration file handling
- util: don't leak file descriprots to third-party tools
- small fixes here and there
Improvements
- travis: switch to the Ubuntu Xenial
- travis-ci: Enable ia32 tests
- Many improvements and bug fixes in the libcriu
- Changes in the API and ABI (SONAME increased from 1 to 2)
v. 3.11
Tarball: | criu-3.11.tar.gz |
Version: | 3.11 "Glass Flamingo" |
Released: | 06 Nov 2018 |
GIT tag: | v3.11 |
New features
- cpuinfo: Detect compact frames and handle noxsaves
- Add support for configuration files
- Add support for external net namespaces
- Punch holes in input files when restoring anonymous non-shared memory (
--auto-dedup
)
- C/R of
Bugfixes
- mount: Better handling of mount points propagation
- nmk: Make collect-deps to be more precise about targets
- lazy-pages: Don't mark current stack page as lazy
- x86: CPU -- Rework feature testing
- files: Fix O(n^2) restore in terms of the number of fds
- fdstore: Unlimit fdstore queue on start
- mount: Fix regression where
open_mountpoint
failed on readonly fs - page server: Handle partial splicing
- ... lots of small fixes here and there
Improvements
- Remove all magic of service descriptors when it isn't required
v. 3.10
Tarball: | criu-3.10.tar.gz |
Version: | 3.10 "Granite Eagle" |
Released: | 10 Jul 2018 |
GIT tag: | v3.10 |
New features
- Support Python3 in ZDTM and CRIT
- Keep names for UNIX sockets, that are unlinked from the FS
- IPVv6 support for page server
- Set page server socket fd via CLI
- Large pages support for aarch64/ppc64
- C/R of
- Per-thread seccomp chains
Bugfixes
- Failed non-container restore could kill random task on the host
- Failure to dump namespaces was erroneously ignored
- CRIT didn't show cpuinfo image file
- Tasks that got PID-reuse couldn't be dumped iteratively because previous images were missing
v. 3.9
Tarball: | criu-3.9.tar.gz |
Version: | 3.9 "Sand Martin" |
Released: | 21 May 2018 |
GIT tag: | v3.9 |
New features
- C/R of
- Tun-Tap devices in sub-netns
- File descriptors which were opened with O_TMPFILE
Improvements
- Restore of inotify watchers
- Restore unix sockets in proper mount namespaces
- Add a test to check the --shell-job option
- Print CRIU and kernel version also in RPC mode
Bugfixes
- Random memory corruptions during lazy restore
- Workaround the iptables issue (#469)
- Don't use standard descriptors when tar is running to dump tmpfs mounts
- Fail dump if dump_one_file() fails
- Fill kerndat with zero-s before reading it from cache
- A lot of small fixes here and there
v. 3.8.1
Tarball: | criu-3.8.1.tar.gz |
Version: | 3.8.1 "Snow Bunting" |
Released: | 29 Mar 2018 |
GIT tag: | v3.8.1 |
Bugfixes
- FDstore was initialized twice (re-initialized) causing e.g.
--shell-job
restore to fail (#460)
v. 3.8
Tarball: | criu-3.8.tar.gz |
Version: | 3.8 "Snow Bunting" |
Released: | 13 Mar 2018 |
GIT tag: | v3.8 |
New features
- C/R of
- Multiple network namespaces
- Overmounted tmpfs mounts
- Unix sockets and epoll descriptors in SCM messages
Improvements
- Rework service descriptors not to cause fdtable enormous grows
- Start testing lazy migration in Jenkins/Travis
Bugfixes
- FP state wasn't reported on Skylake due to a kernel bug
- When compiled with gcc-8 a lot of warnings popped up
- Resource leaked on error paths
- Attributes of sit devices with value 0 were not saved into images (and were restored into default values)
- Tasks with pgid of a zombie hung the resture
- Ghost files on RO bind-mounts of an RW mount couldn't be restored
- Random memory corruptions during lazy restore
v. 3.7
Tarball: | criu-3.7.tar.gz |
Version: | 3.7 "Vinyl Magpie" |
Released: | 19 Dec 2017 |
GIT tag: | v3.7 |
New features
- Pipes usage statistics
- Run page server as non-daemon via RPC
- C/R of
- SO_REUSEPORT option
- IPv4-mapped inet sockets
- Net_prio CGroups
- Overmounted shared mountpoints
- Non-broken and breaking leases
Improvements
- Show criu and kernel versions in logs
- CRIT decodes socket families, protocols and types
- Much less pipes is needed for pre-dump, which is especially useful for big mem migration
Bugfixes
- Files in
/proc/pid/map_file
could be opened by non-exiting name (with 0x prefix) and it was fixed in kernel - CRIU log levels were used to configure logging for libsoccr thus breaking its logs
- Overflow in various IDs caused bad image names
- Compat (32bit) syscalls lost signedness in compel
- Corked sockets lost cork flag
- Preadv() syscall was declared with error which resulted in dump errors on 32-bit processors
- Musl compilation failed
- Ghost files in / dump failed
- Crash when releasing context for ghost files, due to free()-ing shmalloc()-ed area
- Lazy restore could receive partial page and crashed
- Erroneous closing of lazy pages connection caused restore to hang
- Lazy memory fetch restore could start before tasks are restored
v. 3.6
Tarball: | criu-3.6.tar.gz |
Version: | 3.6 "Alabaster Finch" |
Released: | 23 Oct 2017 |
GIT tag: | v3.6 |
New features
- C/R for
- Files (except for unix sockets, ttys and epolls) sent over unix sockets
- Threads with different creds
- Ipv6 over ipv4 tunnel (SIT device)
Improvements
- CI tests are now also run on Alpine and Fedora Rawhide
Bugfixes
- Some s390x registers were not restored by native sigrestore way
- Overflow when parsing autofs info from /proc file
- Dumps of anon shared memory with sysvipc one raced with each other clashing and corrupting image file names
- The "dumpable" flag was not restored on shmem regions
- Trash bits leaked into image when dumping fsnotify on some kernels
- Lock/unlock of iptables from different criu processes raced with each other
- Closed TCP connection with non-empty send queue blocked the dump
- When
--empty-ns
for netns was set on dump only, restore failed (when used from Docker, issue #393)
v. 3.5
Tarball: | criu-3.5.tar.gz |
Version: | 3.5 "Clay Jay" |
Released: | 27 Sep 2017 |
GIT tag: | v3.5 |
New features
- Lazy pages beta support (kernel still needs to be fixed)
Improvements
- More verbose libsoccr
- VDSO rework
- layout is saved in kerndat cache
- PFN detection is relaxed
- restore is faster if kernel provides necessary prctl
Bugfixes
- Task-size calculation could be wrong on s390
- CRIT explore was broken since images format tune-up
- VDSO page could be mis-detected
v. 3.4
Tarball: | criu-3.4.tar.gz |
Version: | 3.4 "Cobalt Swan" |
Released: | 21 Aug 2017 |
GIT tag: | v3.4 |
New features
- Support for s390x architecture
Improvements
- Unexpected death of restored tasks is reported with more details in logs
- Merged many images containing info about files into one big
files.img
- When helper utility fails (ip, iptables, tar) its name is printed in logs
Bugfixes
- Compilation failed on newer glibcs (ucontext_t)
- Dying helper task could deadlock the restore process
- Install-related makefile variables weren't configurable for distro build
- SIT (ipv6-to-v4 tunnel) presence on host blocked dump of any containers
- Potential NULL dereference when dumping net namespace
- Dump via page server might not work across different criu versions
- Failure to restore a subtask could be ignored by the restore command
- EOF on page-server socket wasn't handled
v. 3.3
Tarball: | criu-3.3.tar.gz |
Version: | 3.3 "Crystal Pelican" |
Released: | 18 Jul 2017 |
GIT tag: | v3.3 |
New features
- Added
--tcp-close
option to drop all established TCP connections - Sparse ghost files supported (fixes #230 as side effect)
- Option
-v
now has a long alias called--verbosity
- Criu build can now be reproducible
Bugfixes
- CRIU didn't compile with glibcs w/o the definition of SIGUNUSED
- Restoring files could race on 64bits
- Restoring a mount in user-namespace could result in broken flags
- C/R on nodes with unified cgroup hierarchy hanged (#252)
- Dumping a character device could crash (detected by ASAN)
- Dumping of tasks with shmem implemented as tmpfs file could fail if the shmem was huge (#230)
v. 3.2.1
Tarball: | criu-3.2.1.tar.gz |
Version: | 3.2.1 |
Released: | 28 Jun 2017 |
GIT tag: | v3.2.1 |
Bugfixes
- Restoring a stack fails on recent kernels due to kernel changes #322
- Restoring on a host with LSM profiles failed #323
v. 3.2
Tarball: | criu-3.2.tar.gz |
Version: | 3.2 "Tin Hoopoe" |
Released: | 19 Jun 2017 |
GIT tag: | v3.2 |
Optimizations/improvements
- Invisible files restore is de-serialized
- VMAs restore performance is improved significantly
- Mappings of the same file re-use the descriptor, not re-open it every time
- Not-COW-ed mappings are restored in-place and are not mremmap()ed
- Empty RO mappings are mmap()ed as such and thus not re-mprotect()ed at the end
- More verbosity in case TCP locking fails (#292)
- More verbosity in case VDSO magic mismatch
- Restore or legacy epoll target descriptors and fsnotify marks is unified with common case
Bugfixes
- Restoring fanotify marks from old images (<1.3) dropped the mark
- Binfmt_misc mount could be mounted into wrong place
- Compilation failed with gcc 6.3.0 (#315)
- Waiting helpers could race with sigchild handler and would result in restore failure
- Missing VVAR page in 32bit tasks wasn't skipped and resulted in restore failure
- After restore consumption of files is increased (was fixed as side effect of mmap optimization)
Deprecation/Removal
- Deprecated separate images for fsnotify marks
v. 3.1
Tarball: | criu-3.1.tar.gz |
Version: | 3.1 "Graphene Swift" |
Released: | 22 May 2017 |
GIT tag: | v3.1 |
New features
- Each boolean option now has the
--no-$option
pair - RSS explorer in CRIT
- Multiple plugins in compel
- Run-time check of 32-mmap BUG on x86
- C/R of
- 32-bit futex robust list on x86
Optimizations/improvements
- Start time is improved significantly with kerndat cache
- Sigaction image is merged into Core
- Unneeded stages are skipped during restore
- Restore w/o namespaces uses host /proc
- Restore w/o namespaces doesn't parse host mounts (not needed)
- Single-threaded tasks do not parse /proc/pid/task/ in vain
- BFD engine is used for more /proc files
- More verbosity in libsoccr
- Fsnotify dump w/o namespaces doesn't walk mounts tree
Bugfixes
- Python bindings left zombie in self-dump mode
- The
last_pid
sys-control was reset by restore - Threads caps were compared with mistake
make install
put crit/pycriu to wrong place if DESTDIR was not set (#309)- Fsnotifies C/R w/o namespaces restored with errors
- Inherited control terminal restore was failed (but dump succeeded)
v. 3.0
Tarball: | criu-3.0.tar.gz |
Version: | 3.0 "Basalt Wagtail" |
Released: | 24 Apr 2017 |
GIT tag: | v3.0 |
New features
- Compel library
- Support for x86 32-bit arch
- Version check via RPC
- ASAN support
- Force VDSO trampolines via fault injection
- C/R of
- Shutdown-ed UDP sockets
- Bind-mounts made from external mounts
Optimizations/improvements
- SysVIPC shmem segments are now dumped as any other shmem (taking holes into account and sitting in common memory dumps)
- CRIT show
- decodes socket's states and types and task's states into strings
- prints unix sockets names in more human-readable form
Bugfixes
- Unix sockets' names appeared in logs with mistakes
- Contents of SysVIPC shmem segments was dumped twice
- Dumping of any memory segment more than 4Gigs failed
- Migration of unaligned SysvSHM segment on Armv7 failed
Deprecation/removal
- Exec action is removed, use compel instead
See also
- Download/criu for the latest release and archives
- Download/criu/2.x for 2.x releases
- Download/criu/1.x for 1.x releases
- Download/criu/0.x for pre-1.x releases