]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
run: ignore bus connection error in acquiring invocation ID 37763/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 6 Jun 2025 10:50:34 +0000 (19:50 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 6 Jun 2025 15:01:15 +0000 (00:01 +0900)
Similar to 2b983b43c6e4a0dc9d58671eaf2f508a8ce8e3b9, but for acquiring
invocation ID.

Fixes #37675.

src/run/run.c

index 02c3d8a8e82ca73a1d635d501356eba07f941b1b..ab620bb5cd15c4f6db24223138c33144f03e6e31 100644 (file)
@@ -2063,8 +2063,18 @@ static int acquire_invocation_id(sd_bus *bus, const char *unit, sd_id128_t *ret)
                                 &error,
                                 &reply,
                                 "ay");
-        if (r < 0)
+        if (r < 0) {
+                /* Let's ignore connection errors. This might be caused by that the service manager is being
+                 * restarted. Handle this gracefully. */
+                if (bus_error_is_connection(&error) || bus_error_is_unknown_service(&error)) {
+                        log_debug_errno(r, "Invocation ID request failed due to bus connection problems, ignoring: %s",
+                                        bus_error_message(&error, r));
+                        *ret = SD_ID128_NULL;
+                        return 0;
+                }
+
                 return log_error_errno(r, "Failed to request invocation ID for unit: %s", bus_error_message(&error, r));
+        }
 
         r = bus_message_read_id128(reply, ret);
         if (r < 0)