Return-Path: Delivered-To: apmail-synapse-dev-archive@www.apache.org Received: (qmail 84614 invoked from network); 22 Apr 2008 06:14:43 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 22 Apr 2008 06:14:43 -0000 Received: (qmail 63375 invoked by uid 500); 22 Apr 2008 06:14:43 -0000 Delivered-To: apmail-synapse-dev-archive@synapse.apache.org Received: (qmail 63337 invoked by uid 500); 22 Apr 2008 06:14:43 -0000 Mailing-List: contact dev-help@synapse.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@synapse.apache.org Delivered-To: mailing list dev@synapse.apache.org Received: (qmail 63326 invoked by uid 99); 22 Apr 2008 06:14:43 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 21 Apr 2008 23:14:43 -0700 X-ASF-Spam-Status: No, hits=-1998.5 required=10.0 tests=ALL_TRUSTED,WEIRD_PORT X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 22 Apr 2008 06:14:08 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id B6EB7234C0FB for ; Mon, 21 Apr 2008 23:11:21 -0700 (PDT) Message-ID: <1234724.1208844681728.JavaMail.jira@brutus> Date: Mon, 21 Apr 2008 23:11:21 -0700 (PDT) From: "Ruwan Linton (JIRA)" To: dev@synapse.apache.org Subject: [jira] Issue Comment Edited: (SYNAPSE-225) Leaking resources when the connection times out. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ 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: [root@lou-lxapachetest ~]# cat /etc/redhat-release > Red Hat Enterprise Linux Server release 5.1 (Tikanga) > [root@lou-lxapachetest ~]# 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 > [root@lou-lxapachetest ~]# 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) > [root@lou-lxapachetest ~]# > 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: > skrall@skralldesktop ~/files/downloads/synapse/synapse-1.1.1/samples/axis2Client $ lsof -p 27788 | wc -l > 245 > skrall@skralldesktop ~/files/downloads/synapse/synapse-1.1.1/samples/axis2Client $ lsof -p 27788 | grep pipe | wc -l > 24 > skrall@skralldesktop ~/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 > skrall@skralldesktop ~/files/downloads/synapse/synapse-1.1.1/samples/axis2Client $ lsof -p 27788 | wc -l > 245 > skrall@skralldesktop ~/files/downloads/synapse/synapse-1.1.1/samples/axis2Client $ lsof -p 27788 | grep pipe | wc -l > 24 > skrall@skralldesktop ~/files/downloads/synapse/synapse-1.1.1/samples/axis2Client $ ant stockquote -Daddurl=http://: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 > skrall@skralldesktop ~/files/downloads/synapse/synapse-1.1.1/samples/axis2Client $ lsof -p 27788 | wc -l > 250 > skrall@skralldesktop ~/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: dev-unsubscribe@synapse.apache.org For additional commands, e-mail: dev-help@synapse.apache.org