From 188acbb9a39ef2954b8ac08ed90a41de4fbae8c8 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Sun, 2 May 2021 07:39:36 -0400 Subject: [PATCH] lib: Provide some better error handling for operator When an operator encounters a situation where the number of FD's open is greater than what we have been configured to legitimately handle via uname or the `--limit-fds` command line, abort with a message that they should be able to debug and figure out what is going on. Fixes: #8596 Signed-off-by: Donald Sharp --- lib/thread.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/thread.c b/lib/thread.c index 3d8b544678..7b5d2f3113 100644 --- a/lib/thread.c +++ b/lib/thread.c @@ -862,7 +862,10 @@ struct thread *_thread_add_read_write(const struct xref_threadsched *xref, xref->funcname, xref->xref.file, xref->xref.line, t_ptr, fd, 0, arg, 0); - assert(fd >= 0 && fd < m->fd_limit); + assert(fd >= 0); + if (fd >= m->fd_limit) + assert(!"Number of FD's open is greater than FRR currently configured to handle, aborting"); + frr_with_mutex(&m->mtx) { if (t_ptr && *t_ptr) // thread is already scheduled; don't reschedule -- 2.39.5