diff options
author | Valentin Rothberg <rothberg@redhat.com> | 2021-12-14 15:29:07 +0100 |
---|---|---|
committer | Valentin Rothberg <rothberg@redhat.com> | 2021-12-14 16:34:54 +0100 |
commit | 65d5a2b68b52817a1cb1a6d9da5d3ee7fb3e26a3 (patch) | |
tree | 53c99a5fcb2923f942aeb900566b8cbcdfdd55a7 | |
parent | 4543fd463e3d02aea42f1a5b6ed0d2ed190de655 (diff) | |
download | podman-65d5a2b68b52817a1cb1a6d9da5d3ee7fb3e26a3.tar.gz podman-65d5a2b68b52817a1cb1a6d9da5d3ee7fb3e26a3.tar.bz2 podman-65d5a2b68b52817a1cb1a6d9da5d3ee7fb3e26a3.zip |
pause scope: don't use the global math/rand RNG
Otherwise, we'll always get the same sequence of random numbers which
may lead to conflicts. Also bump the number of maximum attempts to 10
instead of 3.
[NO NEW TESTS NEEDED] as I cannot enforce random number collisions.
Existing tests should continue be green and flake slightly less.
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
-rw-r--r-- | utils/utils.go | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/utils/utils.go b/utils/utils.go index 095370a08..241e361cd 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -11,6 +11,7 @@ import ( "strconv" "strings" "sync" + "time" "github.com/containers/common/pkg/cgroups" "github.com/containers/podman/v3/libpod/define" @@ -204,8 +205,9 @@ func moveProcessToScope(pidPath, slice, scope string) error { func MovePauseProcessToScope(pausePidPath string) { var err error - for i := 0; i < 3; i++ { - r := rand.Int() + state := rand.New(rand.NewSource(time.Now().UnixNano())) + for i := 0; i < 10; i++ { + r := state.Int() err = moveProcessToScope(pausePidPath, "user.slice", fmt.Sprintf("podman-pause-%d.scope", r)) if err == nil { return |