@@ -436,7 +436,7 @@ func checkSystemdUnitStuck(output string, m Machine) error {
436
436
}
437
437
NRestarts , _ = strconv .Atoi (string (out ))
438
438
if NRestarts >= 2 {
439
- return fmt .Errorf ("systemd units %s has %v restarts" , unit , NRestarts )
439
+ return fmt .Errorf ("systemd unit %s has %v restarts" , unit , NRestarts )
440
440
}
441
441
}
442
442
return nil
@@ -489,7 +489,6 @@ func CheckMachine(ctx context.Context, m Machine) error {
489
489
// check systemd version on host to see if we can use `busctl --json=short`
490
490
var systemdVer int
491
491
var systemdCmd , failedUnitsCmd , activatingUnitsCmd string
492
- var systemdFailures bool
493
492
minSystemdVer := 240
494
493
out , stderr , err = m .SSH ("rpm -q --queryformat='%{VERSION}\n ' systemd" )
495
494
if err != nil {
@@ -511,31 +510,23 @@ func CheckMachine(ctx context.Context, m Machine) error {
511
510
if err != nil {
512
511
return fmt .Errorf ("failed to query systemd for failed units: %s: %v: %s" , out , err , stderr )
513
512
}
514
- err = checkSystemdUnitFailures (string (out ))
515
- if err != nil {
516
- plog .Error (err )
517
- systemdFailures = true
518
- }
513
+ failed_err := checkSystemdUnitFailures (string (out ))
519
514
520
515
// Ensure no systemd units stuck in activating state
521
516
out , stderr , err = m .SSH (activatingUnitsCmd )
522
517
if err != nil {
523
518
return fmt .Errorf ("failed to query systemd for activating units: %s: %v: %s" , out , err , stderr )
524
519
}
525
- err = checkSystemdUnitStuck (string (out ), m )
526
- if err != nil {
527
- plog .Error (err )
528
- systemdFailures = true
529
- }
520
+ stuck_err := checkSystemdUnitStuck (string (out ), m )
530
521
531
- if systemdFailures && ! m .RuntimeConf ().AllowFailedUnits {
522
+ if ( failed_err != nil || stuck_err != nil ) && ! m .RuntimeConf ().AllowFailedUnits {
532
523
if m .RuntimeConf ().SSHOnTestFailure {
533
- plog .Error ("dropping to shell: detected failed or stuck systemd units" )
524
+ plog .Errorf ("dropping to shell: detected failed or stuck systemd units: %v; %v" , failed_err , stuck_err )
534
525
if err := Manhole (m ); err != nil {
535
526
plog .Errorf ("failed to get terminal via ssh: %v" , err )
536
527
}
537
528
}
538
- return fmt .Errorf ("detected failed or stuck systemd units" )
529
+ return fmt .Errorf ("detected failed or stuck systemd units: %v; %v" , failed_err , stuck_err )
539
530
}
540
531
541
532
return ctx .Err ()
0 commit comments