1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
From 0d0ca00e56024a9919c150dbed62050d4c70b0c8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Ollivier?= <cedric.ollivier@orange.com>
Date: Wed, 3 Jun 2020 15:23:59 +0200
Subject: [PATCH] Switch to threading.Thread() for Rally tasks
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
multiprocessing.Process() often fails due to thread crashes [1].
It looks similar to gsutil release notes [2].
[1] https://build.opnfv.org/ci/job/functest-opnfv-functest-benchmarking-cntt-latest-rally_full_cntt-run/35/console
[2] https://github.com/GoogleCloudPlatform/gsutil/issues/548
[3] https://github.com/GoogleCloudPlatform/gsutil/blob/master/CHANGES.md
Change-Id: I582933832e23d188c7fa5999e713dd5d7e82d2da
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
---
rally/task/runner.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/rally/task/runner.py b/rally/task/runner.py
index 3397e1193..5edebb406 100644
--- a/rally/task/runner.py
+++ b/rally/task/runner.py
@@ -17,6 +17,7 @@ import abc
import collections
import copy
import multiprocessing
+import threading
import time
from rally.common import logging
@@ -186,9 +187,9 @@ class ScenarioRunner(plugin.Plugin, validation.ValidatablePluginMixin,
for i in range(processes_to_start):
kwrgs = {"processes_to_start": processes_to_start,
"processes_counter": i}
- process = multiprocessing.Process(target=worker_process,
- args=next(worker_args_gen),
- kwargs={"info": kwrgs})
+ process = threading.Thread(target=worker_process,
+ args=next(worker_args_gen),
+ kwargs={"info": kwrgs})
process.start()
process_pool.append(process)
--
2.26.2
|