diff --git a/src/libs/zbxalgo/prediction.c b/src/libs/zbxalgo/prediction.c index e8384727cf6..95734ba179f 100644 --- a/src/libs/zbxalgo/prediction.c +++ b/src/libs/zbxalgo/prediction.c @@ -1188,7 +1188,12 @@ out: { result = ZBX_MATH_ERROR; } - else if (0 == isfinite(result) || 0.0 > result || DBL_MAX < result) + else if (0 != isnan(result)) + { + zabbix_log(LOG_LEVEL_DEBUG, "numerical error"); + result = ZBX_MATH_ERROR; + } + else if (0.0 > result || DBL_MAX < result) { result = DBL_MAX; } diff --git a/tests/libs/zbxcalc/zbx_evaluate_function.yaml b/tests/libs/zbxcalc/zbx_evaluate_function.yaml index da6d3424e51..642e590cb14 100644 --- a/tests/libs/zbxcalc/zbx_evaluate_function.yaml +++ b/tests/libs/zbxcalc/zbx_evaluate_function.yaml @@ -1542,7 +1542,7 @@ in: params: '#3,-1' out: return: SUCCEED - value: 1.7976931348623158e+308 + value: -1 --- test case: Evaluate timeleft(5m,65) in: @@ -4682,7 +4682,7 @@ in: params: '#3,1.7976931348623158e+308,"logarithmic"' out: return: SUCCEED - value: 1.7976931348623158E+308 + value: -1 --- test case: Evaluate lastclock() <- 0.1, 0.2 in: