Make starterd print out its own version on failed applications
We already printed out application versions if they had self-reported a
timing report before crashing; however, it is useful to always have
_some_ version information, so include the starterd's own version in the
log message.
Change-Id: Ia75b8a1b2f54bc659d05b05d131acefa6e2aa8ee
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/aos/starter/subprocess.cc b/aos/starter/subprocess.cc
index b6a20f0..9606adc 100644
--- a/aos/starter/subprocess.cc
+++ b/aos/starter/subprocess.cc
@@ -725,17 +725,22 @@
stop_reason_ = static_cast<aos::starter::LastStopReason>(*read_result);
}
+ const std::string starter_version_string =
+ absl::StrCat("starter version '",
+ event_loop_->VersionString().value_or("unknown"), "'");
switch (status_) {
case aos::starter::State::STARTING: {
if (exit_code_.value() == 0) {
LOG_IF(INFO, quiet_flag_ == QuietLogging::kNo)
<< "Application '" << name_ << "' pid " << pid_
- << " exited with status " << exit_code_.value();
+ << " exited with status " << exit_code_.value() << " and "
+ << starter_version_string;
} else {
LOG_IF(WARNING, quiet_flag_ == QuietLogging::kNo ||
quiet_flag_ == QuietLogging::kNotForDebugging)
<< "Failed to start '" << name_ << "' on pid " << pid_
- << " : Exited with status " << exit_code_.value();
+ << " : Exited with status " << exit_code_.value() << " and "
+ << starter_version_string;
}
if (autorestart()) {
QueueStart();
@@ -753,13 +758,13 @@
} else {
if (quiet_flag_ == QuietLogging::kNo ||
quiet_flag_ == QuietLogging::kNotForDebugging) {
- std::string version_string =
+ const std::string version_string =
latest_timing_report_version_.has_value()
- ? absl::StrCat("'", latest_timing_report_version_.value(),
- "'")
- : "unknown";
+ ? absl::StrCat("version '",
+ latest_timing_report_version_.value(), "'")
+ : starter_version_string;
LOG_IF(WARNING, quiet_flag_ == QuietLogging::kNo)
- << "Application '" << name_ << "' pid " << pid_ << " version "
+ << "Application '" << name_ << "' pid " << pid_ << " "
<< version_string << " exited unexpectedly with status "
<< exit_code_.value();
}