Durability test test_multiple_clients_tcp_v4 failed
Job [#7536749698](https://gitlab.com/MusicScience37Projects/utility-libraries/cpp-msgpack-rpc/-/jobs/7536749698) failed for a3ab339ab955064f865993da1fd1dd29e5ccbf0d: Job name: `test debug: [gcc12, musicscience37/gcc-ci]` <details><summary>Log</summary> ``` 9: Test command: /root/.local/bin/poetry "run" "pytest" "/builds/MusicScience37Projects/utility-libraries/cpp-msgpack-rpc/tests/durability" "--build=/builds/MusicScience37Projects/utility-libraries/cpp-msgpack-rpc/build_gcc12_debug" "--junit-xml=/builds/MusicScience37Projects/utility-libraries/cpp-msgpack-rpc/build_gcc12_debug/junit/msgpack_rpc_durability_tests.xml" "--seconds=1" 9: Test timeout computed to be: 1500 9: ============================= test session starts ============================== 9: platform linux -- Python 3.12.4, pytest-8.3.2, pluggy-1.5.0 9: rootdir: /builds/MusicScience37Projects/utility-libraries/cpp-msgpack-rpc 9: configfile: pyproject.toml 9: plugins: asyncio-0.23.8, approvaltests-14.0.0, anyio-4.4.0, approvaltests-0.2.4 9: asyncio: mode=Mode.STRICT 9: collected 2 items 9: 9: tests/durability/test_multiple_clients.py F [ 50%] 9: tests/durability/test_request_continuously.py . [100%] 9: 9: =================================== FAILURES =================================== 9: _________________________ test_multiple_clients_tcp_v4 _________________________ 9: 9: bin_dir_path = PosixPath('/builds/MusicScience37Projects/utility-libraries/cpp-msgpack-rpc/build_gcc12_debug/bin') 9: log_parent_dir_path = PosixPath('/builds/MusicScience37Projects/utility-libraries/cpp-msgpack-rpc/build_gcc12_debug/temp_test/durability') 9: test_duration = datetime.timedelta(seconds=1) 9: 9: def test_multiple_clients_tcp_v4( 9: bin_dir_path: pathlib.Path, 9: log_parent_dir_path: pathlib.Path, 9: test_duration: datetime.timedelta, 9: ) -> None: 9: """Test to request from multiple clients (TCPv4).""" 9: current_log_dir_path = log_parent_dir_path / "test_multiple_clients_tcp_v4" 9: if current_log_dir_path.exists(): 9: shutil.rmtree(str(current_log_dir_path)) 9: current_log_dir_path.mkdir(exist_ok=True, parents=True) 9: 9: config_file_path = THIS_DIR / "multiple_clients_config.toml" 9: server_uri = "tcp://127.0.0.1:12345" 9: 9: with ProcessExecutor( 9: [ 9: str(bin_dir_path / "durability_serve_methods"), 9: "--config", 9: str(config_file_path), 9: "--uri", 9: server_uri, 9: "--log", 9: "server.log", 9: ], 9: cwd=str(current_log_dir_path), 9: log_prefix="server", 9: ) as server_process: 9: with ProcessExecutor( 9: [ 9: str(bin_dir_path / "durability_request_continuously"), 9: "--config", 9: str(config_file_path), 9: "--uri", 9: server_uri, 9: "--log", 9: "client1.log", 9: "--seconds", 9: str(int(test_duration.total_seconds())), 9: ], 9: cwd=str(current_log_dir_path), 9: log_prefix="client1", 9: ) as client1_process: 9: with ProcessExecutor( 9: [ 9: str(bin_dir_path / "durability_request_continuously"), 9: "--config", 9: str(config_file_path), 9: "--uri", 9: server_uri, 9: "--log", 9: "client2.log", 9: "--seconds", 9: str(int(test_duration.total_seconds())), 9: ], 9: cwd=str(current_log_dir_path), 9: log_prefix="client2", 9: ) as client2_process: 9: with ProcessExecutor( 9: [ 9: str(bin_dir_path / "durability_request_continuously"), 9: "--config", 9: str(config_file_path), 9: "--uri", 9: server_uri, 9: "--log", 9: "client3.log", 9: "--seconds", 9: str(int(test_duration.total_seconds())), 9: ], 9: cwd=str(current_log_dir_path), 9: log_prefix="client3", 9: ) as client3_process: 9: with ProcessExecutor( 9: [ 9: str(bin_dir_path / "durability_request_continuously"), 9: "--config", 9: str(config_file_path), 9: "--uri", 9: server_uri, 9: "--log", 9: "client4.log", 9: "--seconds", 9: str(int(test_duration.total_seconds())), 9: ], 9: cwd=str(current_log_dir_path), 9: log_prefix="client4", 9: ) as client4_process: 9: client4_process.wait(test_duration.total_seconds() * 2.0) 9: client3_process.wait(1.0) 9: client2_process.wait(1.0) 9: > client1_process.wait(1.0) 9: 9: tests/durability/test_multiple_clients.py:102: 9: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 9: tests/durability/process_executor.py:43: in wait 9: self._process.wait(timeout=timeout) 9: /root/.pyenv/versions/3.12.4/lib/python3.12/subprocess.py:1264: in wait 9: return self._wait(timeout=timeout) 9: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 9: 9: self = <Popen: returncode: -15 args: ['/builds/MusicScience37Projects/utility-libra...> 9: timeout = 1.0 9: 9: def _wait(self, timeout): 9: """Internal implementation of wait() on POSIX.""" 9: if self.returncode is not None: 9: return self.returncode 9: 9: if timeout is not None: 9: endtime = _time() + timeout 9: # Enter a busy loop if we have a timeout. This busy loop was 9: # cribbed from Lib/threading.py in Thread.wait() at r71065. 9: delay = 0.0005 # 500 us -> initial delay of 1 ms 9: while True: 9: if self._waitpid_lock.acquire(False): 9: try: 9: if self.returncode is not None: 9: break # Another thread waited. 9: (pid, sts) = self._try_wait(os.WNOHANG) 9: assert pid == self.pid or pid == 0 9: if pid == self.pid: 9: self._handle_exitstatus(sts) 9: break 9: finally: 9: self._waitpid_lock.release() 9: remaining = self._remaining_time(endtime) 9: if remaining <= 0: 9: > raise TimeoutExpired(self.args, timeout) 9: E subprocess.TimeoutExpired: Command '['/builds/MusicScience37Projects/utility-libraries/cpp-msgpack-rpc/build_gcc12_debug/bin/durability_request_continuously', '--config', '/builds/MusicScience37Projects/utility-libraries/cpp-msgpack-rpc/tests/durability/multiple_clients_config.toml', '--uri', 'tcp://127.0.0.1:12345', '--log', 'client1.log', '--seconds', '1']' timed out after 1.0 seconds 9: 9: /root/.pyenv/versions/3.12.4/lib/python3.12/subprocess.py:2045: TimeoutExpired 9: =============================== warnings summary =============================== 9: tests/durability/test_multiple_clients.py::test_multiple_clients_tcp_v4 9: /builds/MusicScience37Projects/utility-libraries/cpp-msgpack-rpc/.venv/lib/python3.12/site-packages/kaleido/scopes/base.py:188: DeprecationWarning: 9: 9: setDaemon() is deprecated, set the daemon attribute instead 9: 9: tests/durability/test_multiple_clients.py::test_multiple_clients_tcp_v4 9: /builds/MusicScience37Projects/utility-libraries/cpp-msgpack-rpc/.venv/lib/python3.12/site-packages/statsmodels/regression/linear_model.py:1783: RuntimeWarning: 9: 9: divide by zero encountered in scalar divide 9: 9: tests/durability/test_multiple_clients.py::test_multiple_clients_tcp_v4 9: /builds/MusicScience37Projects/utility-libraries/cpp-msgpack-rpc/.venv/lib/python3.12/site-packages/statsmodels/regression/linear_model.py:1783: RuntimeWarning: 9: 9: invalid value encountered in scalar divide 9: 9: -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 9: - generated xml file: /builds/MusicScience37Projects/utility-libraries/cpp-msgpack-rpc/build_gcc12_debug/junit/msgpack_rpc_durability_tests.xml - 9: =========================== short test summary info ============================ 9: FAILED tests/durability/test_multiple_clients.py::test_multiple_clients_tcp_v4 - subprocess.TimeoutExpired: Command '['/builds/MusicScience37Projects/utility-libraries/cpp-msgpack-rpc/build_gcc12_debug/bin/durability_request_continuously', '--config', '/builds/MusicScience37Projects/utility-libraries/cpp-msgpack-rpc/tests/durability/multiple_clients_config.toml', '--uri', 'tcp://127.0.0.1:12345', '--log', 'client1.log', '--seconds', '1']' timed out after 1.0 seconds 9: =================== 1 failed, 1 passed, 3 warnings in 12.53s =================== 9/9 Test #9: durability_tests .................***Failed 13.69 sec ``` </details>
issue