@cryptotaxi247 / netdata-1 / commits / d09924b95

fix reliability calculation (#19909)

* if the status has exited in it, the agent is successfully exited * fix reliability calculation * fix crash calculation

Costa Tsaousis committed Mar 19, 2025 at 20:32 UTC d09924b9536cae30a9c604006e411257ae462aaa
2 files changed +4 -5
src/daemon/daemon-status-file.c
+3 -4
@@ -562,9 +562,7 @@ static void daemon_status_file_migrate_once(void) {
562 session_status.restarts = last_session_status.restarts + 1;
563 session_status.reliability = last_session_status.reliability;
564
565 - bool crashed = last_session_status.status != DAEMON_STATUS_NONE && last_session_status.status != DAEMON_STATUS_EXITED;
566 - bool exited_with_fatal = last_session_status.status == DAEMON_STATUS_EXITED && last_session_status.exit_reason != EXIT_REASON_NONE && !is_exit_reason_normal(last_session_status.exit_reason);
567 - if(crashed || exited_with_fatal) {
565 + if(daemon_status_file_has_last_crashed()) {
566 if(session_status.reliability > 0) session_status.reliability = 0;
567 session_status.reliability--;
568 }
@@ -1494,7 +1492,8 @@ void daemon_status_file_shutdown_step(const char *step) {
1492 // --------------------------------------------------------------------------------------------------------------------
1493
1494 bool daemon_status_file_has_last_crashed(void) {
1497 - return last_session_status.status != DAEMON_STATUS_EXITED || !is_exit_reason_normal(last_session_status.exit_reason);
1495 + return (last_session_status.status != DAEMON_STATUS_NONE && last_session_status.status != DAEMON_STATUS_EXITED) ||
1496 + !is_exit_reason_normal(last_session_status.exit_reason);
1497 }
1498
1499 bool daemon_status_file_was_incomplete_shutdown(void) {
src/libnetdata/exit/exit_initiated.h
+1 -1
@@ -81,7 +81,7 @@ typedef enum {
81 )
82
83 #define is_deadly_signal(reason) ((reason) & (EXIT_REASON_DEADLY_SIGNAL))
84 -#define is_exit_reason_normal(reason) (((reason) & EXIT_REASON_NORMAL) && !((reason) & EXIT_REASON_ABNORMAL))
84 +#define is_exit_reason_normal(reason) (((reason == EXIT_REASON_NONE) || ((reason) & EXIT_REASON_NORMAL)) && !((reason) & EXIT_REASON_ABNORMAL))
85
86 typedef struct web_buffer BUFFER;
87 BITMAP_STR_DEFINE_FUNCTIONS_EXTERN(EXIT_REASON);