  
      if timeout:
          timeout_queue.put((None, None,))
+@@ -229,8 +256,8 @@ class ConstantScenarioRunner(runner.ScenarioRunner):
+                              concurrency_per_worker=concurrency_per_worker,
+                              concurrency_overhead=concurrency_overhead)
+ 
+-        result_queue = multiprocessing.Queue()
+-        event_queue = multiprocessing.Queue()
++        result_queue = multiprocessing.SimpleQueue()
++        event_queue = multiprocessing.SimpleQueue()
+ 
+         def worker_args_gen(concurrency_overhead):
+             while True:
+@@ -324,8 +351,8 @@ class ConstantForDurationScenarioRunner(runner.ScenarioRunner):
+                              concurrency_per_worker=concurrency_per_worker,
+                              concurrency_overhead=concurrency_overhead)
+ 
+-        result_queue = multiprocessing.Queue()
+-        event_queue = multiprocessing.Queue()
++        result_queue = multiprocessing.SimpleQueue()
++        event_queue = multiprocessing.SimpleQueue()
+ 
+         def worker_args_gen(concurrency_overhead):
+             while True:
 @@ -340,3 +367,4 @@ class ConstantForDurationScenarioRunner(runner.ScenarioRunner):
              processes_to_start, _worker_process,
              worker_args_gen(concurrency_overhead))
          self._join_processes(process_pool, result_queue, event_queue)
 +
+diff --git a/rally/plugins/task/runners/rps.py b/rally/plugins/task/runners/rps.py
+index 98a706d11..74ccfae94 100644
+--- a/rally/plugins/task/runners/rps.py
++++ b/rally/plugins/task/runners/rps.py
+@@ -260,8 +260,8 @@ class RPSScenarioRunner(runner.ScenarioRunner):
+                              concurrency_per_worker=concurrency_per_worker,
+                              concurrency_overhead=concurrency_overhead)
+ 
+-        result_queue = multiprocessing.Queue()
+-        event_queue = multiprocessing.Queue()
++        result_queue = multiprocessing.SimpleQueue()
++        event_queue = multiprocessing.SimpleQueue()
+ 
+         def worker_args_gen(times_overhead, concurrency_overhead):
+             """Generate arguments for process worker.
 diff --git a/rally/plugins/task/scenarios/requests/http_requests.py b/rally/plugins/task/scenarios/requests/http_requests.py
 index e85ee5af2..4afdf29f1 100644
 --- a/rally/plugins/task/scenarios/requests/http_requests.py

From 92cf158d8932f4509983b3813049be717093253e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Ollivier?= <cedric.ollivier@orange.com>
Date: Thu, 30 Apr 2020 13:59:24 +0200
Subject: [PATCH] Try to detect the race conditions

 
     def send_event(self, type, value=None):
         """Store event to send it to consumer later.
@@ -254,6 +272,9 @@ class ScenarioRunner(plugin.Plugin, validation.ValidatablePluginMixin,
         :param type: Event type
         :param value: Optional event data
         """
