From d023a0ceec496353a588d8073aae953bb25c6686 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Thu, 1 Feb 2024 21:18:50 -0500 Subject: [PATCH] lib: Warn operator when fd limit is set too large It's unlikely that an operator will ever set a fd limit of over 100k. Let's warn the operator that things are in a bit of a wonky state. Fixes: #15280 Signed-off-by: Donald Sharp --- lib/event.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/event.c b/lib/event.c index a7851f698319..6427705e90a3 100644 --- a/lib/event.c +++ b/lib/event.c @@ -543,6 +543,7 @@ static void initializer(void) pthread_key_create(&thread_current, NULL); } +#define STUPIDLY_LARGE_FD_SIZE 100000 struct event_loop *event_master_create(const char *name) { struct event_loop *rv; @@ -569,6 +570,10 @@ struct event_loop *event_master_create(const char *name) rv->fd_limit = (int)limit.rlim_cur; } + if (rv->fd_limit > STUPIDLY_LARGE_FD_SIZE) + zlog_warn("FD Limit set: %u is stupidly large. Is this what you intended? Consider using --limit-fds", + rv->fd_limit); + rv->read = XCALLOC(MTYPE_EVENT_POLL, sizeof(struct event *) * rv->fd_limit);