Difference between revisions of "Download/criu/3.x"

From CRIU
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 ==
3.19.jpg
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

3.18.jpg
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

3.17.jpg
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

3.17.jpg
Tarball: criu-3.17.tar.gz
Version: 3.17 "Radiant Redstart"
Released: 5 May 2022
GIT tag: v3.17

New features

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

3.16.jpg
Tarball: criu-3.16.1.tar.gz
Version: 3.16.1 "Petrified Puffin"
Released: 14 Oct 2021
GIT tag: v3.16.1

Bugfixes

Improvements

  • Add '--join-ns' interface to libcriu to allow joining namespaces via libcriu like CLI and RPC already allow


v. 3.16

3.16.jpg
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

3.15.jpg
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

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

Willet.png
Willet texas april2003 1 1280.png
Tarball: criu-3.13.tar.gz
Version: 3.13 "Silicon Willet"
Released: 11 Sep 2019
GIT tag: v3.13

New features

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

Ice penguin.jpg
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

Criu311.png
Tarball: criu-3.11.tar.gz
Version: 3.11 "Glass Flamingo"
Released: 06 Nov 2018
GIT tag: v3.11

New features

  • C/R of
    • epoll: Add support for duped targets
    • tun: Add support for multiple net ns
    • x86: Support extendable fpu frames

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


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
    • with Python2 ZDTM and CRIT now require python2-ipaddress to be installed (used to be python2-ipaddr)
  • 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

Improvements

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

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

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

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

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



See also