From 75b28328ffcb61f687e305287f414d3d0ce9cabb Mon Sep 17 00:00:00 2001 From: Rolv Apneseth Date: Thu, 25 Jun 2026 14:48:22 +0100 Subject: [PATCH 1/3] test/system: add --command-timeout to skopeo copy calls For some reason, calls to skopeo copy sometimes hang indefinitely. Avoid this issue by specifying --command-timeout with reasonable values (longer for call which must fetch over the network). Signed-off-by: Rolv Apneseth --- test/system/libs/helpers.bash | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/test/system/libs/helpers.bash b/test/system/libs/helpers.bash index 4b48c7009..f9f025954 100644 --- a/test/system/libs/helpers.bash +++ b/test/system/libs/helpers.bash @@ -116,7 +116,9 @@ function _pull_and_cache_distro_image() { local -i ret_val for ((j = 0; j < num_of_retries; j++)); do - error_message="$( (skopeo copy --dest-compress \ + error_message="$( (skopeo copy \ + --command-timeout 10m \ + --dest-compress \ "docker://${image}" \ "dir:${IMAGE_CACHE_DIR}/${image_archive}" >/dev/null) 2>&1)" ret_val="$?" @@ -211,7 +213,9 @@ function _setup_docker_registry() { assert_success # Add fedora-toolbox:34 image to the registry - run skopeo copy --dest-authfile "${BATS_SUITE_TMPDIR}/authfile.json" \ + run skopeo copy \ + --command-timeout 60s \ + --dest-authfile "${BATS_SUITE_TMPDIR}/authfile.json" \ dir:"${IMAGE_CACHE_DIR}"/fedora-toolbox-34 \ docker://"${DOCKER_REG_URI}"/fedora-toolbox:34 assert_success @@ -331,7 +335,10 @@ function pull_distro_image() { fi # https://github.com/containers/skopeo/issues/547 for the options for containers-storage - run skopeo copy "dir:${IMAGE_CACHE_DIR}/${image_archive}" "containers-storage:[overlay@$TOOLBX_ROOTLESS_STORAGE_PATH+$TOOLBX_ROOTLESS_STORAGE_PATH]${image}" + run skopeo copy \ + --command-timeout 60s \ + "dir:${IMAGE_CACHE_DIR}/${image_archive}" \ + "containers-storage:[overlay@$TOOLBX_ROOTLESS_STORAGE_PATH+$TOOLBX_ROOTLESS_STORAGE_PATH]${image}" # shellcheck disable=SC2154 if [ "$status" -ne 0 ]; then @@ -364,6 +371,7 @@ function pull_default_image_and_copy() { # https://github.com/containers/skopeo/issues/547 for the options for containers-storage run skopeo copy \ + --command-timeout 60s \ "containers-storage:[overlay@$TOOLBX_ROOTLESS_STORAGE_PATH+$TOOLBX_ROOTLESS_STORAGE_PATH]$image" \ "containers-storage:[overlay@$TOOLBX_ROOTLESS_STORAGE_PATH+$TOOLBX_ROOTLESS_STORAGE_PATH]$image-copy" From 1c876b86fe7b5fdc349f83c7721cb94a28ab0c07 Mon Sep 17 00:00:00 2001 From: Rolv Apneseth Date: Thu, 25 Jun 2026 15:37:06 +0100 Subject: [PATCH 2/3] test/system: ensure that the local docker registry is ready before proceeding To try and avoid potential races, ensure that the local docker registry is ready before finishing the setup. Signed-off-by: Rolv Apneseth --- test/system/libs/helpers.bash | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/system/libs/helpers.bash b/test/system/libs/helpers.bash index f9f025954..5697a516e 100644 --- a/test/system/libs/helpers.bash +++ b/test/system/libs/helpers.bash @@ -205,6 +205,23 @@ function _setup_docker_registry() { "${IMAGES[docker-reg]}" assert_success + # Ensure the registry is ready + local registry_ready=false + local -i retries + for ((retries = 0; retries < 30; retries++)); do + if timeout 5 openssl s_client \ + -connect "${DOCKER_REG_URI}" \ + -CAfile "${DOCKER_REG_CERTS_DIR}/domain.crt" \ + /dev/null 2>&1; then + registry_ready=true + break + fi + sleep 1 + done + if ! $registry_ready; then + fail "Docker registry at ${DOCKER_REG_URI} did not reach a ready state" + fi + run podman login \ --authfile "${BATS_SUITE_TMPDIR}/authfile.json" \ --username user \ From 2c1b83ccaf25eb0ae9ddb65c87314227b3a1abd1 Mon Sep 17 00:00:00 2001 From: Rolv Apneseth Date: Fri, 26 Jun 2026 11:40:01 +0100 Subject: [PATCH 3/3] fixup!: try updating registry image --- test/system/libs/helpers.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/system/libs/helpers.bash b/test/system/libs/helpers.bash index 5697a516e..2d2ea348d 100644 --- a/test/system/libs/helpers.bash +++ b/test/system/libs/helpers.bash @@ -42,7 +42,7 @@ readonly TOOLBX_TEST_SYSTEM_TAGS="${TOOLBX_TEST_SYSTEM_TAGS:-$TOOLBX_TEST_SYSTEM # Images declare -Ag IMAGES=([arch]="quay.io/toolbx/arch-toolbox" \ [busybox]="quay.io/toolbox_tests/busybox" \ - [docker-reg]="quay.io/toolbox_tests/registry" \ + [docker-reg]="ghcr.io/distribution/distribution:3" \ [fedora]="registry.fedoraproject.org/fedora-toolbox" \ [rhel]="registry.access.redhat.com/ubi8/toolbox" \ [ubuntu]="quay.io/toolbx/ubuntu-toolbox")