Deprecation
This page collects stuff that is considered to be deprecated (and is about to be removed) and how to use older CRIU versions
Problem[edit]
Sometimes we reconsider the way CRIU works and rewrite some functionality. In order not to break backward compatibility at once, the old code is kept in CRIU for a while, but is declared as deprecated. After some time the old code is just removed and only the newer version of it stays.
So, for a deprecated functionality there are two versions of CRIU -- D and R -- that work differently with it. Before version D the old functionality exists. Between D and R both -- old and new ways of doing things work, after R only new code works, old behavior is not longer supported.
When old functionality is deprecated (and eventually removed) we try to encourage people to upgrade CRIU-s and the way they use. So, if one starts CRIU of version between D and R and the deprecated functionality is requested, the message
Deprecated functionality (...) rejected. Use the --deprecated option or set CRIU_DEPRECATED environment. For details visit https://criu.org/Deprecation.
appears in logs and criu exits. To continue working "the old way" w/o upgrading CRIU one may use the --deprecated option in CLI or set the CRIU_DEPRECATED environment variable.
But (!) it's important to upgrade anyway, since after some time the old functionality will still be removed and even the --deprecated/CRIU_DEPRECATED won't help.
Below is the list of stuff we deprecate with explanations.
Deprecated stuff[edit]
- Per-pid rlimits, itimers and posix_timers image file
- Deprecated in 2.6. Now all this stuff sit in the core entry (all since 1.3)
- Separate image file for epoll tfds
- Deprecated in 2.6. It's now merged into epoll image since 1.4
- No-file records for ttys
- Deprecated in 2.7. See TTYs and
collect_one_tty()
routine in sources. Older versions of criu (before 1.4 commit caa64d97) didn't have reg_file_entry for ttys.
- Dedicated options for external resources
- Deprecated in 2.8.
--external
is to be used instead of--ext-unix-sk
,--veth-pair
,--ext-mount-map
and some more.
- Separate image file for fsnotify marks
- Deprecated in 3.2.
Removed stuff[edit]
- No ids.img files
- Removed in 2.1. We've been writing these files since at least v0.4, no deprecation period.
- The
--namespaces
option - Removed in 2.2. It was used when we didn't have /proc/pid/ns stuff, now it's useless, no deprecation period.
- Per-pid fdinfo.img file
- Removed in 2.4. The new layout (marked with respective bit in inventory) is per-fdtable-id, no deprecation period.
- Per-pid file locks
- Removed in 2.4. Now all locks sit in the file-locks.img file, no deprecation period.
- Old page-read
- Removed in 2.4. Used at ancient times when no pagemaps existed, no deprecation period.
Plans[edit]
The criu exec
action[edit]
Should be deprecated with Compel
Per-PID logs[edit]
See logging. Not sure whether anybody is using it.