I just noticed that this is from a slightly older revision of Synapse. Line 
numbers in the stack trace are off. Also the stack trace mentions the class 
ServerIODispatch, which is no longer in the code base. It was removed during 
the migration to HTTP Core 4.3. 

Can you try your scenario with a latest snapshot build and see if the problem 
occurs there, before trying out anything else.

Thanks,
Hiranya

On Aug 19, 2013, at 10:46 AM, Hiranya Jayathilaka <[email protected]> wrote:

> [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 
> <[email protected]> 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: [email protected];  Mobile: +1 (805) 895-7443
> Blog: http://techfeast-hiranya.blogspot.com
> 

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

Reply via email to