From efa81390612d020f4e311c23a489ec45244e347f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20L=C3=BCke?= Date: Tue, 8 Sep 2026 21:16:05 +0900 Subject: [PATCH] sysext: refresh confexts before sysexts on sysupdate notifications The extension refresh on update did sysext first and then confext but the units until the previous commit didn't have any ordering. Since it makes sense to first merge configuration and then the service that might be influenced by that configuration, this ordering was chosen for the unit startup path. Align the update refresh order with the unit startup order. (cherry picked from commit 2d5e73a485f892059e12d95ef69964bd40d04457) --- src/sysext/sysext.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/sysext/sysext.c b/src/sysext/sysext.c index f29162f3e4..e31d38d83f 100644 --- a/src/sysext/sysext.c +++ b/src/sysext/sysext.c @@ -3030,12 +3030,13 @@ static int vl_method_on_completed_update(sd_varlink *link, sd_json_variant *para /* Triggered by systemd-sysupdate after an update completed. We deliberately ignore all parameters * (we don't even dispatch them). This method is reached through the sysext socket, but a single * notification refreshes both image classes, so freshly downloaded sysexts and confexts are both - * picked up, equivalent to "systemd-sysext refresh" plus "systemd-confext refresh". We attempt both - * classes and only fail afterwards, so a problem with one does not prevent refreshing the other. */ + * picked up, equivalent to "systemd-confext refresh" plus "systemd-sysext refresh", in the same order + * as at boot. We attempt both classes and only fail afterwards, so a problem with one does not + * prevent refreshing the other. */ r = 0; - RET_GATHER(r, refresh_class(IMAGE_SYSEXT)); RET_GATHER(r, refresh_class(IMAGE_CONFEXT)); + RET_GATHER(r, refresh_class(IMAGE_SYSEXT)); if (r < 0) return r;