From e1efa9d8044a7564844b8d599eda4b59eb1152e9 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Tue, 15 Oct 2024 14:05:50 +0100 Subject: [PATCH] core: do not fail if ignorable img.v/ vpick dir is missing Do not fail if the directory is missing entirely, other than just empty Follow-up for 00f546e25e8 Follow-up for 5e79dd96a88 Follow-up for 622efc544dc --- src/core/namespace.c | 4 ++++ test/units/TEST-50-DISSECT.dissect.sh | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/core/namespace.c b/src/core/namespace.c index d13d57f11aa..e1a88f2455e 100644 --- a/src/core/namespace.c +++ b/src/core/namespace.c @@ -526,6 +526,8 @@ static int append_extensions( &pick_filter_image_raw, PICK_ARCHITECTURE|PICK_TRIES, &result); + if (r == -ENOENT && m->ignore_enoent) + continue; if (r < 0) return r; if (!result.path) { @@ -594,6 +596,8 @@ static int append_extensions( &pick_filter_image_dir, PICK_ARCHITECTURE|PICK_TRIES, &result); + if (r == -ENOENT && ignore_enoent) + continue; if (r < 0) return r; if (!result.path) { diff --git a/test/units/TEST-50-DISSECT.dissect.sh b/test/units/TEST-50-DISSECT.dissect.sh index 306ea1f504e..6cf12135517 100755 --- a/test/units/TEST-50-DISSECT.dissect.sh +++ b/test/units/TEST-50-DISSECT.dissect.sh @@ -428,12 +428,13 @@ systemctl is-active testservice-50e.service VBASE="vtest$RANDOM" VDIR="/tmp/$VBASE.v" EMPTY_VDIR="/tmp/$VBASE-empty.v" +NONEXISTENT_VDIR="/tmp/$VBASE-nonexistent.v" mkdir "$VDIR" "$EMPTY_VDIR" ln -s /tmp/app0.raw "$VDIR/${VBASE}_0.raw" ln -s /tmp/app1.raw "$VDIR/${VBASE}_1.raw" -systemd-run -P -p ExtensionImages="$VDIR -$EMPTY_VDIR" bash -c '/opt/script1.sh | grep ID' +systemd-run -P -p ExtensionImages="$VDIR -$EMPTY_VDIR -$NONEXISTENT_VDIR" bash -c '/opt/script1.sh | grep ID' rm -rf "$VDIR" "$EMPTY_VDIR" @@ -504,12 +505,13 @@ systemctl is-active testservice-50f.service VBASE="vtest$RANDOM" VDIR="/tmp/$VBASE.v" EMPTY_VDIR="/tmp/$VBASE-empty.v" +NONEXISTENT_VDIR="/tmp/$VBASE-nonexistent.v" mkdir "$VDIR" "$EMPTY_VDIR" ln -s "$IMAGE_DIR/app0" "$VDIR/${VBASE}_0" ln -s "$IMAGE_DIR/app1" "$VDIR/${VBASE}_1" -systemd-run -P --property ExtensionDirectories="$VDIR -$EMPTY_VDIR" cat /opt/script1.sh | grep -q -F "extension-release.app2" +systemd-run -P --property ExtensionDirectories="$VDIR -$EMPTY_VDIR -$NONEXISTENT_VDIR" cat /opt/script1.sh | grep -q -F "extension-release.app2" rm -rf "$VDIR" "$EMPTY_VDIR"