Use random.SystemRandom() (which uses /dev/urandom) in
kvm_utils.generate_random_string().
Currently, when running multiple jobs in parallel, the generated strings
occasionally collide, and this is very bad.

Also, don't seed the random number generator in kvm.py.  This is not necessary
and is probably done by default anyway.

Signed-off-by: Michael Goldish <[email protected]>
---
 client/tests/kvm/kvm.py       |    5 +----
 client/tests/kvm/kvm_utils.py |    3 ++-
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/client/tests/kvm/kvm.py b/client/tests/kvm/kvm.py
index 4930e80..97c1b00 100644
--- a/client/tests/kvm/kvm.py
+++ b/client/tests/kvm/kvm.py
@@ -1,4 +1,4 @@
-import sys, os, time, shelve, random, resource, logging, cPickle
+import sys, os, time, shelve, resource, logging, cPickle
 from autotest_lib.client.bin import test
 from autotest_lib.client.common_lib import error
 
@@ -68,9 +68,6 @@ class kvm(test.test):
         import kvm_utils
         import kvm_preprocessing
 
-        # Seed the random number generator
-        random.seed()
-
         # Enable core dumps
         resource.setrlimit(resource.RLIMIT_CORE, (-1, -1))
 
diff --git a/client/tests/kvm/kvm_utils.py b/client/tests/kvm/kvm_utils.py
index ac9ede7..e4c3580 100644
--- a/client/tests/kvm/kvm_utils.py
+++ b/client/tests/kvm/kvm_utils.py
@@ -676,10 +676,11 @@ def generate_random_string(length):
 
     @length: length of the string that will be generated.
     """
+    r = random.SystemRandom()
     str = ""
     chars = string.letters + string.digits
     while length > 0:
-        str += random.choice(chars)
+        str += r.choice(chars)
         length -= 1
     return str
 
-- 
1.5.4.1

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to