vlib epoll: handle file removal on EPOLLIN 78/19078/2
authorFlorin Coras <fcoras@cisco.com>
Mon, 22 Apr 2019 16:49:10 +0000 (09:49 -0700)
committerDave Wallace <dwallacelf@gmail.com>
Mon, 22 Apr 2019 18:31:31 +0000 (18:31 +0000)
Change-Id: I7a3526a8fdf17afb8cc2225bdfbd57f661680992
Signed-off-by: Florin Coras <fcoras@cisco.com>
src/vlib/unix/input.c

index 318043e..7f49b95 100644 (file)
@@ -288,6 +288,8 @@ linux_epoll_input_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
              f->read_events++;
              errors[n_errors] = f->read_function (f);
              /* Make sure f is valid if the file pool moves */
+             if (pool_is_free_index (fm->file_pool, i))
+               continue;
              f = pool_elt_at_index (fm->file_pool, i);
              n_errors += errors[n_errors] != 0;
            }