The list of epoll events contains references to channels which may be stale when one of those channels is deleted. The safest thing to do is simply refresh epoll() whenever a channel is deleted.
Bug #16057. Signed-off-by: Ethan Jackson <et...@nicira.com> --- lib/dpif-linux.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/dpif-linux.c b/lib/dpif-linux.c index 7293063..b863a2e 100644 --- a/lib/dpif-linux.c +++ b/lib/dpif-linux.c @@ -358,6 +358,7 @@ del_channel(struct dpif_linux *dpif, uint32_t port_no) } epoll_ctl(dpif->epoll_fd, EPOLL_CTL_DEL, nl_sock_fd(ch->sock), NULL); + dpif->event_offset = dpif->n_events = 0; nl_sock_destroy(ch->sock); ch->sock = NULL; -- 1.7.9.5 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev