You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by Rae Egli <re...@yahoo.com> on 2008/09/05 06:43:59 UTC
HttpCore: CancelledKeyException
Has anybody run into this situation lately? I wonder if it is a race condition as by slowing the process down with the debugger, I can prevent it from occurring.
java.nio.channels.CancelledKeyException
at sun.nio.ch.SelectionKeyImpl.ensureValid(Unknown Source)
at sun.nio.ch.SelectionKeyImpl.interestOps(Unknown Source)
at org.apache.http.impl.nio.reactor.IOSessionImpl.getEventMask(IOSessionImpl.java:95)
at org.apache.http.impl.nio.reactor.BaseIOReactor.validate(BaseIOReactor.java:145)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:147)
at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:70)
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:364)
at java.lang.Thread.run(Unknown Source)
2008/09/04 20:22:40:833 PDT [ERROR] com.rewindweb.proxy.HttpProxyNioTP - .run: connectingIOReactor.execute incurred I/O error:I/O dispatch worker 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:200)
at com.rewindweb.proxy.HttpProxyNioTP$ConnectingIOReactorThread.run(HttpProxyNioTP.java:237)
Caused by: java.nio.channels.CancelledKeyException
at sun.nio.ch.SelectionKeyImpl.ensureValid(Unknown Source)
at sun.nio.ch.SelectionKeyImpl.interestOps(Unknown Source)
at org.apache.http.impl.nio.reactor.IOSessionImpl.getEventMask(IOSessionImpl.java:95)
at org.apache.http.impl.nio.reactor.BaseIOReactor.validate(BaseIOReactor.java:145)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:147)
at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:70)
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:364)
at java.lang.Thread.run(Unknown Source)
I wonder if it is happening in a condition where the socket is closed right after receiving a write and still issues a read event which it later cannot handle. I will have to ignore the exception it looks like and restart the IOReactor thread(s).
I just wanted to ask if there are any good answers for this situation out there.
Rae
Re: HttpCore: CancelledKeyException
Posted by Oleg Kalnichevski <ol...@apache.org>.
On Thu, 2008-09-04 at 21:43 -0700, Rae Egli wrote:
> Has anybody run into this situation lately? I wonder if it is a race condition as by slowing the process down with the debugger, I can prevent it from occurring.
>
> java.nio.channels.CancelledKeyException
> at sun.nio.ch.SelectionKeyImpl.ensureValid(Unknown Source)
> at sun.nio.ch.SelectionKeyImpl.interestOps(Unknown Source)
> at org.apache.http.impl.nio.reactor.IOSessionImpl.getEventMask(IOSessionImpl.java:95)
> at org.apache.http.impl.nio.reactor.BaseIOReactor.validate(BaseIOReactor.java:145)
> at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:147)
> at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:70)
> at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:364)
> at java.lang.Thread.run(Unknown Source)
> 2008/09/04 20:22:40:833 PDT [ERROR] com.rewindweb.proxy.HttpProxyNioTP - .run: connectingIOReactor.execute incurred I/O error:I/O dispatch worker 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:200)
> at com.rewindweb.proxy.HttpProxyNioTP$ConnectingIOReactorThread.run(HttpProxyNioTP.java:237)
> Caused by: java.nio.channels.CancelledKeyException
> at sun.nio.ch.SelectionKeyImpl.ensureValid(Unknown Source)
> at sun.nio.ch.SelectionKeyImpl.interestOps(Unknown Source)
> at org.apache.http.impl.nio.reactor.IOSessionImpl.getEventMask(IOSessionImpl.java:95)
> at org.apache.http.impl.nio.reactor.BaseIOReactor.validate(BaseIOReactor.java:145)
> at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:147)
> at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:70)
> at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:364)
> at java.lang.Thread.run(Unknown Source)
>
> I wonder if it is happening in a condition where the socket is closed right after receiving a write and still issues a read event which it later cannot handle. I will have to ignore the exception it looks like and restart the IOReactor thread(s).
>
> I just wanted to ask if there are any good answers for this situation out there.
>
> Rae
Rae,
I fixed the problem in the SVN trunk. Please pull the latest code
snapshot off the trunk and retest your application.
Cheers
Oleg
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org
Re: HttpCore: CancelledKeyException
Posted by Oleg Kalnichevski <ol...@apache.org>.
On Thu, 2008-09-04 at 21:43 -0700, Rae Egli wrote:
> Has anybody run into this situation lately? I wonder if it is a race condition as by slowing the process down with the debugger, I can prevent it from occurring.
>
> java.nio.channels.CancelledKeyException
> at sun.nio.ch.SelectionKeyImpl.ensureValid(Unknown Source)
> at sun.nio.ch.SelectionKeyImpl.interestOps(Unknown Source)
> at org.apache.http.impl.nio.reactor.IOSessionImpl.getEventMask(IOSessionImpl.java:95)
> at org.apache.http.impl.nio.reactor.BaseIOReactor.validate(BaseIOReactor.java:145)
> at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:147)
> at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:70)
> at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:364)
> at java.lang.Thread.run(Unknown Source)
> 2008/09/04 20:22:40:833 PDT [ERROR] com.rewindweb.proxy.HttpProxyNioTP - .run: connectingIOReactor.execute incurred I/O error:I/O dispatch worker 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:200)
> at com.rewindweb.proxy.HttpProxyNioTP$ConnectingIOReactorThread.run(HttpProxyNioTP.java:237)
> Caused by: java.nio.channels.CancelledKeyException
> at sun.nio.ch.SelectionKeyImpl.ensureValid(Unknown Source)
> at sun.nio.ch.SelectionKeyImpl.interestOps(Unknown Source)
> at org.apache.http.impl.nio.reactor.IOSessionImpl.getEventMask(IOSessionImpl.java:95)
> at org.apache.http.impl.nio.reactor.BaseIOReactor.validate(BaseIOReactor.java:145)
> at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:147)
> at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:70)
> at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:364)
> at java.lang.Thread.run(Unknown Source)
>
> I wonder if it is happening in a condition where the socket is closed right after receiving a write and still issues a read event which it later cannot handle. I will have to ignore the exception it looks like and restart the IOReactor thread(s).
>
> I just wanted to ask if there are any good answers for this situation out there.
>
> Rae
Rae,
I think this problem has been fixed in SVN trunk with HTTPCORE-165.
Please upgrade to the latest SVN snapshot and see if that makes any
difference.
Cheers
Oleg
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org