[ 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-unsubscr...@axis.apache.org For additional commands, e-mail: java-dev-h...@axis.apache.org