fix systemd-analyze time when default.target is not reached (#7764)

Also, better error messages.
This commit is contained in:
Boucman
2018-01-03 15:52:13 +01:00
committed by Zbigniew Jędrzejewski-Szmek
parent 8481e3e71e
commit da933f7dcf
+9 -2
View File
@@ -529,7 +529,7 @@ static int pretty_boot_time(sd_bus *bus, char **_buf) {
"ActiveEnterTimestampMonotonic",
&activated_time);
if (r < 0) {
log_info_errno(r, "default.target seems not to be started. Continuing...");
log_info_errno(r, "Could not get time to reach default.target. Continuing...");
activated_time = USEC_INFINITY;
}
@@ -549,8 +549,15 @@ static int pretty_boot_time(sd_bus *bus, char **_buf) {
size = strpcpyf(&ptr, size, "%s (userspace) ", format_timespan(ts, sizeof(ts), t->finish_time - t->userspace_time, USEC_PER_MSEC));
strpcpyf(&ptr, size, "= %s", format_timespan(ts, sizeof(ts), t->firmware_time + t->finish_time, USEC_PER_MSEC));
if (unit_id && activated_time != USEC_INFINITY)
if (unit_id && (activated_time > 0 && activated_time != USEC_INFINITY))
size = strpcpyf(&ptr, size, "\n%s reached after %s in userspace", unit_id, format_timespan(ts, sizeof(ts), activated_time - t->userspace_time, USEC_PER_MSEC));
else if (unit_id && activated_time == 0)
size = strpcpyf(&ptr, size, "\n%s was never reached", unit_id);
else if (unit_id && activated_time == USEC_INFINITY)
size = strpcpyf(&ptr, size, "\nCould not get time to reach %s.",unit_id);
else if (!unit_id)
size = strpcpyf(&ptr, size, "\ncould not find default.target");
ptr = strdup(buf);
if (!ptr)