Test run: - Start at Sat Oct 31 05:09:56 UTC 2026 - Docker image: "monitor-test-runner:scli-manual-manual" - Container name: "test-run-c79abc03-fb7e-443f-b727-344c46eb862a" - Runner git commit: 3d31de04c823a30705ff3eab5a5f3c3f420ec99c 2026-09-25T10:35:24+02:00 Building slices-monitor-test-runner @ file:///app Built slices-monitor-test-runner @ file:///app Uninstalled 1 package in 1ms Installed 1 package in 2ms Run Test: slices-bi-singlenode-login 2026-10-31 05:10:00.903113 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-10-31 05:10:00.905219 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-10-31 05:10:00.905281 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-10-31 05:10:00.905383 UTC - which slices: /usr/local/bin/slices 2026-10-31 05:10:00.905411 UTC - Slices CLI exe: 'slices' 2026-10-31 05:10:00.905688 UTC - Run: slices --version 2026-10-31 05:10:05.673000 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-10-31 05:10:05.673708 UTC - Run: slices pubkey list --format text 2026-10-31 05:10:06.751269 UTC - Pubkey already registered 2026-10-31 05:10:06.751609 UTC - Run: slices bi infrastructure list --format csv --all --refresh 2026-10-31 05:10:07.586218 UTC - Refreshed infrastructure list. Total: 25 entries. 2026-10-31 05:10:07.586319 UTC - Check List Flavors 2026-10-31 05:10:07.586470 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 flavor list -f json 2026-10-31 05:10:08.352812 UTC - Check List DiskImages 2026-10-31 05:10:08.353043 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 diskimage list -f json 2026-10-31 05:10:09.604800 UTC - Requesting resources 2026-10-31 05:10:09.605331 UTC - Cloudinit user data: #!/bin/sh echo "Hello World. The time is now $(date -R)!" | tee '/user_data_output.txt' 2026-10-31 05:10:09.605443 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 create tst --image 'Ubuntu 24.04.3' --flavor tiny --duration 2h --experiment tst-1c27dca3 --user-data /tmp/tmpodj4npru 2026-10-31 05:10:11.543776 UTC - Resource ID: r_fr-sophia2-bi-vm2_01m685v22ye089ycqzm3aje5mr 2026-10-31 05:10:11.543996 UTC - Waiting until resource ready 2026-10-31 05:10:13.544335 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 list-resources --format json --experiment tst-1c27dca3 tst 2026-10-31 05:10:14.781055 UTC - Status: IMAGING 2026-10-31 05:10:18.103948 UTC - Status: BOOTING 2026-10-31 05:10:21.484370 UTC - Status: BOOTING 2026-10-31 05:10:24.357967 UTC - Status: BOOTING 2026-10-31 05:10:27.374269 UTC - Status: BOOTING 2026-10-31 05:10:30.240771 UTC - Status: BOOTING 2026-10-31 05:10:33.447710 UTC - Status: BOOTING 2026-10-31 05:10:36.417509 UTC - Status: UP 2026-10-31 05:10:36.417584 UTC - Experiment ID: exp_expauth.ilabt.imec.be_01m685v1p7evra4gtt7837hfgz 2026-10-31 05:10:36.417631 UTC - Validate resources 2026-10-31 05:10:37.345253 UTC - The fields of the created resource were validated. 2026-10-31 05:10:37.345366 UTC - Check if resources are registered in experiment 2026-10-31 05:10:37.345530 UTC - Run: slices experiment list-resources --format json tst-1c27dca3 2026-10-31 05:10:38.010870 UTC - Status (on expauth): UP 2026-10-31 05:10:38.011004 UTC - Testing extend expires_at (all resources in experiment) 2026-10-31 05:10:38.011125 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 extend --duration 3h --experiment tst-1c27dca3 2026-10-31 05:10:40.486806 UTC - Content of log file '/test_dir/step_Checkextendexpire_command_1.txt': slices bi --infra fr-sophia2-bi-vm2 extend --duration 3h --experiment tst-1c27dca3 2026-10-31 05:10:40.487061 UTC - Content of log file '/test_dir/experiment-extend-all.txt': Extending Experiment container from 2026-10-31 07:10 UTC to 2026-10-31 08:10 UTC... Extending the resources only on infrastructure fr-sophia2-bi-vm2. Use slices bi experiment list-resources to verify other infrastructures. Extending resource on fr-sophia2-bi-vm2 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ╭───────────────────────────────────────────────────────────────────────────────── 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:101 in handle_request │ │ │ │ 98 │ │ │ │ │ │ ) │ │ 99 │ │ except BaseException as exc: │ │ 100 │ │ │ self._connect_failed = True │ │ ❱ 101 │ │ │ raise exc │ │ 102 │ │ │ │ 103 │ │ return self._connection.handle_request(request) │ │ 104 │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpcore/_sync/connection.py:78 in handle_request │ │ │ │ 75 │ │ try: │ │ 76 │ │ │ with self._request_lock: │ │ 77 │ │ │ │ if self._connection is None: │ │ ❱ 78 │ │ │ │ │ stream = self._connect(request) │ │ 79 │ │ │ │ │ │ │ 80 │ │ │ │ │ ssl_object = stream.get_extra_info("ssl_object") │ │ 81 │ │ │ │ │ http2_negotiated = ( │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpcore/_sync/connection.py:124 in _connect │ │ │ │ 121 │ │ │ │ │ │ "socket_options": self._socket_options, │ │ 122 │ │ │ │ │ } │ │ 123 │ │ │ │ │ with Trace("connect_tcp", logger, request, kwargs) as trace: │ │ ❱ 124 │ │ │ │ │ │ stream = self._network_backend.connect_tcp(**kwargs) │ │ 125 │ │ │ │ │ │ trace.return_value = stream │ │ 126 │ │ │ │ else: │ │ 127 │ │ │ │ │ kwargs = { │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/httpcore/_backends/sync.py:207 in connect_tcp │ │ │ │ 204 │ │ │ OSError: ConnectError, │ │ 205 │ │ } │ │ 206 │ │ │ │ ❱ 207 │ │ with map_exceptions(exc_map): │ │ 208 │ │ │ sock = socket.create_connection( │ │ 209 │ │ │ │ address, │ │ 210 │ │ │ │ timeout, │ │ │ │ /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/httpcore/_exceptions.py:14 in map_exceptions │ │ │ │ 11 │ except Exception as exc: # noqa: PIE786 │ │ 12 │ │ for from_exc, to_exc in map.items(): │ │ 13 │ │ │ if isinstance(exc, from_exc): │ │ ❱ 14 │ │ │ │ raise to_exc(exc) from exc │ │ 15 │ │ raise # pragma: nocover │ │ 16 │ │ 17 │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ConnectError: [Errno 111] Connection refused 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:2056 in extend_resource │ │ │ │ 2053 │ │ │ f"Extending the resources only on infrastructure {ctx.obj.infra_id}. " │ │ 2054 │ │ │ f"Use slices bi experiment list-resources to verify other infrastructures." │ │ 2055 │ │ ) │ │ ❱ 2056 │ │ _extend_all_resources_on_infra(ctx, exp, new_expires_at) │ │ 2057 │ │ _check_extend_resources(ctx, exp, new_expires_at, [], must_check_expauth_extend=must_check_expauth_extend) │ │ 2058 │ else: │ │ 2059 │ │ # extend only the specified resources │ │ │ │ /root/.local/share/uv/tools/slices-cli/lib/python3.14/site-packages/slices_cli_bi/commands/bi.py:1846 in _extend_all_resources_on_infra │ │ │ │ 1843 def _extend_all_resources_on_infra(ctx: BIContext, exp: Experiment, new_expires_at: datetime): │ │ 1844 │ try: │ │ 1845 │ │ tasks = ctx.obj.get_bi_resources_api_by_experiment(exp).update_all(new_expires_at=new_expires_at) │ │ ❱ 1846 │ │ task_results = follow_progress( │ │ 1847 │ │ │ ctx.obj.bi_tasks_api, │ │ 1848 │ │ │ [task.id for task in tasks], │ │ 1849 │ │ │ [ │ │ │ │ /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): │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ConnectError: [Errno 111] Connection refused 2026-10-31 05:10:40.487193 UTC - Error in test step 'Check extend expire': "slices bi extend" failed 2026-10-31 05:10:40.487248 UTC - Testing ssh login 2026-10-31 05:10:40.499105 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 ssh --no-exec --proxy on --show ssh_config --experiment tst-1c27dca3 tst 2026-10-31 05:10:41.415124 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 ssh --no-exec --proxy off --show server_pubkey_openssh --experiment tst-1c27dca3 tst 2026-10-31 05:10:42.331272 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 ssh --no-exec --proxy off --show proxy_pubkey_openssh --experiment tst-1c27dca3 tst 2026-10-31 05:10:43.798303 UTC - Logging in using 'slices bi ssh' 2026-10-31 05:10:43.798377 UTC - Forcing IPv4 only. 2026-10-31 05:10:43.798509 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 ssh --show nothing --experiment tst-1c27dca3 tst -- -4 uname -a 2026-10-31 05:10:46.372961 UTC - Forcing IPv4 only. 2026-10-31 05:10:46.373131 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 ssh --show nothing --experiment tst-1c27dca3 tst -- -4 uptime 2026-10-31 05:10:48.194744 UTC - CLI SSH Test passed. 2026-10-31 05:10:48.194817 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-10-31 05:10:48.194836 UTC - Uptime: 05:10:47 up 0 min, 1 user, load average: 0.77, 0.20, 0.07 2026-10-31 05:10:48.194873 UTC - Logging in using SSH over SSH proxy 2026-10-31 05:10:48.195013 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 ssh --no-exec --proxy on --show proxy_pubkey_openssh --experiment tst-1c27dca3 tst 2026-10-31 05:10:49.266901 UTC - Added paramiko HostKeyEntry for 172.28.10.154 2026-10-31 05:10:49.267155 UTC - Added paramiko HostKeyEntry for 172.28.10.154 2026-10-31 05:10:49.267219 UTC - Added paramiko HostKeyEntry for 172.28.10.154 2026-10-31 05:10:49.267900 UTC - Added paramiko HostKeyEntry for bastion1.theblueprintfactory.org 2026-10-31 05:10:49.268037 UTC - Added paramiko HostKeyEntry for bastion1.theblueprintfactory.org 2026-10-31 05:10:49.268099 UTC - Added paramiko HostKeyEntry for bastion1.theblueprintfactory.org 2026-10-31 05:10:49.268119 UTC - Connecting to proxy bastion1.theblueprintfactory.org:22 2026-10-31 05:10:49.652892 UTC - Connecting to 172.28.10.154:22 over proxy 2026-10-31 05:10:50.333928 UTC - SSH Test output: 2026-10-31 05:10:50.334019 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-10-31 05:10:50.334039 UTC - Uptime: 05:10:49 up 0 min, 1 user, load average: 0.77, 0.20, 0.07 2026-10-31 05:10:50.472094 UTC - lsb_release: Ubuntu 24.04.3 LTS 2026-10-31 05:10:50.472176 UTC - lsb_release matches expected value 2026-10-31 05:10:50.472204 UTC - SSH Test passed. 2026-10-31 05:10:50.609538 UTC - Cloud-init user-data: Hello World. The time is now Sat, 31 Oct 2026 05:10:34 +0000! 2026-10-31 05:10:50.617302 UTC - Destroying tst-1c27dca3 tst 2026-10-31 05:10:50.617474 UTC - Run: slices bi --infra fr-sophia2-bi-vm2 destroy --experiment tst-1c27dca3 tst