Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3.16.1 release #1624

Merged
merged 7 commits into from
Oct 12, 2021
Merged

Conversation

adrianreber
Copy link
Member

We (@rst0git and myself) would like to see a 3.16.1 release with the following two changes:

  • use a versioned python interpreter for criu-ns
  • support --join-ns via libcriu

The versioned python interpreter is a change which is necessary for our binary packages provided via OBS, COPR, Fedora and PPA. RPMs as well as DEBs are not happy with an unversioned python interpreter in criu-ns. We have workarounds but having the fix in 3.16.1 would be cleaner.

The main reason for this .1 release is, however, the --join-ns support in libcriu. To support checkpointing container out of pods and restoring into different pods we need to be able to join existing namespaces. This option is exported via CLI and RPC but not via libcriu. To add pod support to crun this release is needed as crun uses libcriu as an interface. It is easier for upstream crun to depend on a released version instead of the latest built from the criu-dev branch. As there are usually 8 to 10 months between CRIU releases we would like to see the --join-ns via libcriu released as soon as possible to be able to use crun.

CC: @checkpoint-restore/maintainers

We can also pull additional patches from criu-dev if it would be useful in a 3.16.1 release.

PEP 394 recommends changing python shebangs to python3 when Python 3.x
is supported. This is similar to `crit-python3`.

https://www.python.org/dev/peps/pep-0394/

Signed-off-by: Radostin Stoyanov <[email protected]>
Python 2 has been deprecated since January 1, 2020 and linux distributions
already support Python 3. Thus, to simplify maintenance and packaging
we could support criu-ns as Python 3 only.

v2: Add a message for criu-ns installation

Signed-off-by: Radostin Stoyanov <[email protected]>
In runc we use the join-ns RPC API to enable checkpoint/restore of
containers with shared namespaces. Shared namespaces are often used
when containers run inside Kubernetes Pod.

In crun we use libcriu to interface with CRIU, however it currently
doesn't provide an API for join-ns. This patch adds the necessary
libcriu API to enable checkpoint/restore of containers with shared
namespaces with crun.

Signed-off-by: Radostin Stoyanov <[email protected]>
Replace magic numbers used to set log level in libcriu
with constants.

Signed-off-by: Radostin Stoyanov <[email protected]>
This test case aims to verify that CRIU correctly
restores a process in IPC, UTS and Time namespaces
with criu_join_ns_add() libcriu API.

Signed-off-by: Radostin Stoyanov <[email protected]>
run_test was trying to read criu logs on build failure
instead of runtime error.

This patch also removes the unnecessary subfolder with name "i"
and resolves some of issues reported by shellcheck.

Signed-off-by: Radostin Stoyanov <[email protected]>
@rst0git
Copy link
Member

rst0git commented Oct 6, 2021

The main reason for this .1 release is, however, the --join-ns support in libcriu

Just for reference, in crun we check the version of criu to find out if libcriu.so.2 supports criu_join_ns_add().
containers/crun#743

@avagin avagin requested review from avagin and xemul October 6, 2021 15:47
@avagin avagin requested review from 0x7f454c46 and rppt October 6, 2021 15:48
@adrianreber
Copy link
Member Author

@xemul @rppt any comments from you side regarding a 3.16.1 release?

Copy link
Member

@rppt rppt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@xemul
Copy link
Member

xemul commented Oct 12, 2021

LGTM

@avagin avagin merged commit 62b3779 into checkpoint-restore:master Oct 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants