Skip to content

v2.0.1

Compare
Choose a tag to compare
@drakenclimber drakenclimber released this 10 Mar 18:40
· 1034 commits to main since this release
v2.0.1

This release is no longer supported upsteam, please use a more recent release

Github Releases (by Release)

ChangeLog

  • Version 2.0.1 - March 10, 2022
    • Allow reading/writing from cgroup.* files in cgroup v2
    • Add support for cgroup v2's cgroup.threads file
    • Fix issue where libcgroup/pam wasn't working properly when
      cgrulesengd is disabled
    • Fix a bug where the cgroup version wasn't initialized in a
      named cgroup v1 hierarchy
    • Various automake bug fixes
    • Build PAM module as unversioned DSO
    • Fix build issues with musl libc
    • Fix potential TOCTOU race in cgroup_get_procs()

Checksum

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

2dd9c566a90a053e7a5f47607e225648ba7aa9bb7763514dd4778e2ed530fe90  libcgroup-2.0.1.tar.gz
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEER6aPzjfH1wJP1l4RNWzmLCtSQJkFAmIqPvUACgkQNWzmLCtS
QJmaZQ/+MejsFT6mCLbXtS3T2eF+dyqhlp1sYof1UgAK0yGzTx1CGEyjG1ahgQ66
R29HGbgkyUSQsVKsG9OT0XpRObl6SmID641oODQD6KQl5Glif3UD4IUJ8nXV9xZd
SGGqzlyEJ26kvSwCqvJGR3Rig+1tu9id7iAvj7gIO/q2jug7MVVJAHwGqq8VeFVL
osSAMFfPcubKaWKCkgMsy9gz4dVapBVrMyIC+hCL4bTiZyUOqEKDgze/aYEKM9jc
ySKKtpL7OwBqDAsed0v7lkAjQBbOh4noB4JmSTn7znjvsKXliUsqvf+ERqljVaBU
u8VVaQr2GUgy1ecnpJMfU8nATzkKNT15IFVGUgICvK2aahvqRcs9l8OOff7gfDgq
s00Rs3MYTuR+vOIDzlYrkPCMadxpsd3VUCWhORc1aboFU/E2vvkU/GGKo3L/Frjy
scBecVL4CyKb2MnS++yopwbh1KIhDy62u5pdNYWKlDrb+eDY+Sfev0qTeFM7Anby
FUeVzpNWTaC5uo0++7q5+ZuzKI+qTJT8t4xlz9tRI8z+T97yNjI/jRYamnhivTuU
KphgczsAfT2LjiohNisjYfGdmswGTDWSbDuThdsM9amp3Q4IIvUY3Lxx+ayke9RZ
S8ttbbxzo+JVkIshcY+hD8tMv980w8Ue47wxMccvk3CpgIhYZc8=
=MsSi
-----END PGP SIGNATURE-----

Note while building:

This release utilizes both unit and functional tests - googletest for unit testing and a small python framework for functional testing. The functional tests can be run in a container or on a bare-metal machine. By default, all unit and all functional tests are enabled. The bare metal tests will alter your cgroup hierarchy, and I strongly encourage running them on a temporary VM or other "disposable" machine. They should not be destructive, but cgroups are obviously a critical building block of a Linux system, and I would hate to see a critical machine harmed.

To completely disable the containerized functional tests:

  • Comment out the ./ftests.py line in ftests.sh

To completely disable the bare-metal functional tests:

To disable a failing test (in either a container or on bare metal):

  • Tests can be skipped by providing the --skip flag to ftests.py. Currently test number 28 is being skipped in ftests-nocontainer.sh
    To skip a single test, then use the format --skip 9
    To skip multiple tests, then use the format --skip 9,10,13

./configure && make should succeed on all distributions. If there is a failure with these steps, please email the libcgroup development team via our mailing list - libcg-devel@lists.sourceforge.net - or open a Github issue here - https://github.com/libcgroup/libcgroup/issues

make check may fail on some distributions and some machines. You are welcome to send any failures to our mailing list or open a Github issue, but note that some failures may be expected. The functional tests are currently focused on our continuous integration machines on Github Actions. Tests that enumerate all cgroup settings for a given controller may produce different results on other machines - especially if a different distro or kernel is being used. See below for details on potential failures:

  • Functional tests fail - lxd: command not found - Some of the functional tests use LXD containers to safely encapsulate cgroup changes that would otherwise be destructive on a live system, but not all distributions currently support LXD. If so, feel free to bypass running the LXD functional tests. See the comment above on how to disable the containerized tests

  • Various functional tests fail - As outlined above, this is likely due to differences in system capabilities. For example, if your system has real time cgroups enabled, then you will likely see functional test number 9 fail. I would recommend adding it to the skip list in ftests.sh and/or ftests-nocontainer.sh. See the comment above on how to skip individual tests

  • Unit tests fail - version GLIBCXX_3.4.20 not found - version CXXABI_1.3.9 not found - version GLIBCXX_3.4.21 not found To facilitate long-term stability and testability, we have bundled a compiled version of googletest with this release of libcgroup. On older distributions, this could cause errors during make check` due to the googletest *.so files being dependent upon a newer version of glibc than is available. This can be easily remedied by re-compiling googletest and replacing the provided *.so files. The rough steps are outlined below:

  $ git clone https://github.com/google/googletest.git googletest
  $ cd googletest
  $ git checkout release-1.8.0
  $ cd googletest
  $ cmake -DBUILD_SHARED_LIBS=ON .
  $ make
  $ cp *.so {path_where_you_extracted_libcgroup}/googletest/googletest
  $ cd {path_where_you_extracted_libcgroup}/tests/gunit
  $ make clean
  $ make check