[
https://issues.apache.org/jira/browse/SYNAPSE-225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12591209#action_12591209
]
ruwan edited comment on SYNAPSE-225 at 4/21/08 11:09 PM:
----------------------------------------------------------------
Thanks Jeff for providing the correct guidance to find the root cause, and
thanks Steve for figuring this out. This seems to be a hidden issue. After an
extensive debugging session with the help of Asankha (who fond the root cause
according to the explanation of Jeff), I was able to fix this issue.
We open the sink and the source from a pipe and do not (actually we cannot) use
the source of the same pipe to serialize the response and are using a different
pipe for the response. So on the exceptional flow, one of either sink or source
left open and hence O/S does not release the pipe.
Now it seems fixed, Jeff and Steve you may verify this fix so that we are 100%
sure
was (Author: ruwan):
Thanks Jeff for providing the correct guidance to find the root cause, and
thanks Steve for figuring this out. This seems to be a hidden issue. After an
extensive debugging session with the help of Asankha (who fond the root cause
according to the explanation of Jeff), I was able to fix this issue.
We open the sink and the source from the pipe and we can not use the source of
the same pipe to serialize the response and are using a different pipe. So on
the exceptional flow one either sink or source left open and hence O/S does not
release the pipe.
Now it seems fixed, Jeff and Steve you may verify this fix so that we are 100%
sure
> Leaking resources when the connection times out.
> ------------------------------------------------
>
> Key: SYNAPSE-225
> URL: https://issues.apache.org/jira/browse/SYNAPSE-225
> Project: Synapse
> Issue Type: Bug
> Components: Transports
> Affects Versions: 1.1.1
> Environment: [EMAIL PROTECTED] ~]# cat /etc/redhat-release
> Red Hat Enterprise Linux Server release 5.1 (Tikanga)
> [EMAIL PROTECTED] ~]# uname -a
> Linux lou-lxapachetest 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:02 EDT 2007 i686
> i686 i386 GNU/Linux
> [EMAIL PROTECTED] ~]# java -version
> java version "1.5.0_13"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05)
> Java HotSpot(TM) Client VM (build 1.5.0_13-b05, mixed mode, sharing)
> [EMAIL PROTECTED] ~]#
> Reporter: SteveKrall
> Assignee: Ruwan Linton
> Fix For: 1.2
>
>
> I'm using 1.1.1-RC1. When a connection times out, I can see using lsof pipes
> being left open. This does not happen when the connection works normally.
> Steps to reproduce:
> 1. Check the open files
> 2. Run the SimpleStockQuoteApplication successfully
> 3. Check the open files (open files will go up on the first successful
> request, but not subsequent successful request
> 4. Run the SimpleStockQuoteApplication this time with a -Daddurl that will
> generate a timeout.
> 5. Check the open files. Repeat steps 4 and 5. The number will continue to
> grow.
> My output from a test:
> [EMAIL PROTECTED] ~/files/downloads/synapse/synapse-1.1.1/samples/axis2Client
> $ lsof -p 27788 | wc -l
> 245
> [EMAIL PROTECTED] ~/files/downloads/synapse/synapse-1.1.1/samples/axis2Client
> $ lsof -p 27788 | grep pipe | wc -l
> 24
> [EMAIL PROTECTED] ~/files/downloads/synapse/synapse-1.1.1/samples/axis2Client
> $ ant stockquote -Daddurl=http://localhost:9000/soap/SimpleStockQuoteService
> -Dtrpurl=http://localhost:8080
> Buildfile: build.xml
> init:
> compile:
> stockquote:
> [java] Standard :: Stock price = $99.43283516858692
> BUILD SUCCESSFUL
> Total time: 2 seconds
> [EMAIL PROTECTED] ~/files/downloads/synapse/synapse-1.1.1/samples/axis2Client
> $ lsof -p 27788 | wc -l
> 245
> [EMAIL PROTECTED] ~/files/downloads/synapse/synapse-1.1.1/samples/axis2Client
> $ lsof -p 27788 | grep pipe | wc -l
> 24
> [EMAIL PROTECTED] ~/files/downloads/synapse/synapse-1.1.1/samples/axis2Client
> $ ant stockquote
> -Daddurl=http://<HostThatWillCauseTimeout>:9000/soap/SimpleStockQuoteService
> -Dtrpurl=http://localhost:8080
> Buildfile: build.xml
> init:
> compile:
> stockquote:
> [java] 2008-01-15 16:05:40,829 [-] [main] INFO HTTPSender Unable to
> sendViaPost to url[http://localhost:8080]
> [java] java.net.SocketTimeoutException: Read timed out
> [java] at java.net.SocketInputStream.socketRead0(Native Method)
> [java] at java.net.SocketInputStream.read(SocketInputStream.java:129)
> [java] at
> java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
> [java] at
> java.io.BufferedInputStream.read(BufferedInputStream.java:237)
> [java] at
> org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:77)
> [java] at
> org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:105)
> [java] at
> org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1115)
> [java] at
> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1373)
> [java] at
> org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1832)
> [java] at
> org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1590)
> [java] at
> org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:995)
> [java] at
> org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)
> [java] at
> org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
> [java] at
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
> [java] at
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
> [java] at
> org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:520)
> [java] at
> org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:191)
> [java] at
> org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:77)
> [java] at
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:327)
> [java] at
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:206)
> [java] at
> org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396)
> [java] at
> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:374)
> [java] at
> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)
> [java] at
> org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
> [java] at
> org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:528)
> [java] at
> org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:508)
> [java] at samples.userguide.StockQuoteClient.executeClient(Unknown
> Source)
> [java] at samples.userguide.StockQuoteClient.main(Unknown Source)
> [java] org.apache.axis2.AxisFault: Read timed out
> [java] at org.apache.axis2.AxisFault.makeFault(AxisFault.java:417)
> [java] at
> org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:195)
> [java] at
> org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:77)
> [java] at
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:327)
> [java] at
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:206)
> [java] at
> org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396)
> [java] at
> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:374)
> [java] at
> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)
> [java] at
> org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
> [java] at
> org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:528)
> [java] at
> org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:508)
> [java] at samples.userguide.StockQuoteClient.executeClient(Unknown
> Source)
> [java] at samples.userguide.StockQuoteClient.main(Unknown Source)
> [java] Caused by: java.net.SocketTimeoutException: Read timed out
> [java] at java.net.SocketInputStream.socketRead0(Native Method)
> [java] at java.net.SocketInputStream.read(SocketInputStream.java:129)
> [java] at
> java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
> [java] at
> java.io.BufferedInputStream.read(BufferedInputStream.java:237)
> [java] at
> org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:77)
> [java] at
> org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:105)
> [java] at
> org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1115)
> [java] at
> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1373)
> [java] at
> org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1832)
> [java] at
> org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1590)
> [java] at
> org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:995)
> [java] at
> org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)
> [java] at
> org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
> [java] at
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
> [java] at
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
> [java] at
> org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:520)
> [java] at
> org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:191)
> [java] ... 11 more
> BUILD SUCCESSFUL
> Total time: 32 seconds
> [EMAIL PROTECTED] ~/files/downloads/synapse/synapse-1.1.1/samples/axis2Client
> $ lsof -p 27788 | wc -l
> 250
> [EMAIL PROTECTED] ~/files/downloads/synapse/synapse-1.1.1/samples/axis2Client
> $ lsof -p 27788 | grep pipe | wc -l
> 28
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]