You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.7 KiB
65 lines
2.7 KiB
From caff38650c2c1ae9244a30b87275db3d3a5e3b5d Mon Sep 17 00:00:00 2001 |
|
From: Lennart Poettering <lennart@poettering.net> |
|
Date: Tue, 28 Apr 2015 12:12:29 +0200 |
|
Subject: [PATCH] bus-util: print correct warnings for units that fail but for |
|
which we have a NULL result only |
|
|
|
Cherry-picked from: 373a99e |
|
Related: #1016680 |
|
--- |
|
src/libsystemd/sd-bus/bus-util.c | 34 +++++++++++++++++++------------- |
|
1 file changed, 20 insertions(+), 14 deletions(-) |
|
|
|
diff --git a/src/libsystemd/sd-bus/bus-util.c b/src/libsystemd/sd-bus/bus-util.c |
|
index 017fbaf2a3..e48abf55a3 100644 |
|
--- a/src/libsystemd/sd-bus/bus-util.c |
|
+++ b/src/libsystemd/sd-bus/bus-util.c |
|
@@ -1724,28 +1724,34 @@ static const struct { |
|
}; |
|
|
|
static void log_job_error_with_service_result(const char* service, const char *result) { |
|
- unsigned i; |
|
_cleanup_free_ char *service_shell_quoted = NULL; |
|
|
|
assert(service); |
|
- assert(result); |
|
|
|
service_shell_quoted = shell_maybe_quote(service); |
|
|
|
- for (i = 0; i < ELEMENTSOF(explanations); ++i) |
|
- if (streq(result, explanations[i].result)) |
|
- break; |
|
+ if (!isempty(result)) { |
|
+ unsigned i; |
|
|
|
- if (i < ELEMENTSOF(explanations)) |
|
- log_error("Job for %s failed because %s. See \"systemctl status %s\" and \"journalctl -xe\" for details.\n", |
|
- service, |
|
- explanations[i].explanation, |
|
- strna(service_shell_quoted)); |
|
- else |
|
- log_error("Job for %s failed. See \"systemctl status %s\" and \"journalctl -xe\" for details.\n", |
|
- service, |
|
- strna(service_shell_quoted)); |
|
+ for (i = 0; i < ELEMENTSOF(explanations); ++i) |
|
+ if (streq(result, explanations[i].result)) |
|
+ break; |
|
+ |
|
+ if (i < ELEMENTSOF(explanations)) { |
|
+ log_error("Job for %s failed because %s. See \"systemctl status %s\" and \"journalctl -xe\" for details.\n", |
|
+ service, |
|
+ explanations[i].explanation, |
|
+ strna(service_shell_quoted)); |
|
|
|
+ goto finish; |
|
+ } |
|
+ } |
|
+ |
|
+ log_error("Job for %s failed. See \"systemctl status %s\" and \"journalctl -xe\" for details.\n", |
|
+ service, |
|
+ strna(service_shell_quoted)); |
|
+ |
|
+finish: |
|
/* For some results maybe additional explanation is required */ |
|
if (streq_ptr(result, "start-limit")) |
|
log_info("To force a start use \"systemctl reset-failed %1$s\" followed by \"systemctl start %1$s\" again.",
|
|
|