synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hiranya Jayathilaka <hiranya...@gmail.com>
Subject Re: Why is "java.nio.channels.ClosedChannelException" thrown from Nio Reactor?
Date Mon, 19 Aug 2013 17:46:43 GMT
[Dropped hc list]

Hi Jeewantha,

What's your Synapse configuration? What steps did you have to go through to get this error?
Please specify the exact details, so we can try to reproduce the problem.

Also as Oleg has mentioned, a wire-level log would be very helpful. Enable DEBUG for the org.apache.synapse.transports
package in the log4j.properties to enable this.

Thanks,
Hiranya

On Aug 19, 2013, at 1:48 AM, Jeewantha Dharmaparakrama <jeewamp.dev@gmail.com> wrote:

> Hi All,
> 
> I have an intermittent issue with Synapse where it prints the following exception in
its Error logs.
> [2013-08-15 16:57:28,710] ERROR - SourceHandler Unexpected I/O error: java.nio.channels.ClosedChannelException
> 
> java.nio.channels.ClosedChannelException
> 
> at sun.nio.ch.SocketChannelImpl.ensureWriteOpen(SocketChannelImpl.java:135)
> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:326)
> at org.apache.http.impl.nio.reactor.SessionOutputBufferImpl.flush(SessionOutputBufferImpl.java:167)
> at org.apache.http.impl.nio.DefaultNHttpServerConnection.produceOutput(DefaultNHttpServerConnection.java:323)
> at org.apache.synapse.transport.http.conn.LoggingNHttpServerConnection.produceOutput(LoggingNHttpServerConnection.java:112)
> at org.apache.synapse.transport.passthru.ServerIODispatch.onOutputReady(ServerIODispatch.java:87)
> at org.apache.synapse.transport.passthru.ServerIODispatch.onOutputReady(ServerIODispatch.java:39)
> at org.apache.http.impl.nio.reactor.AbstractIODispatch.outputReady(AbstractIODispatch.java:143)
> 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:584)
> at java.lang.Thread.run(Thread.java:662)
> 
> 
> What happens is for some reason, the corresponding SocketChannel is closed but still
some IO operation is done on it. Once this exception is caught from httpcore-nio, it will
be passed to org.apache.http.nio.NHttpServerEventHandler implementation ( org.apache.synapse.transport.passthru.SourceHandler
) and will be printed on Synapse Error logs. Since this is an intermittent issue,
> I tried to reproduce this programmatically but failed [1]. What can be the practical
reason for this Error? Can this be deliberately reproduced with Synapse?
> 
> [1] http://stackoverflow.com/q/18309283/1411653 
> 
> Thanks in advance,
> Jeewantha.

--
Hiranya Jayathilaka
Mayhem Lab/RACE Lab;
Dept. of Computer Science, UCSB;  http://cs.ucsb.edu
E-mail: hiranya@cs.ucsb.edu;  Mobile: +1 (805) 895-7443
Blog: http://techfeast-hiranya.blogspot.com


Mime
View raw message