0

Recently, I have added locust to test our API performance. The locust working fine in the local machine. But, my other test cases are failing in Teamcity because of adding locust library in the requirements.txt file of my python project. If I remove locust library from requirerments.txt file and the implementation of it, all the test cases are working. This means, locust is affecting other libraries in the depth level which is unknown for me. I am using locust 2.12.1 version. Is this locust version somehow buggy, or locust is not compatible in Teamcity build time with Kubernetes and any other virtual machine? Here is the error details,

    test setup failed
Traceback (most recent call last):
  File "D:\BuildAgent\work\directorypath\test_external_result_cdm_schema.py", line 69, in mqtt_reader_app_settings_v3
    self.common_modules.inject_appsettings(settings)
  File "D:\BuildAgent\work\directorypath\common_modules.py", line 395, in inject_appsettings
    self.restart_acdc()
  File "D:\BuildAgent\work\directorypath\common_modules.py", line 287, in restart_acdc
    KubernetesTestSetupService().restart_acdc(override_settings=self._new_values)
  File "D:\BuildAgent\work\directorypath\kubernetes\kubernetes_test_setup_service.py", line 167, in restart_acdc
    self.core_v1.patch_namespaced_config_map(config_map['metadata']['name'], self.namespace, config_map)
  File "D:\BuildAgent\work\directorypath\.venv\lib\site-packages\kubernetes\client\api\core_v1_api.py", line 18696, in patch_namespaced_config_map
    return self.patch_namespaced_config_map_with_http_info(name, namespace, body, **kwargs)  # noqa: E501
  File "D:\BuildAgent\work\directorypath\.venv\lib\site-packages\kubernetes\client\api\core_v1_api.py", line 18811, in patch_namespaced_config_map_with_http_info
    return self.api_client.call_api(
  File "D:\BuildAgent\work\directorypath\.venv\lib\site-packages\kubernetes\client\api_client.py", line 348, in call_api
    return self.__call_api(resource_path, method,
  File "D:\BuildAgent\work\directorypath\.venv\lib\site-packages\kubernetes\client\api_client.py", line 180, in __call_api
    response_data = self.request(
  File "D:\BuildAgent\work\directorypath\.venv\lib\site-packages\kubernetes\client\api_client.py", line 407, in request
    return self.rest_client.PATCH(url,
  File "D:\BuildAgent\work\directorypath\.venv\lib\site-packages\kubernetes\client\rest.py", line 295, in PATCH
    return self.request("PATCH", url,
  File "D:\BuildAgent\work\directorypath\.venv\lib\site-packages\kubernetes\client\rest.py", line 168, in request
    r = self.pool_manager.request(
  File "D:\BuildAgent\work\directorypath\.venv\lib\site-packages\urllib3\request.py", line 78, in request
    return self.request_encode_body(
  File "D:\BuildAgent\work\directorypath\.venv\lib\site-packages\urllib3\request.py", line 170, in request_encode_body
    return self.urlopen(method, url, **extra_kw)
  File "D:\BuildAgent\work\directorypath\.venv\lib\site-packages\urllib3\poolmanager.py", line 375, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
  File "D:\BuildAgent\work\directorypath\.venv\lib\site-packages\urllib3\connectionpool.py", line 699, in urlopen
    httplib_response = self._make_request(
  File "D:\BuildAgent\work\directorypath\.venv\lib\site-packages\urllib3\connectionpool.py", line 382, in _make_request
    self._validate_conn(conn)
  File "D:\BuildAgent\work\directorypath\.venv\lib\site-packages\urllib3\connectionpool.py", line 1010, in _validate_conn
    conn.connect()
  File "D:\BuildAgent\work\directorypath\.venv\lib\site-packages\urllib3\connection.py", line 397, in connect
    self.ssl_context = create_urllib3_context(
  File "D:\BuildAgent\work\directorypath\.venv\lib\site-packages\urllib3\util\ssl_.py", line 312, in create_urllib3_context
    context.options |= options
  File "D:\Python310\lib\ssl.py", line 619, in options
    super(SSLContext, SSLContext).options.__set__(self, value)
  File "D:\Python310\lib\ssl.py", line 619, in options
    super(SSLContext, SSLContext).options.__set__(self, value)
  File "D:\Python310\lib\ssl.py", line 619, in options
    super(SSLContext, SSLContext).options.__set__(self, value)
  [Previous line repeated 464 more times]
RecursionError: maximum recursion depth exceeded

Here is another error for another virtual machine,

    test setup failed
Traceback (most recent call last):
  File "E:\BuildAgent\work\directorypath\conftest.py", line 147, in connected_rabbit_amqp_client_publishing_v0_1
    yield from _connected_publishing_class(rabbit_amqp_client_publishing_class, "V0_1")
  File "E:\BuildAgent\work\directorypath\conftest.py", line 165, in _connected_publishing_class
    rabbit_amqp_client_publishing_class.connect()
  File "E:\BuildAgent\work\directorypath\services\rabbitmq\rabbit_mq_amqp_client.py", line 61, in connect
    self.connection = pika.BlockingConnection(parameters)
  File "E:\BuildAgent\work\directorypath\.venv\lib\site-packages\pika\adapters\blocking_connection.py", line 360, in __init__
    self._impl = self._create_connection(parameters, _impl_class)
  File "E:\BuildAgent\work\directorypath\.venv\lib\site-packages\pika\adapters\blocking_connection.py", line 445, in _create_connection
    ioloop.poll()
  File "E:\BuildAgent\work\808bc413d01bbf5\Tools\autotest_acdc\.venv\lib\site-packages\pika\adapters\select_connection.py", line 579, in poll
    self._poller.poll()
  File "E:\BuildAgent\work\directorypath\.venv\lib\site-packages\pika\adapters\select_connection.py", line 978, in poll
    self._dispatch_fd_events(fd_event_map)
  File "E:\BuildAgent\work\directorypath\.venv\lib\site-packages\pika\adapters\select_connection.py", line 907, in _dispatch_fd_events
    handler(fileno, events)
  File "E:\BuildAgent\work\directorypath\.venv\lib\site-packages\pika\adapters\select_connection.py", line 927, in _read_interrupt
    self._r_interrupt.recv(512)  # pylint: disable=E1101
  File "E:\BuildAgent\work\directorypath\.venv\lib\site-packages\gevent\_socketcommon.py", line 657, in recv
    return self._sock.recv(*args)
BlockingIOError: [WinError 10035] A non-blocking socket operation could not be completed immediately
Mahbub
  • 317
  • 2
  • 9
  • 27
  • Could it be the same issue as this? https://stackoverflow.com/questions/49820173/recursionerror-maximum-recursion-depth-exceeded-from-ssl-py-supersslcontex – Cyberwiz Oct 17 '22 at 11:21
  • It looks the similar issue. But I am not using gevent in my project. I have found that after performing the load test, the rest of my integration tests are failing due to adding locust library. I added 'environment.runner.quit()' to stop locust, but this is not solving my issue. The reason could be - somehow the locust library is affecting other libraries to perform as they are supposed to perform. @Cyberwiz – Mahbub Oct 21 '22 at 12:44
  • Locust uses gevent. If you need to import locust from another program you need to do it at the very start. Normally you shouldnt import it, just run it as a separate process. – Cyberwiz Oct 21 '22 at 13:03

0 Answers0