summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/lib_errors.c6
-rw-r--r--lib/lib_errors.h1
-rw-r--r--lib/thread.c6
3 files changed, 13 insertions, 0 deletions
diff --git a/lib/lib_errors.c b/lib/lib_errors.c
index acc9a05c33..a658e4c295 100644
--- a/lib/lib_errors.c
+++ b/lib/lib_errors.c
@@ -69,6 +69,12 @@ static struct log_ref ferr_lib_warn[] = {
.suggestion = "Gather log data and open an Issue",
},
{
+ .code = EC_LIB_TIMER_TOO_LONG,
+ .title = "The Event subsystem has detected an internal timer that is scheduled to pop in greater than one year",
+ .description = "The Event subsystem has detected a timer being started that will pop in a timer that is greater than one year. This is a bug, please collect log data and open an issue.",
+ .suggestion = "Gather log data and open an Issue",
+ },
+ {
.code = EC_LIB_RMAP_RECURSION_LIMIT,
.title = "Reached the Route-Map Recursion Limit",
.description = "The Route-Map subsystem has detected a route-map depth of RMAP_RECURSION_LIMIT and has stopped processing",
diff --git a/lib/lib_errors.h b/lib/lib_errors.h
index 64ac6c1ceb..91f206f74a 100644
--- a/lib/lib_errors.h
+++ b/lib/lib_errors.h
@@ -48,6 +48,7 @@ enum lib_log_refs {
EC_LIB_SLOW_THREAD_WALL,
EC_LIB_STARVE_THREAD,
EC_LIB_NO_THREAD,
+ EC_LIB_TIMER_TOO_LONG,
EC_LIB_RMAP_RECURSION_LIMIT,
EC_LIB_BACKUP_CONFIG,
EC_LIB_VRF_LENGTH,
diff --git a/lib/thread.c b/lib/thread.c
index 58b8e206fa..bc3bfe89d4 100644
--- a/lib/thread.c
+++ b/lib/thread.c
@@ -1052,6 +1052,12 @@ static void _thread_add_timer_timeval(const struct xref_threadsched *xref,
if (thread_timer_list_first(&m->timer) == thread)
AWAKEN(m);
}
+#define ONEYEAR2SEC (60 * 60 * 24 * 365)
+ if (time_relative->tv_sec > ONEYEAR2SEC)
+ flog_err(
+ EC_LIB_TIMER_TOO_LONG,
+ "Timer: %pTHD is created with an expiration that is greater than 1 year",
+ thread);
}