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);