title: org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker terminated abnormally
body: <p>I have a service which uses apache HttpAsyncClient. (versions: httpasyncclient-4.0.2.jar, httpcore-4.4.3.jar, httpcore-nio-4.3.3.jar)</p>
  
  <p>All requests start failing some time after starting the async client with following being initial exception -</p>
  
  <pre><code>[#|2016-03-16T22:31:59.376-0700|SEVERE|glassfish3.1.2|org.apache.http.impl.nio.client.InternalHttpAsyncClient|_ThreadID=564;_ThreadName=Thread-6;|I/O reactor terminated abnormally
  org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker terminated abnormally
          at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:357)
          at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:189)
          at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase.doExecute(CloseableHttpAsyncClientBase.java:67)
          at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase.access$000(CloseableHttpAsyncClientBase.java:38)
          at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:57)
          at java.lang.Thread.run(Unknown Source)
  Caused by: RestException(statusCode=500, code=null, message=I/O operation failed, developerMessage=RestException(statusCode=500, code=null, message=I/O operation failed, developerMessage=null)
          at com.notificationservice.analytics.client.AsyncResponse$2.failed(AsyncResponse.java:178)
          at org.apache.http.concurrent.BasicFuture.failed(BasicFuture.java:134)
          at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.failed(DefaultClientExchangeHandlerImpl.java:258)
          at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.exception(HttpAsyncRequestExecutor.java:127)
          at org.apache.http.impl.nio.client.InternalIODispatch.onException(InternalIODispatch.java:68)
          at org.apache.http.impl.nio.client.InternalIODispatch.onException(InternalIODispatch.java:37)
          at org.apache.http.impl.nio.reactor.AbstractIODispatch.outputReady(AbstractIODispatch.java:154)
          at org.apache.http.impl.nio.reactor.BaseIOReactor.writable(BaseIOReactor.java:180)
          at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:342)
          at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:316)
          at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:277)
          at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:105)
          at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:586)
          at java.lang.Thread.run(Unknown Source)
  )
          at com.notificationservice.client.AsyncResponse$2.failed(AsyncResponse.java:178)
          at org.apache.http.concurrent.BasicFuture.failed(BasicFuture.java:134)
          at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.failed(DefaultClientExchangeHandlerImpl.java:258)
          at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.exception(HttpAsyncRequestExecutor.java:127)
          at org.apache.http.impl.nio.client.InternalIODispatch.onException(InternalIODispatch.java:68)
          at org.apache.http.impl.nio.client.InternalIODispatch.onException(InternalIODispatch.java:37)
          at org.apache.http.impl.nio.reactor.AbstractIODispatch.outputReady(AbstractIODispatch.java:154)
          at org.apache.http.impl.nio.reactor.BaseIOReactor.writable(BaseIOReactor.java:180)
          at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:342)
          at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:316)
          at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:277)
          at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:105)
          at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:586)
          ... 1 more
  </code></pre>
  
  <p>Same problem happens with new versions - httpasyncclient-4.1.1.jar, httpcore-4.4.4.jar, httpcore-nio-4.4.4.jar</p>
  
  <p>Any insight would be highly appreciated. Is there some IOReactorConfig parameter which needs to be changed?</p>