Hi,
We are using the apache nio http client library, and are running into issues
where the ioreactor is active, but one of the dispatcher is shutdown. When the
dispatcher was shutdown, no exception was thrown (in some cases OutOfMemory was
thrown), and so the exception value is not set.
Here is the code snippet (Worker in AbstractMultiworkerIOReactor.java):
@Override public void run() { try {
this.dispatcher.execute(this.eventDispatch); } catch (final
Exception ex) { this.exception = ex; } }
Now in this case if a throwable is thrown or if the dispatcher exits in some
other fashion, the exception bit is not set. Due to this the dispatcher is
considered healthy, and we continue to send requests to the dispatcher which it
cannot service, and keeps around in the memory, thus causing memory leak. There
is no code to prevent the dispatcher from accepting request if it is in
shutdown mode.
Can you please let me know if this is a known issue? We would like to see if we
can get a patch to help fix the issue, we can help provide the patch if
required.
regards,nitu