@@ -279,7 +279,7 @@ int calculateExitCode(DeviceSpecs& deviceSpecs, DeviceInfos& infos)
279279 auto & spec = deviceSpecs[di];
280280 if (exitCode == 0 && info.maxLogLevel >= LogParsingHelpers::LogLevel::Error) {
281281 LOG (ERROR) << " SEVERE: Device " << spec.name << " (" << info.pid << " ) had at least one "
282- << " message above severity ERROR: " << std::regex_replace (info.firstError , regexp, " " );
282+ << " message above severity ERROR: " << std::regex_replace (info.firstSevereError , regexp, " " );
283283 exitCode = 1 ;
284284 }
285285 }
@@ -870,14 +870,16 @@ LogProcessingState processChildrenOutput(DriverInfo& driverInfo,
870870 }
871871 // We keep track of the maximum log error a
872872 // device has seen.
873+ bool maxLogLevelIncreased = false ;
873874 if (logLevel > info.maxLogLevel && logLevel > LogParsingHelpers::LogLevel::Info &&
874875 logLevel != LogParsingHelpers::LogLevel::Unknown) {
875876 info.maxLogLevel = logLevel;
877+ maxLogLevelIncreased = true ;
876878 }
877- if (logLevel = = LogParsingHelpers::LogLevel::Error) {
879+ if (logLevel > = LogParsingHelpers::LogLevel::Error) {
878880 info.lastError = token;
879- if (info.firstError .empty ()) {
880- info.firstError = token;
881+ if (info.firstSevereError .empty () || maxLogLevelIncreased ) {
882+ info.firstSevereError = token;
881883 }
882884 }
883885 s.remove_prefix (pos + delimiter.length ());
@@ -1102,11 +1104,11 @@ int runStateMachine(DataProcessorSpecs const& workflow,
11021104 auto initDebugGUI = []() -> DebugGUI* {
11031105 uv_lib_t supportLib;
11041106 int result = 0 ;
1105- #ifdef __APPLE__
1107+ #ifdef __APPLE__
11061108 result = uv_dlopen (" libO2FrameworkGUISupport.dylib" , &supportLib);
1107- #else
1109+ #else
11081110 result = uv_dlopen (" libO2FrameworkGUISupport.so" , &supportLib);
1109- #endif
1111+ #endif
11101112 if (result == -1 ) {
11111113 LOG (ERROR) << uv_dlerror (&supportLib);
11121114 return nullptr ;
0 commit comments