synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "WALTON Jason" <Jason.Wal...@alcatel-lucent.com>
Subject Occasionally loosing response for hosted service within Synapse?
Date Mon, 25 Aug 2008 17:12:35 GMT
Ok, I realize this is a bit of a stretch, as my Synapse code is not
exactly an official release, but;
 
I'm running Synapse 1.1.1, with the NHTTP transport code from Synapse
1.2 (didn't want to take Axis 1.4 for reasons I won't go into here).
I'm also hosting an Axis2 generated service within my Synapse runtime.
I have an Axis2 generated client which is calling into my hosted
service.  The client is running over the blocking HttpClient based
transport, and obviously the service is running on the Synapse NHTTP
transport.  I should also mention I'm running with the fix I proposed
for JIRA-415 (since without that fix, I run out of HttpServerWorkers in
less than a minute).
 
Every now and then (maybe once every 30 seconds under heavy load?), I'll
send a request from the client, the server will receive it and process
it, but then will fail to send a reply back to my client.  Every now and
then I see this happen for my proxy services, too, but I have yet to
figure out a way to reproduce it consistently, whereas I can make it
happen easily for the hosted service.  Looking at the Synapse logs, I
see:
 
<log4j:event logger="org.apache.synapse.transport.nhttp.ServerHandler"
timestamp="1219446649613" level="ERROR" thread="HttpServerWorker-27">
<log4j:message><![CDATA[Unexpected HTTP protocol error : Response
already submitted]]></log4j:message>
<log4j:throwable><![CDATA[org.apache.http.HttpException: Response
already submitted
        at
org.apache.http.impl.nio.DefaultNHttpServerConnection.submitResponse(Def
aultNHttpServerConnection.java:202)
        at
org.apache.synapse.transport.nhttp.ServerHandler.commitResponse(ServerHa
ndler.java:212)
        at
org.apache.synapse.transport.nhttp.ServerWorker.run(ServerWorker.java:20
8)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
r.java:885)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
va:907)
        at java.lang.Thread.run(Thread.java:619)
]]></log4j:throwable>
</log4j:event>

So, it seems that the service isn't writing a reply, because for some
reason it believes the response has already been written.  Thoughts?
Pointers for how to chase this down?

Mime
View raw message