@@ -514,13 +514,15 @@ sub add_defaults {
514
514
515
515
# ##############################
516
516
my $safe_defaults_added_already ;
517
+ $c -> stash-> {' data_source_error' } = " " ;
517
518
if (!$c -> config-> {' _lmd_federation_checked' } && ($ENV {' THRUK_USE_LMD' } || $c -> config-> {' lmd_remote' })) {
518
519
# required on first run to expand federation peers
519
520
eval {
520
521
$c -> db-> reset_failed_backends($c );
521
522
set_processinfo($c , ADD_SAFE_DEFAULTS, $cached_data );
522
523
$safe_defaults_added_already = 1;
523
524
};
525
+ $c -> stash-> {' data_source_error' } = $@ if $@ ;
524
526
}
525
527
my $disabled_backends = set_enabled_backends($c );
526
528
@@ -552,13 +554,16 @@ sub add_defaults {
552
554
sleep 1;
553
555
}
554
556
if ($err ) {
557
+ $c -> stash-> {' data_source_error' } = $err ;
555
558
# index.html and some other pages should not be redirect to the error page on backend errors
556
559
set_possible_backends($c , $disabled_backends );
557
560
if (Thruk::Base-> debug) {
558
561
_warn(" data source error: $err " );
559
562
} else {
560
563
_debug(" data source error: $err " );
561
564
}
565
+ } else {
566
+ $c -> stash-> {' data_source_error' } = " " ;
562
567
}
563
568
$c -> stash-> {' last_program_restart' } = $last_program_restart ;
564
569
@@ -913,6 +918,10 @@ sub _calculate_section_totals {
913
918
if ($backend_detail -> {$pd }-> {' last_error' }) {
914
919
$last_error = $backend_detail -> {$pd }-> {' last_error' };
915
920
}
921
+ if ($last_error eq ' OK' && $class eq ' DOWN' && $c -> stash-> {' data_source_error' }) {
922
+ # might happen on global internal Manager.pm errors
923
+ $last_error = $c -> stash-> {' data_source_error' };
924
+ }
916
925
$initial_backends -> {$pd }-> {' last_error' } = $last_error ;
917
926
}
918
927
}
0 commit comments