Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
1.4.8
-
None
Description
It is a bit strange, we will abort the RS if OOM in Listener thread, Responder thread and in CallRunner thread, only not in Reader thread...
We should abort RS if OOM happens in Reader thread, too. If not, the reader thread exists because of OOM, and the selector closes. Later connection select to this reader will be ignored
try { if (key.isValid()) { if (key.isAcceptable()) doAccept(key); } } catch (IOException ignored) { if (LOG.isTraceEnabled()) LOG.trace("ignored", ignored); }
Leaving the client (or Master and other RS)'s call wait until SocketTimeout.