Make random_bytes() enforce sane size limits
This makes random_bytes() refuse to generate more than 1MiB of data at a time. This should almost never be necessary, and we have chased actual gate OOM failures related to sloppy handling of even moderately-sized test buffers. Change-Id: I9cebe778a9309a0f4f5d78be97d062864e1849f1
This commit is contained in:
parent
8dfefcebee
commit
8663655afa
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
The ``tempest.lib.common.utils.data_utils.random_bytes()`` helper
|
||||||
|
function will no longer allow a ``size`` of more than 1MiB. Tests
|
||||||
|
generally do not need to generate and use large payloads for
|
||||||
|
feature verification and it is easy to lose track of and duplicate
|
||||||
|
large buffers. The sum total of such errors can become problematic
|
||||||
|
in paralllelized and constrained CI environments.
|
@ -169,6 +169,8 @@ def random_bytes(size=1024):
|
|||||||
:return: size randomly bytes
|
:return: size randomly bytes
|
||||||
:rtype: string
|
:rtype: string
|
||||||
"""
|
"""
|
||||||
|
if size > 1 << 20:
|
||||||
|
raise RuntimeError('Size should be less than 1MiB')
|
||||||
return b''.join([six.int2byte(random.randint(0, 255))
|
return b''.join([six.int2byte(random.randint(0, 255))
|
||||||
for i in range(size)])
|
for i in range(size)])
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user