summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-06-22 14:04:23 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-06-22 15:30:24 -0400
commit04ef5b03f64d3824a51a2a903548af029a006744 (patch)
tree678209fefe491b1785f4ba8f705d862995d8056b
parent9ba6c18532b4da96ae6916865c3db44054c2af6b (diff)
core/transaction: avoid misleading error message when unit not found
There's no point in telling the user to look at the logs when an attempt to load the unit file failed with ENOENT. https://bugzilla.redhat.com/show_bug.cgi?id=996133
-rw-r--r--TODO4
-rw-r--r--src/core/transaction.c18
2 files changed, 12 insertions, 10 deletions
diff --git a/TODO b/TODO
index ff065bf201..09d8bd38a4 100644
--- a/TODO
+++ b/TODO
@@ -15,10 +15,6 @@ Bugfixes:
* properly handle .mount unit state tracking when two mount points are stacked one on top of another on the exact same mount point.
-* shorten the message to sane length:
- "Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service
- failed to load: No such file or directory. See system logs and 'systemctl status display-manager.service' for details."
-
* sd_bus_unref() is broken regarding self-references and "pseudo thread-safety".
See the comment in sd_bus_unref() for more..
diff --git a/src/core/transaction.c b/src/core/transaction.c
index 9fb6101ea9..d23a45c3f5 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -870,12 +870,18 @@ int transaction_add_job_and_dependencies(
}
if (type != JOB_STOP && unit->load_state == UNIT_ERROR) {
- sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
- "Unit %s failed to load: %s. "
- "See system logs and 'systemctl status %s' for details.",
- unit->id,
- strerror(-unit->load_error),
- unit->id);
+ if (unit->load_error == -ENOENT)
+ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
+ "Unit %s failed to load: %s.",
+ unit->id,
+ strerror(-unit->load_error));
+ else
+ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
+ "Unit %s failed to load: %s. "
+ "See system logs and 'systemctl status %s' for details.",
+ unit->id,
+ strerror(-unit->load_error),
+ unit->id);
return -EINVAL;
}