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