Conversation
Codecov Report
@@ Coverage Diff @@
## master #38378 +/- ##
==========================================
+ Coverage 36.54% 36.55% +0.01%
==========================================
Files 608 608
Lines 45036 45036
==========================================
+ Hits 16460 16465 +5
+ Misses 26295 26292 -3
+ Partials 2281 2279 -2 |
There was a problem hiding this comment.
Are the protobuf things needed for all off runc, criu and docker ?
(Also, are they needed at runtime or only ad build-time)?
There was a problem hiding this comment.
Thanks for the feedback, not all of those packages are needed at runtime.
Actually, criu is linked only with librt, libprotobuf-c, libdl, libnl-3 and libnet.
Without these installed at runtime it fails, for example, with:
$ criu --version
criu: error while loading shared libraries: libprotobuf-c.so.1: cannot open shared object file: No such file or directory
I will update the commit to install only the necessary packages.
There was a problem hiding this comment.
Actually, instead of installing these packages at runtime, it would be better to only copy the required files (i.e. libnet.so.1, libnl-3.so.200, libprotobuf-c.so.1). I will update the commit accordingly.
There was a problem hiding this comment.
it would be better to only copy the required files
@rst0git it might seem like a good idea now, but some time later than libnl-3.so.200 will become libnl-3.so.201 and everything will break, we are going to regret it (to say at least).
One other thing, if you're using a package manager you're sure dependencies are satisfied (say if libprotobuf will suddely require libxyz, package manager will take care of it), and if you're doing it manually, it's a time bomb.
So, please revert to installing needed deps during runtime.
There was a problem hiding this comment.
Curious, IIUC, this will limit the number of jobs at once (as the default is "infinite"), correct?
-j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.
There was a problem hiding this comment.
Yes, the default value, "infinite", can quickly take over all available memory on a large build. Although criu is not very large, -j $(nproc) works well, and it is the approach that is used in the Dockerfile template for travis-ci.
1385ac7 to
34a6d91
Compare
|
ping @kolyshkin this looks like a PR in your area 👍 🤗 |
Docker is using CRIU for checkpoint and restore. For CRIU to work within the dev environment it requires the dynamically linked dependency libraries libnet-dev, libnl-3-dev, libprotobuf-c0-dev to be installed. Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
|
Closing in favour of cde23b2 |
- What I did
-jargument tomakewhen building CRIU- How to verify it
Inside the container:
In a different terminal:
Where
<container-id>the can be obtained fromdocker ps. Then inside the container:- Description for the changelog
The changes in this PR make it easier to test docker's checkpoint/restore functionality with the latest version of CRIU.