Netlink: fix occasional netlink hangs on busy machines

This commit is contained in:
Jan Moskyto Matejka 2016-12-20 20:13:08 +01:00
parent 7d95c44572
commit 2c33da5070
2 changed files with 3 additions and 1 deletions

View file

@ -1497,6 +1497,7 @@ nl_async_hook(sock *sk, uint size UNUSED)
* One day we might react to it by asking for route table * One day we might react to it by asking for route table
* scan in near future. * scan in near future.
*/ */
log(L_WARN "Kernel dropped some netlink messages, will resync on next scan.");
return 1; /* More data are likely to be ready */ return 1; /* More data are likely to be ready */
} }
else if (errno != EWOULDBLOCK) else if (errno != EWOULDBLOCK)

View file

@ -2238,7 +2238,8 @@ io_loop(void)
if (pfd[s->index].revents & (POLLHUP | POLLERR)) if (pfd[s->index].revents & (POLLHUP | POLLERR))
{ {
sk_err(s, pfd[s->index].revents); sk_err(s, pfd[s->index].revents);
goto next2; if (s != current_sock)
goto next2;
} }
current_sock = sk_next(s); current_sock = sk_next(s);