You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "songdacheng (JIRA)" <ax...@ws.apache.org> on 2012/09/22 09:23:07 UTC

[jira] [Created] (AXIS-2878) 100% CPU hang when high pressure of concurrent requests

songdacheng created AXIS-2878:
---------------------------------

             Summary: 100% CPU hang when high pressure of concurrent requests
                 Key: AXIS-2878
                 URL: https://issues.apache.org/jira/browse/AXIS-2878
             Project: Axis
          Issue Type: Bug
          Components: Basic Architecture
    Affects Versions: 1.4
         Environment: R2+, R3
            Reporter: songdacheng


When we are doing the performace testing. we simulate high pressure of concurrent requests to invoke soap service. severals hours later, CPU will be 100% and can not be released when the pressure is stopped.
We check the stack log and have found several threads are locked at

java.util.WeakHashMap.getEntry(WeakHashMap.java:375)
java.util.WeakHashMap.containsKey(WeakHashMap.java:361)
org.apache.axis.handlers.soap.SOAPService.addSession(SOAPService.java:125)
org.apache.axis.providers.java.JavaProvider.getSessionServiceObject(JavaProvider.java:185)
org.apache.axis.providers.java.JavaProvider.getServiceObject(JavaProvider.java:100)
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:287)
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:700)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)


Because WeakHashMap is not safe within concurrent threads so I doubt maybe there is a problem. I modify the method: addSession of SOAPService.java (org.apache.axis.handlers.soap)
add the 'synchronized ':
synchronized (map)
    {
      if (!(map.containsKey(session)))
      {
        map.put(session, null);
      }
    }

Then the cpu problem does not occur.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


[jira] [Commented] (AXIS-2878) 100% CPU hang when high pressure of concurrent requests

Posted by "Hudson (JIRA)" <ax...@ws.apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS-2878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13461086#comment-13461086 ] 

Hudson commented on AXIS-2878:
------------------------------

Integrated in axis-trunk #150 (See [https://builds.apache.org/job/axis-trunk/150/])
    Reverted r256500 (AXIS-524) and r348194 (AXIS-2314; fixing a regression caused by r256500). See the comments in AXIS-524 for the rationale of this revert.

This should fix AXIS-2878. (Revision 1388756)

     Result = SUCCESS
veithen : 
Files : 
* /axis/axis1/java/trunk/axis/src/main/java/org/apache/axis/deployment/wsdd/WSDDUndeployment.java
* /axis/axis1/java/trunk/axis/src/main/java/org/apache/axis/handlers/soap/SOAPService.java
* /axis/axis1/java/trunk/axis/src/main/java/org/apache/axis/providers/java/JavaProvider.java

                
> 100% CPU hang when high pressure of concurrent requests
> -------------------------------------------------------
>
>                 Key: AXIS-2878
>                 URL: https://issues.apache.org/jira/browse/AXIS-2878
>             Project: Axis
>          Issue Type: Bug
>          Components: Basic Architecture
>    Affects Versions: 1.4
>         Environment: R2+, R3
>            Reporter: songdacheng
>            Assignee: Andreas Veithen
>
> When we are doing the performace testing. we simulate high pressure of concurrent requests to invoke soap service. severals hours later, CPU will be 100% and can not be released when the pressure is stopped.
> We check the stack log and have found several threads are locked at
> java.util.WeakHashMap.getEntry(WeakHashMap.java:375)
> java.util.WeakHashMap.containsKey(WeakHashMap.java:361)
> org.apache.axis.handlers.soap.SOAPService.addSession(SOAPService.java:125)
> org.apache.axis.providers.java.JavaProvider.getSessionServiceObject(JavaProvider.java:185)
> org.apache.axis.providers.java.JavaProvider.getServiceObject(JavaProvider.java:100)
> org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:287)
> org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
> org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
> org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
> org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
> org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
> org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:700)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
> Because WeakHashMap is not safe within concurrent threads so I doubt maybe there is a problem. I modify the method: addSession of SOAPService.java (org.apache.axis.handlers.soap)
> add the 'synchronized ':
> synchronized (map)
>     {
>       if (!(map.containsKey(session)))
>       {
>         map.put(session, null);
>       }
>     }
> Then the cpu problem does not occur.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


