From d01a94cda6719ee8e3fed6c6f993ac1a058aaaf0 Mon Sep 17 00:00:00 2001 From: Marcin Halastra Date: Thu, 1 Dec 2022 10:48:01 +0100 Subject: [PATCH 1/3] Remove reconnect upon corrupted message --- locust/runners.py | 11 +++-------- locust/test/test_runners.py | 6 +----- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/locust/runners.py b/locust/runners.py index 8b4cf256e2..aa4c3f0159 100644 --- a/locust/runners.py +++ b/locust/runners.py @@ -988,14 +988,9 @@ def client_listener(self) -> NoReturn: try: client_id, msg = self.server.recv_from_client() except RPCReceiveError as e: - logger.error(f"RPCError when receiving from client: {e}. Will reset client {client_id}.") - try: - self.server.send_to_client(Message("reconnect", None, client_id)) - except Exception as e: - logger.error(f"Error sending reconnect message to worker: {e}. Will reset RPC server.") - self.connection_broken = True - gevent.sleep(FALLBACK_INTERVAL) - continue + # TODO: Add proper reconnect if https://github.com/zeromq/pyzmq/issues/1809 fixed + logger.error(f"Unrecognized message detected: {e}") + continue except RPCSendError as e: logger.error(f"Error sending reconnect message to worker: {e}. Will reset RPC server.") self.connection_broken = True diff --git a/locust/test/test_runners.py b/locust/test/test_runners.py index 5c171f7b35..9a6785ef6e 100644 --- a/locust/test/test_runners.py +++ b/locust/test/test_runners.py @@ -3040,12 +3040,8 @@ def my_task(self): master.start(10, 10) sleep(0.1) server.mocked_send(Message("stats", BAD_MESSAGE, "zeh_fake_client1")) - self.assertEqual(4, len(server.outbox)) + self.assertEqual(3, len(server.outbox)) - # Expected message order in outbox: ack, spawn, reconnect, ack - self.assertEqual( - "reconnect", server.outbox[2][1].type, "Master didn't send worker reconnect message when expected." - ) class TestWorkerRunner(LocustTestCase): From 9d5844da75f214b557bff2892e733691d52b0235 Mon Sep 17 00:00:00 2001 From: Marcin Halastra Date: Thu, 1 Dec 2022 10:56:03 +0100 Subject: [PATCH 2/3] Fix unit --- locust/test/test_runners.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locust/test/test_runners.py b/locust/test/test_runners.py index 9a6785ef6e..ac61f37ed0 100644 --- a/locust/test/test_runners.py +++ b/locust/test/test_runners.py @@ -3040,7 +3040,7 @@ def my_task(self): master.start(10, 10) sleep(0.1) server.mocked_send(Message("stats", BAD_MESSAGE, "zeh_fake_client1")) - self.assertEqual(3, len(server.outbox)) + self.assertEqual(2, len(server.outbox)) From 34e7090af31cb9b04958e8308876d2309a6cba8b Mon Sep 17 00:00:00 2001 From: Marcin Halastra Date: Thu, 1 Dec 2022 11:01:29 +0100 Subject: [PATCH 3/3] Reformat file --- locust/test/test_runners.py | 1 - 1 file changed, 1 deletion(-) diff --git a/locust/test/test_runners.py b/locust/test/test_runners.py index ac61f37ed0..21fea1c697 100644 --- a/locust/test/test_runners.py +++ b/locust/test/test_runners.py @@ -3043,7 +3043,6 @@ def my_task(self): self.assertEqual(2, len(server.outbox)) - class TestWorkerRunner(LocustTestCase): def setUp(self): super().setUp()