Test run: - Start at Mon Sep 7 20:12:19 UTC 2026 - Docker image: "monitor-test-runner:scli-manual-manual" - Container name: "test-run-d77fc67e-c2b2-4980-a23f-c9dcf11b8139" - Runner git commit: b81e403a61c53e380fb69905a7df6b5141039e8a 2026-08-11T11:59:29+02:00 Building slices-monitor-test-runner @ file:///app Built slices-monitor-test-runner @ file:///app Uninstalled 1 package in 0.76ms Installed 1 package in 1ms Run Test: slices-bi-singlenode-login 2026-09-07 20:12:22.798273 UTC - OS release: PRETTY_NAME="Debian GNU/Linux 13 (trixie)" NAME="Debian GNU/Linux" VERSION_ID="13" VERSION="13 (trixie)" VERSION_CODENAME=trixie DEBIAN_VERSION_FULL=13.5 ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" 2026-09-07 20:12:22.799506 UTC - ls -a /root/ /scripts/: '/root/:\n.\n..\n.bashrc\n.cache\n.local\n.profile\n.slices\n.wget-hsts\n\n/scripts/:\n.\n..\n.slices\nrun_test_runner.sh\n' 2026-09-07 20:12:22.799562 UTC - env: {'PATH': '/app/.venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.local/bin/', 'COLUMNS': '200'} 2026-09-07 20:12:22.799657 UTC - which slices: /usr/local/bin/slices 2026-09-07 20:12:22.799679 UTC - Slices CLI exe: 'slices' 2026-09-07 20:12:22.799877 UTC - Run: slices --version 2026-09-07 20:12:27.149352 UTC - version: Slices CLI v2026.1.3 Slices CLI core v1.2.6 Slices CLI ai v1.1.0 Slices CLI bi v2.2.1 Slices clientlib bi v6.1.1 Slices clientlib core v5.6.0 Slices clientlib ai v1.0.0 2026-09-07 20:12:27.149651 UTC - Run: slices pubkey list --format text 2026-09-07 20:12:28.165525 UTC - Pubkey already registered 2026-09-07 20:12:28.165762 UTC - Run: slices bi infrastructure list --format csv --all --refresh 2026-09-07 20:12:28.781182 UTC - Refreshed infrastructure list. Total: 24 entries. 2026-09-07 20:12:28.781275 UTC - Check List Flavors 2026-09-07 20:12:28.781417 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 flavor list -f json 2026-09-07 20:12:29.665169 UTC - Check List DiskImages 2026-09-07 20:12:29.665405 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 diskimage list -f json 2026-09-07 20:12:31.025346 UTC - Requesting resources 2026-09-07 20:12:31.025871 UTC - Cloudinit user data: #!/bin/sh echo "Hello World. The time is now $(date -R)!" | tee '/user_data_output.txt' 2026-09-07 20:12:31.025989 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 create tst --image 'Ubuntu 24.04.3' --flavor tiny --duration 2h --experiment tst-bbdfb163 --user-data /tmp/tmpkzvexvwd 2026-09-07 20:12:32.496249 UTC - Resource ID: r_fr-sophia2-bi-vm2_01m1yr0g5rfv1sy4xgsvpcyrm0 2026-09-07 20:12:32.496443 UTC - Waiting until resource ready 2026-09-07 20:12:34.496857 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 list-resources --format json --experiment tst-bbdfb163 tst 2026-09-07 20:12:35.312541 UTC - Status: IMAGING 2026-09-07 20:12:38.129128 UTC - Status: BOOTING 2026-09-07 20:12:40.995864 UTC - Status: BOOTING 2026-09-07 20:12:43.812413 UTC - Status: BOOTING 2026-09-07 20:12:46.628963 UTC - Status: BOOTING 2026-09-07 20:12:49.574020 UTC - Status: BOOTING 2026-09-07 20:12:52.494528 UTC - Status: BOOTING 2026-09-07 20:12:55.526272 UTC - Status: BOOTING 2026-09-07 20:12:58.399855 UTC - Status: UP 2026-09-07 20:12:58.399930 UTC - Experiment ID: exp_expauth.ilabt.imec.be_01m1yr0fprek39qd3z9acj96c3 2026-09-07 20:12:58.400004 UTC - Validate resources 2026-09-07 20:12:59.216135 UTC - The fields of the created resource were validated. 2026-09-07 20:12:59.216313 UTC - Check if resources are registered in experiment 2026-09-07 20:12:59.216487 UTC - Run: slices experiment list-resources --format json tst-bbdfb163 2026-09-07 20:12:59.932576 UTC - Status (on expauth): UP 2026-09-07 20:12:59.932746 UTC - Testing extend expires_at (all resources in experiment) 2026-09-07 20:12:59.932913 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 extend --duration 3h --experiment tst-bbdfb163 2026-09-07 20:13:01.459507 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 list-resources --format json --experiment tst-bbdfb163 tst 2026-09-07 20:13:02.325358 UTC - Run: slices experiment list-resources --format json tst-bbdfb163 2026-09-07 20:13:03.207569 UTC - expires_at (on expauth): 2026-09-07T23:13:00Z (correctly extended) 2026-09-07 20:13:03.207714 UTC - Testing extend expires_at (single resource in experiment) 2026-09-07 20:13:03.207981 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 extend tst --duration 4h --experiment tst-bbdfb163 2026-09-07 20:13:04.675493 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 list-resources --format json --experiment tst-bbdfb163 tst 2026-09-07 20:13:05.541805 UTC - Run: slices experiment list-resources --format json tst-bbdfb163 2026-09-07 20:13:06.268077 UTC - expires_at (on expauth): 2026-09-08T00:13:00Z (correctly extended) 2026-09-07 20:13:06.268226 UTC - Testing ssh login 2026-09-07 20:13:06.279420 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 ssh --no-exec --proxy on --show ssh_config --experiment tst-bbdfb163 tst 2026-09-07 20:13:07.405590 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 ssh --no-exec --proxy off --show server_pubkey_openssh --experiment tst-bbdfb163 tst 2026-09-07 20:13:08.819066 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 ssh --no-exec --proxy off --show proxy_pubkey_openssh --experiment tst-bbdfb163 tst 2026-09-07 20:13:10.236998 UTC - Logging in using 'slices bi ssh' 2026-09-07 20:13:10.237094 UTC - Forcing IPv4 only. 2026-09-07 20:13:10.237244 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 ssh --show nothing --experiment tst-bbdfb163 tst -- -4 uname -a 2026-09-07 20:13:13.129062 UTC - Forcing IPv4 only. 2026-09-07 20:13:13.129289 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 ssh --show nothing --experiment tst-bbdfb163 tst -- -4 uptime 2026-09-07 20:13:15.008203 UTC - CLI SSH Test passed. 2026-09-07 20:13:15.008281 UTC - Uname: Linux tst 6.8.0-85-generic #85-Ubuntu SMP PREEMPT_DYNAMIC Thu Sep 18 15:26:59 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux 2026-09-07 20:13:15.008302 UTC - Uptime: 20:13:14 up 0 min, 1 user, load average: 0.50, 0.14, 0.05 2026-09-07 20:13:15.008338 UTC - Logging in using SSH over SSH proxy 2026-09-07 20:13:15.008499 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 ssh --no-exec --proxy on --show proxy_pubkey_openssh --experiment tst-bbdfb163 tst 2026-09-07 20:13:16.075840 UTC - Added paramiko HostKeyEntry for 172.28.9.36 2026-09-07 20:13:16.076069 UTC - Added paramiko HostKeyEntry for 172.28.9.36 2026-09-07 20:13:16.076150 UTC - Added paramiko HostKeyEntry for 172.28.9.36 2026-09-07 20:13:16.076463 UTC - Added paramiko HostKeyEntry for bastion1.theblueprintfactory.org 2026-09-07 20:13:16.076552 UTC - Added paramiko HostKeyEntry for bastion1.theblueprintfactory.org 2026-09-07 20:13:16.076596 UTC - Added paramiko HostKeyEntry for bastion1.theblueprintfactory.org 2026-09-07 20:13:16.076613 UTC - Connecting to proxy bastion1.theblueprintfactory.org:22 2026-09-07 20:13:16.455733 UTC - Connecting to 172.28.9.36:22 over proxy 2026-09-07 20:13:17.124933 UTC - SSH Test output: 2026-09-07 20:13:17.125030 UTC - Uname: Linux tst 6.8.0-85-generic #85-Ubuntu SMP PREEMPT_DYNAMIC Thu Sep 18 15:26:59 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux 2026-09-07 20:13:17.125052 UTC - Uptime: 20:13:16 up 0 min, 1 user, load average: 0.50, 0.14, 0.05 2026-09-07 20:13:17.261472 UTC - lsb_release: Ubuntu 24.04.3 LTS 2026-09-07 20:13:17.261556 UTC - lsb_release matches expected value 2026-09-07 20:13:17.261576 UTC - SSH Test passed. 2026-09-07 20:13:17.396498 UTC - Cloud-init user-data: Hello World. The time is now Mon, 07 Sep 2026 20:12:57 +0000! 2026-09-07 20:13:17.405070 UTC - Destroying tst-bbdfb163 tst 2026-09-07 20:13:17.405279 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 destroy --experiment tst-bbdfb163 tst 2026-09-07 20:13:19.882126 UTC - Content of log file '/test_dir/step_Destroy_command_1.txt': slices bi --infra fr-sophia2-bi-vm2 destroy --experiment tst-bbdfb163 tst 2026-09-07 20:13:19.882427 UTC - Content of log file '/test_dir/destroy.txt': 15.0% / Powering off. Deleting tst: Powering off. ━━━━━━ 15% ╭───────────────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────────────────────────────────────────────╮ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpx/_transports/default.py:101 in map_httpcore_exceptions │ │ │ │ 98 │ if len(HTTPCORE_EXC_MAP) == 0: │ │ 99 │ │ HTTPCORE_EXC_MAP = _load_httpcore_exceptions() │ │ 100 │ try: │ │ ❱ 101 │ │ yield │ │ 102 │ except Exception as exc: │ │ 103 │ │ mapped_exc = None │ │ 104 │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpx/_transports/default.py:250 in handle_request │ │ │ │ 247 │ │ │ extensions=request.extensions, │ │ 248 │ │ ) │ │ 249 │ │ with map_httpcore_exceptions(): │ │ ❱ 250 │ │ │ resp = self._pool.handle_request(req) │ │ 251 │ │ │ │ 252 │ │ assert isinstance(resp.stream, typing.Iterable) │ │ 253 │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpcore/_sync/connection_pool.py:256 in handle_request │ │ │ │ 253 │ │ │ │ closing = self._assign_requests_to_connections() │ │ 254 │ │ │ │ │ 255 │ │ │ self._close_connections(closing) │ │ ❱ 256 │ │ │ raise exc from None │ │ 257 │ │ │ │ 258 │ │ # Return the response. Note that in this case we still have to manage │ │ 259 │ │ # the point at which the response is closed. │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpcore/_sync/connection_pool.py:236 in handle_request │ │ │ │ 233 │ │ │ │ │ │ 234 │ │ │ │ try: │ │ 235 │ │ │ │ │ # Send the request on the assigned connection. │ │ ❱ 236 │ │ │ │ │ response = connection.handle_request( │ │ 237 │ │ │ │ │ │ pool_request.request │ │ 238 │ │ │ │ │ ) │ │ 239 │ │ │ │ except ConnectionNotAvailable: │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpcore/_sync/connection.py:103 in handle_request │ │ │ │ 100 │ │ │ self._connect_failed = True │ │ 101 │ │ │ raise exc │ │ 102 │ │ │ │ ❱ 103 │ │ return self._connection.handle_request(request) │ │ 104 │ │ │ 105 │ def _connect(self, request: Request) -> NetworkStream: │ │ 106 │ │ timeouts = request.extensions.get("timeout", {}) │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpcore/_sync/http11.py:136 in handle_request │ │ │ │ 133 │ │ │ with ShieldCancellation(): │ │ 134 │ │ │ │ with Trace("response_closed", logger, request) as trace: │ │ 135 │ │ │ │ │ self._response_closed() │ │ ❱ 136 │ │ │ raise exc │ │ 137 │ │ │ 138 │ # Sending the request... │ │ 139 │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpcore/_sync/http11.py:106 in handle_request │ │ │ │ 103 │ │ │ │ │ reason_phrase, │ │ 104 │ │ │ │ │ headers, │ │ 105 │ │ │ │ │ trailing_data, │ │ ❱ 106 │ │ │ │ ) = self._receive_response_headers(**kwargs) │ │ 107 │ │ │ │ trace.return_value = ( │ │ 108 │ │ │ │ │ http_version, │ │ 109 │ │ │ │ │ status, │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpcore/_sync/http11.py:177 in _receive_response_headers │ │ │ │ 174 │ │ timeout = timeouts.get("read", None) │ │ 175 │ │ │ │ 176 │ │ while True: │ │ ❱ 177 │ │ │ event = self._receive_event(timeout=timeout) │ │ 178 │ │ │ if isinstance(event, h11.Response): │ │ 179 │ │ │ │ break │ │ 180 │ │ │ if ( │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpcore/_sync/http11.py:231 in _receive_event │ │ │ │ 228 │ │ │ │ # it as a ConnectError. │ │ 229 │ │ │ │ if data == b"" and self._h11_state.their_state == h11.SEND_RESPONSE: │ │ 230 │ │ │ │ │ msg = "Server disconnected without sending a response." │ │ ❱ 231 │ │ │ │ │ raise RemoteProtocolError(msg) │ │ 232 │ │ │ │ │ │ 233 │ │ │ │ self._h11_state.receive_data(data) │ │ 234 │ │ │ else: │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ RemoteProtocolError: Server disconnected without sending a response. The above exception was the direct cause of the following exception: ╭───────────────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────────────────────────────────────────────╮ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/slices_cli_bi/commands/bi_helpers.py:83 in wrapper_handle_some_exceptions │ │ │ │ 80 │ def wrapper_handle_some_exceptions(*args, **kwargs): │ │ 81 │ │ """Function wrapper for handle_some_exceptions.""" # noqa: D401 │ │ 82 │ │ try: │ │ ❱ 83 │ │ │ return func(*args, **kwargs) │ │ 84 │ │ except ApiResponseError as e: │ │ 85 │ │ │ if e._httpx_status_error.response.status_code in ( │ │ 86 │ │ │ │ 502, │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/slices_cli_bi/commands/bi.py:1365 in destroy_resource │ │ │ │ 1362 │ │ except Exception: │ │ 1363 │ │ │ err_console.print(f"Could not remove ssh host key for {resource.friendly_name}") │ │ 1364 │ │ │ ❱ 1365 │ task_results = follow_progress( │ │ 1366 │ │ ctx.obj.bi_tasks_api, │ │ 1367 │ │ [task_id for _, task_id, _ in delete_task_info], │ │ 1368 │ │ [task_name for task_name, _, _ in delete_task_info], │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/slices_cli_bi/core/progress.py:86 in follow_progress │ │ │ │ 83 │ │ │ bi_task_status: list[TaskStatus] = [] │ │ 84 │ │ │ while tasks_to_query: │ │ 85 │ │ │ │ bi_task_status.extend( │ │ ❱ 86 │ │ │ │ │ bi_tasks_api.get_tasks( │ │ 87 │ │ │ │ │ │ task_ids=tasks_to_query[0:MAX_PROGRESS_UPDATES_PER_REQUEST], # type: ignore │ │ 88 │ │ │ │ │ ) │ │ 89 │ │ │ │ ) │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/slices_clientlib_bi/bi_task.py:67 in get_tasks │ │ │ │ 64 │ │ │ 65 │ def get_tasks(self, task_ids: list[str]) -> list[TaskStatus]: │ │ 66 │ │ """Get the status of multiple tasks.""" │ │ ❱ 67 │ │ response = self._client.get( │ │ 68 │ │ │ f"{self._base_path}", │ │ 69 │ │ │ params={"task_ids": task_ids}, │ │ 70 │ │ ) │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpx/_client.py:1053 in get │ │ │ │ 1050 │ │ │ │ 1051 │ │ **Parameters**: See `httpx.request`. │ │ 1052 │ │ """ │ │ ❱ 1053 │ │ return self.request( │ │ 1054 │ │ │ "GET", │ │ 1055 │ │ │ url, │ │ 1056 │ │ │ params=params, │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpx/_client.py:825 in request │ │ │ │ 822 │ │ │ timeout=timeout, │ │ 823 │ │ │ extensions=extensions, │ │ 824 │ │ ) │ │ ❱ 825 │ │ return self.send(request, auth=auth, follow_redirects=follow_redirects) │ │ 826 │ │ │ 827 │ @contextmanager │ │ 828 │ def stream( │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpx/_client.py:914 in send │ │ │ │ 911 │ │ │ │ 912 │ │ auth = self._build_request_auth(request, auth) │ │ 913 │ │ │ │ ❱ 914 │ │ response = self._send_handling_auth( │ │ 915 │ │ │ request, │ │ 916 │ │ │ auth=auth, │ │ 917 │ │ │ follow_redirects=follow_redirects, │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpx/_client.py:942 in _send_handling_auth │ │ │ │ 939 │ │ │ request = next(auth_flow) │ │ 940 │ │ │ │ │ 941 │ │ │ while True: │ │ ❱ 942 │ │ │ │ response = self._send_handling_redirects( │ │ 943 │ │ │ │ │ request, │ │ 944 │ │ │ │ │ follow_redirects=follow_redirects, │ │ 945 │ │ │ │ │ history=history, │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpx/_client.py:979 in _send_handling_redirects │ │ │ │ 976 │ │ │ for hook in self._event_hooks["request"]: │ │ 977 │ │ │ │ hook(request) │ │ 978 │ │ │ │ │ ❱ 979 │ │ │ response = self._send_single_request(request) │ │ 980 │ │ │ try: │ │ 981 │ │ │ │ for hook in self._event_hooks["response"]: │ │ 982 │ │ │ │ │ hook(response) │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpx/_client.py:1014 in _send_single_request │ │ │ │ 1011 │ │ │ ) │ │ 1012 │ │ │ │ 1013 │ │ with request_context(request=request): │ │ ❱ 1014 │ │ │ response = transport.handle_request(request) │ │ 1015 │ │ │ │ 1016 │ │ assert isinstance(response.stream, SyncByteStream) │ │ 1017 │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpx/_transports/default.py:249 in handle_request │ │ │ │ 246 │ │ │ content=request.stream, │ │ 247 │ │ │ extensions=request.extensions, │ │ 248 │ │ ) │ │ ❱ 249 │ │ with map_httpcore_exceptions(): │ │ 250 │ │ │ resp = self._pool.handle_request(req) │ │ 251 │ │ │ │ 252 │ │ assert isinstance(resp.stream, typing.Iterable) │ │ │ │ /usr/local/lib/python3.14/contextlib.py:162 in __exit__ │ │ │ │ 159 │ │ │ │ # tell if we get the same exception back │ │ 160 │ │ │ │ value = typ() │ │ 161 │ │ │ try: │ │ ❱ 162 │ │ │ │ self.gen.throw(value) │ │ 163 │ │ │ except StopIteration as exc: │ │ 164 │ │ │ │ # Suppress StopIteration *unless* it's the same exception that │ │ 165 │ │ │ │ # was passed to throw(). This prevents a StopIteration │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpx/_transports/default.py:118 in map_httpcore_exceptions │ │ │ │ 115 │ │ │ raise │ │ 116 │ │ │ │ 117 │ │ message = str(exc) │ │ ❱ 118 │ │ raise mapped_exc(message) from exc │ │ 119 │ │ 120 │ │ 121 class ResponseStream(SyncByteStream): │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ RemoteProtocolError: Server disconnected without sending a response. 2026-09-07 20:13:19.882570 UTC - Error in test step 'Destroy': "slices bi destroy" failed (return value is 1) 2026-09-07 20:13:19.882630 UTC - Wait 2s before retry