Netlink: fix occasional netlink hangs on busy machines
This commit is contained in:
parent
7d95c44572
commit
2c33da5070
2 changed files with 3 additions and 1 deletions
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue