From: Donald Sharp Date: Sun, 2 May 2021 11:39:36 +0000 (-0400) Subject: lib: Provide some better error handling for operator X-Git-Tag: base_8.0~74^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=refs%2Fpull%2F8607%2Fhead;p=mirror%2Ffrr.git 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 --- 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