Hi Oleg,

I've done the necessary code changes locally and it seems to work fine. The 
HTTPS sender now works as expected. But when running automated tests, I 
frequently get the following exception:

34 [HttpCoreNIOListener] WARN 
org.apache.synapse.transport.nhttp.HttpCoreNIOListener - System may be 
unstable: IOReactor encountered a checked exception : Address already in use
java.net.BindException: Address already in use
        at sun.nio.ch.Net.bind(Native Method)
        at 
sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:124)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:52)
        at 
org.apache.http.impl.nio.reactor.DefaultListeningIOReactor.processSessionRequests(DefaultListeningIOReactor.java:238)
        at 
org.apache.http.impl.nio.reactor.DefaultListeningIOReactor.processEvents(DefaultListeningIOReactor.java:144)
        at 
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:374)
        at 
org.apache.synapse.transport.nhttp.HttpCoreNIOListener$2.run(HttpCoreNIOListener.java:254)
        at java.lang.Thread.run(Thread.java:680)

This is seen in both NHTTP unit tests and Synapse integration tests. Any idea 
what is going on here? Synapse cleans up the IO reactor by calling 
ioReactor.shutdown(). Is there anything else we need to do to clean up the 
reactor properly?

Thanks,
Hiranya

On Jul 23, 2013, at 10:54 AM, Hiranya Jayathilaka <[email protected]> wrote:

> HI Oleg,
> 
> On Jul 23, 2013, at 12:32 AM, Oleg Kalnichevski <[email protected]> wrote:
> 
>> On Mon, 2013-07-22 at 20:51 -0700, Hiranya Jayathilaka wrote:
>>> On Jul 22, 2013, at 7:53 PM, Rajika Kumarasiri 
>>> <[email protected]> wrote:
>>> 
>>>> May be we should enable the SSl debug logs and see what's going on ? 
>>> 
>>> I ran some more tests and it looks like the HTTPS sender doesn't work with 
>>> HTTP Core 4.2. It just sends out the messages without any SSL security. I 
>>> can even monitor the message in plain text using TCPMon. Looks like some 
>>> SSL related code in the Synapse HTTPS sender doesn't work properly with the 
>>> new HTTP Core.
>>> 
>>> Thanks,
>>> Hiranya
>>> 
>> 
>> Hiranya
>> 
>> Have you migrated off the deprecated APIs to new 4.2 APIs? 
> 
> No not yet. I just tried changing the HTTP Core dependency version to begin 
> with. I guess migrating off the deprecated APIs is the next logical step.
> 
> Thanks,
> Hiranya
> 
>> 
>> Oleg
>> 
>> PS: By the way, you should probably consider migrating straight to 4.3
>> at this point.
>> 
>> 
>>>> 
>>>> Rajika
>>>> 
>>>> 
>>>> On Mon, Jul 22, 2013 at 8:23 PM, Hiranya Jayathilaka 
>>>> <[email protected]> wrote:
>>>> Hi Folks,
>>>> 
>>>> Currently Synapse is based on HTTP Core 4.1.4. I just tried using 4.2 
>>>> instead (just changed the version of the maven dependency). Almost 
>>>> everything worked fine, except for a couple of integration test failures. 
>>>> In both these tests Synapse uses HTTPS to contact the backend services, so 
>>>> I suppose that's where things went wrong. The backend server threw the 
>>>> following exception in the process:
>>>> 
>>>> 2013-07-22 17:06:36,970 [-] [https-Listener I/O dispatcher-1] ERROR 
>>>> ServerHandler I/O error: Unrecognized SSL message, plaintext connection?
>>>> javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
>>>>        at 
>>>> com.sun.net.ssl.internal.ssl.EngineInputRecord.bytesInCompletePacket(EngineInputRecord.java:152)
>>>>        at 
>>>> com.sun.net.ssl.internal.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:806)
>>>>        at 
>>>> com.sun.net.ssl.internal.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:721)
>>>>        at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:607)
>>>>        at 
>>>> org.apache.http.nio.reactor.ssl.SSLIOSession.doUnwrap(SSLIOSession.java:228)
>>>>        at 
>>>> org.apache.http.nio.reactor.ssl.SSLIOSession.doHandshake(SSLIOSession.java:263)
>>>>        at 
>>>> org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:370)
>>>>        at 
>>>> org.apache.http.impl.nio.SSLServerIOEventDispatch.inputReady(SSLServerIOEventDispatch.java:229)
>>>>        at 
>>>> org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:160)
>>>>        at 
>>>> org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:342)
>>>>        at 
>>>> org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:320)
>>>>        at 
>>>> org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:280)
>>>>        at 
>>>> org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:106)
>>>>        at 
>>>> org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:604)
>>>>        at java.lang.Thread.run(Thread.java:680)
>>>> 
>>>> I also tried upgrading to the latest HTTP Core version (4.2.4). With this 
>>>> version NHTTP unit tests failed and most of the integration tests failed 
>>>> too. It turns out only the very first integration test ran successfully. 
>>>> Everything that followed threw a bind exception. Looks like something 
>>>> isn't getting cleaned up properly (although the logs indicate that Synapse 
>>>> transport listeners are shutting down cleanly after each test case).
>>>> 
>>>> Does anybody got an idea what's going on? Do we need to do any code 
>>>> changes to migrate to the latest HTTP Core?
>>>> 
>>>> Thanks,
>>>> Hiranya
>>>> --
>>>> 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
>>> 
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>> 
> 
> --
> 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