Bill Boebel wrote:
- If I switch to poll instead of epoll, everything works fine. Any ideas?
epoll is broken since 1alpha4. By chance, I looked into the code tonight and found that io_loop_handle_add calls epoll_ctl sometimes with MOD on fds that were just DELeted before. This is caused by iolist_del, which always returns TRUE. I don't fully understand the code (and it looks a little overcomplicated to me, considering the epoll code I wrote myself), but the attached mini patch makes epoll work again in my setup. Don't know if this is a complete fix, though. Timo, could you look into this and confirm/negate, please? --- dovecot/src/lib/ioloop-epoll.c +++ dovecot.epoll/src/lib/ioloop-epoll.c @@ -139,7 +139,7 @@ if (list->ios[i] == io) list->ios[i] = NULL; else - last = TRUE; + last = FALSE; } } return last;