libpathrs v0.2.2 -- "貴様ら全員刀の錆にしてやるぜ。"
This is a minor release of libpathrs which includes some improvements to
our openat2(2) fallback handling (necessary for runc and adapted from a
similar change to pathrs-lite), as well as minor improvements to "cargo
test" runs -- making the default %check RPM scriptlets work properly out
of the box.
Changed
- Add
_test_racefeature to allow you to opt-out of the race tests when
testing withcargo test(which resolves the spuriousEAGAINfailures you
get with naivecargo testandcargo nextestruns, along with making the
whole test run ~50x faster).
Fixed
- Previously,
cargo testruns would fail with errors due to the unique
execution environment thatcargo nextestprovides. We have resolved those
differences and now have smoke tests in our CI to make sure that a naive
cargo testrun will succeed. - libpathrs will now apply the same
openat2retry logic for any usage of
openat2(for scoped lookups), to further improve resiliency on busy
systems. - Our logic for deciding whether to use
openat2(2)or fallback to anO_PATH
resolver would cache the result to avoid doing needless test runs of
openat2(2). However, this causes issues when libpathrs is being used by a
program that applies new seccomp-bpf filters onto itself -- if the filter
deniesopenat2(2)then we would return that error rather than falling back
to theO_PATHresolver. To resolve this issue, we have introduced more
flexible fallback mechanisms and no longer cache the result ifopenat2(2)
was successful (only if there was an error).
Thanks to the following contributors for making this release possible:
- Aleksa Sarai cyphar@cyphar.com
- Kir Kolyshkin kolyshkin@gmail.com
Signed-off-by: Aleksa Sarai cyphar@cyphar.com