[jira] [Assigned] (AXIS-2878) 100% CPU hang when high pressure of concurrent requests

Posted by "Andreas Veithen (JIRA)" <ax...@ws.apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS-2878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andreas Veithen reassigned AXIS-2878:
-------------------------------------

    Assignee: Andreas Veithen
    
> 100% CPU hang when high pressure of concurrent requests
> -------------------------------------------------------
>
>                 Key: AXIS-2878
>                 URL: https://issues.apache.org/jira/browse/AXIS-2878
>             Project: Axis
>          Issue Type: Bug
>          Components: Basic Architecture
>    Affects Versions: 1.4
>         Environment: R2+, R3
>            Reporter: songdacheng
>            Assignee: Andreas Veithen
>
> When we are doing the performace testing. we simulate high pressure of concurrent requests to invoke soap service. severals hours later, CPU will be 100% and can not be released when the pressure is stopped.
> We check the stack log and have found several threads are locked at
> java.util.WeakHashMap.getEntry(WeakHashMap.java:375)
> java.util.WeakHashMap.containsKey(WeakHashMap.java:361)
> org.apache.axis.handlers.soap.SOAPService.addSession(SOAPService.java:125)
> org.apache.axis.providers.java.JavaProvider.getSessionServiceObject(JavaProvider.java:185)
> org.apache.axis.providers.java.JavaProvider.getServiceObject(JavaProvider.java:100)
> org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:287)
> org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
> org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
> org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
> org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
> org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
> org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:700)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
> Because WeakHashMap is not safe within concurrent threads so I doubt maybe there is a problem. I modify the method: addSession of SOAPService.java (org.apache.axis.handlers.soap)
> add the 'synchronized ':
> synchronized (map)
>     {
>       if (!(map.containsKey(session)))
>       {
>         map.put(session, null);
>       }
>     }
> Then the cpu problem does not occur.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


[jira] [Resolved] (AXIS-2878) 100% CPU hang when high pressure of concurrent requests

Posted by "Andreas Veithen (JIRA)" <ax...@ws.apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS-2878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andreas Veithen resolved AXIS-2878.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 1.4.1
    
> 100% CPU hang when high pressure of concurrent requests
> -------------------------------------------------------
>
>                 Key: AXIS-2878
>                 URL: https://issues.apache.org/jira/browse/AXIS-2878
>             Project: Axis
>          Issue Type: Bug
>          Components: Basic Architecture
>    Affects Versions: 1.4
>         Environment: R2+, R3
>            Reporter: songdacheng
>            Assignee: Andreas Veithen
>             Fix For: 1.4.1
>
>
> When we are doing the performace testing. we simulate high pressure of concurrent requests to invoke soap service. severals hours later, CPU will be 100% and can not be released when the pressure is stopped.
> We check the stack log and have found several threads are locked at
> java.util.WeakHashMap.getEntry(WeakHashMap.java:375)
> java.util.WeakHashMap.containsKey(WeakHashMap.java:361)
> org.apache.axis.handlers.soap.SOAPService.addSession(SOAPService.java:125)
> org.apache.axis.providers.java.JavaProvider.getSessionServiceObject(JavaProvider.java:185)
> org.apache.axis.providers.java.JavaProvider.getServiceObject(JavaProvider.java:100)
> org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:287)
> org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
> org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
> org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
> org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
> org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
> org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:700)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
> Because WeakHashMap is not safe within concurrent threads so I doubt maybe there is a problem. I modify the method: addSession of SOAPService.java (org.apache.axis.handlers.soap)
> add the 'synchronized ':
> synchronized (map)
>     {
>       if (!(map.containsKey(session)))
>       {
>         map.put(session, null);
>       }
>     }
> Then the cpu problem does not occur.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org