summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin Rothberg <rothberg@redhat.com>2021-12-14 15:29:07 +0100
committerValentin Rothberg <rothberg@redhat.com>2021-12-14 16:34:54 +0100
commit65d5a2b68b52817a1cb1a6d9da5d3ee7fb3e26a3 (patch)
tree53c99a5fcb2923f942aeb900566b8cbcdfdd55a7
parent4543fd463e3d02aea42f1a5b6ed0d2ed190de655 (diff)
downloadpodman-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.go6
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