cmd/oc: disable docker's use of pigz earlier #130
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Due to a race condition in Docker[1], we need to disable extraction
using unpigz. Currently this is done in the image extraction code,
however this code is multi-threaded. Setenv is not thread safe in C[2],
so even thought it is safe in go[3], there's a small risk if there's
any C threads running.
It's safer to just set this env variable once when
oc
starts, ratherevery time the layerByEntry function is called.
[1] moby/moby#39859
[2] rust-lang/rust#24741
[3] https://github.com/golang/go/blob/a38a917aee626a9b9d5ce2b93964f586bf759ea0/src/syscall/env_unix.go#L18