You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@shindig.apache.org by "erbil kurtsoy (JIRA)" <ji...@apache.org> on 2011/03/17 16:26:29 UTC

[jira] Created: (SHINDIG-1517) Error: java.net.BindException: Address already in use: connect

Error: java.net.BindException: Address already in use: connect
--------------------------------------------------------------

                 Key: SHINDIG-1517
                 URL: https://issues.apache.org/jira/browse/SHINDIG-1517
             Project: Shindig
          Issue Type: Question
          Components: Java
    Affects Versions: 2.0.0
         Environment: Tomcat 6.0 
shindig-server-2.0.0.war 
            Reporter: erbil kurtsoy


We are trying to load test shindig with our GWT gadgets. Both shindig server and gadgets running on the same server. We isolated the ajax call and ran it in multiple simultaneous user scenarios. We increased the DEFAULT_CONNECT_TIMEOUT_MS and DEFAULT_READ_TIMEOUT_MS values in BasicHttpFetcher source code to eliminate the timeout errors. As we increase the load from 1 to 5, 10, 25 users, we start geting this error. I'm wondering if BasicHttpFetcher is handling connection pool correctly. Any insight would be highly appreciated. Thanks.

Request:
POST /gadgets/makeRequest HTTP/1.1

Error in Tomcat Log:
Mar 16, 2011 4:28:28 PM org.apache.shindig.gadgets.http.BasicHttpFetcher fetch
INFO: Got Exception fetching http://rkvrhld121.devlab.dev:8089/QRAGadget3/org.finra.ems.QraApp/firmFacade.do - 15ms
java.net.BindException: Address already in use: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(Unknown Source)
	at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
	at java.net.PlainSocketImpl.connect(Unknown Source)
	at java.net.SocksSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:123)
	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:123)
	at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:147)
	at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108)
	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:597)
	at org.apache.shindig.gadgets.http.BasicHttpFetcher.fetch(BasicHttpFetcher.java:357)
	at org.apache.shindig.gadgets.http.DefaultRequestPipeline.execute(DefaultRequestPipeline.java:89)
	at org.apache.shindig.gadgets.servlet.MakeRequestHandler.fetch(MakeRequestHandler.java:91)
	at org.apache.shindig.gadgets.servlet.MakeRequestServlet.doGet(MakeRequestServlet.java:57)
	at org.apache.shindig.gadgets.servlet.MakeRequestServlet.doPost(MakeRequestServlet.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.shindig.auth.AuthenticationServletFilter.callChain(AuthenticationServletFilter.java:124)
	at org.apache.shindig.auth.AuthenticationServletFilter.doFilter(AuthenticationServletFilter.java:87)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Resolved] (SHINDIG-1517) Error: java.net.BindException: Address already in use: connect

Posted by "Paul Lindner (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SHINDIG-1517?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul Lindner resolved SHINDIG-1517.
-----------------------------------

    Resolution: Fixed

You probably have a badly configured system that needs more client-side ports to handle the load you're throwing at it.  See

http://wiki.apache.org/HttpComponents/FrequentlyAskedConnectionManagementQuestions

I added a change that sets SO_REUSEADDR, that should help..


> Error: java.net.BindException: Address already in use: connect
> --------------------------------------------------------------
>
>                 Key: SHINDIG-1517
>                 URL: https://issues.apache.org/jira/browse/SHINDIG-1517
>             Project: Shindig
>          Issue Type: Question
>          Components: Java
>    Affects Versions: 2.0.0
>         Environment: Tomcat 6.0 
> shindig-server-2.0.0.war 
>            Reporter: erbil kurtsoy
>              Labels: shindig
>
> We are trying to load test shindig with our GWT gadgets. Both shindig server and gadgets running on the same server. We isolated the ajax call and ran it in multiple simultaneous user scenarios. We increased the DEFAULT_CONNECT_TIMEOUT_MS and DEFAULT_READ_TIMEOUT_MS values in BasicHttpFetcher source code to eliminate the timeout errors. As we increase the load from 1 to 5, 10, 25 users, we start geting this error. I'm wondering if BasicHttpFetcher is handling connection pool correctly. Any insight would be highly appreciated. Thanks.
> Request:
> POST /gadgets/makeRequest HTTP/1.1
> Error in Tomcat Log:
> Mar 16, 2011 4:28:28 PM org.apache.shindig.gadgets.http.BasicHttpFetcher fetch
> INFO: Got Exception fetching http://rkvrhld121.devlab.dev:8089/QRAGadget3/org.finra.ems.QraApp/firmFacade.do - 15ms
> java.net.BindException: Address already in use: connect
> 	at java.net.PlainSocketImpl.socketConnect(Native Method)
> 	at java.net.PlainSocketImpl.doConnect(Unknown Source)
> 	at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
> 	at java.net.PlainSocketImpl.connect(Unknown Source)
> 	at java.net.SocksSocketImpl.connect(Unknown Source)
> 	at java.net.Socket.connect(Unknown Source)
> 	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:123)
> 	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:123)
> 	at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:147)
> 	at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108)
> 	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
> 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
> 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:597)
> 	at org.apache.shindig.gadgets.http.BasicHttpFetcher.fetch(BasicHttpFetcher.java:357)
> 	at org.apache.shindig.gadgets.http.DefaultRequestPipeline.execute(DefaultRequestPipeline.java:89)
> 	at org.apache.shindig.gadgets.servlet.MakeRequestHandler.fetch(MakeRequestHandler.java:91)
> 	at org.apache.shindig.gadgets.servlet.MakeRequestServlet.doGet(MakeRequestServlet.java:57)
> 	at org.apache.shindig.gadgets.servlet.MakeRequestServlet.doPost(MakeRequestServlet.java:70)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.shindig.auth.AuthenticationServletFilter.callChain(AuthenticationServletFilter.java:124)
> 	at org.apache.shindig.auth.AuthenticationServletFilter.doFilter(AuthenticationServletFilter.java:87)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
> 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
> 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> 	at java.lang.Thread.run(Unknown Source)  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira