From: Valentin David Date: Mon, 30 Mar 2026 07:49:13 +0000 (+0200) Subject: sysupdate: Ignore resources that are not pending X-Git-Tag: v261-rc1~684 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bd2c3d35cedad47f6aede9951a6a1f61c94e40b1;p=thirdparty%2Fsystemd.git sysupdate: Ignore resources that are not pending `updatectl enable --now` systematically fails because the update phase find resources that are not pending. So instead we should ignore them. Fixes #41254 --- diff --git a/src/sysupdate/sysupdate-transfer.c b/src/sysupdate/sysupdate-transfer.c index 46f3129f5d9..35c0e05083b 100644 --- a/src/sysupdate/sysupdate-transfer.c +++ b/src/sysupdate/sysupdate-transfer.c @@ -1609,8 +1609,10 @@ int transfer_process_partial_and_pending_instance(Transfer *t, Instance *i) { /* Does this instance already exist in the target but isn’t pending? */ existing = resource_find_instance(&t->target, i->metadata.version); - if (existing && !existing->is_pending) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Failed to acquire '%s', instance is already in the target but is not pending.", i->path); + if (existing && !existing->is_pending) { + log_info("Resource '%s' instance is already in the target but is not pending.", i->path); + return 0; + } /* All we need to do is compute the temporary paths. We don’t need to do any of the other work in * transfer_acquire_instance(). */ diff --git a/test/units/TEST-72-SYSUPDATE.sh b/test/units/TEST-72-SYSUPDATE.sh index fc83a42e55d..b929485bd5b 100755 --- a/test/units/TEST-72-SYSUPDATE.sh +++ b/test/units/TEST-72-SYSUPDATE.sh @@ -352,7 +352,7 @@ EOF mkdir "$CONFIGDIR/optional.feature.d" echo -e "[Feature]\nEnabled=true" > "$CONFIGDIR/optional.feature.d/enable.conf" "$SYSUPDATE" --offline list v5 | grep "incomplete" >/dev/null - update_now "monolithic" + update_now "$update_type" "$SYSUPDATE" --offline list v5 | grep -v "incomplete" >/dev/null verify_version "$blockdev" "$sector_size" v3 1 verify_version_current "$blockdev" "$sector_size" v5 2