From issues-return-16514-apmail-struts-issues-archive=struts.apache.org@struts.apache.org Mon Oct 10 17:09:58 2011 Return-Path: X-Original-To: apmail-struts-issues-archive@minotaur.apache.org Delivered-To: apmail-struts-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 40CA17192 for ; Mon, 10 Oct 2011 17:09:58 +0000 (UTC) Received: (qmail 99494 invoked by uid 500); 10 Oct 2011 17:09:53 -0000 Delivered-To: apmail-struts-issues-archive@struts.apache.org Received: (qmail 99459 invoked by uid 500); 10 Oct 2011 17:09:52 -0000 Mailing-List: contact issues-help@struts.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@struts.apache.org Delivered-To: mailing list issues@struts.apache.org Received: (qmail 99422 invoked by uid 99); 10 Oct 2011 17:09:52 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Oct 2011 17:09:52 +0000 X-ASF-Spam-Status: No, hits=-2000.5 required=5.0 tests=ALL_TRUSTED,RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Oct 2011 17:09:51 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 164BA301842 for ; Mon, 10 Oct 2011 17:09:31 +0000 (UTC) Date: Mon, 10 Oct 2011 17:09:31 +0000 (UTC) From: "Alessio Cicioni (Commented) (JIRA)" To: issues@struts.apache.org Message-ID: <1015523253.15420.1318266571092.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <593439273.8928.1298400458693.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (WW-3580) Critical performance issue in production environment as thread dumps are leading to OGNL 3.0 thread blocking! Website could be backed out! MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/WW-3580?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13124302#comment-13124302 ] Alessio Cicioni commented on WW-3580: ------------------------------------- Just to say that our tests has been successful (Struts 2.1.8.1 + OGNL 3.0.3) with 700 concurrent users. Do you think we will have an official 2.1.8.x manteinance release? Thanks Alessio > Critical performance issue in production environment as thread dumps are leading to OGNL 3.0 thread blocking! Website could be backed out! > ------------------------------------------------------------------------------------------------------------------------------------------ > > Key: WW-3580 > URL: https://issues.apache.org/jira/browse/WW-3580 > Project: Struts 2 > Issue Type: Bug > Environment: Struts 2.2.1 > Reporter: Shishir Saxena > Assignee: Lukasz Lenart > Priority: Blocker > Fix For: 2.3 > > Attachments: OGNLIssue.zip, Small_bugfix_on_the_performance_patch_provided_in_WW-3580_.patch, ognl-synchronization.diff, stacktrace_ognl_issue.txt > > > My web application based on Struts 2.2.1 is using OGNL 3.0. This web application is rolled into production; however, due to serious performance considerations the website is in danger of being rolled back. The thread dumps indicate 'BLOCKING' at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:804). > The thread trace is as: > "httpSSLWorkerThread-6357-6" daemon prio=3 tid=0x01a07000 nid=0xa6 waiting for monitor entry [0xb6d79000..0xb6d7faf0] > java.lang.Thread.State: BLOCKED (on object monitor) > at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:804) > - waiting to lock <0xcca6d328> (a java.lang.reflect.Method) > at ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:1434) > at ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java:60) > at ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:147) > at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.getProperty(ObjectAccessor.java:17) > at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2230) > at com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor.getProperty(CompoundRootAccessor.java:137) > at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2230) > at ognl.ASTProperty.getValueBody(ASTProperty.java:114) > at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212) > at ognl.SimpleNode.getValue(SimpleNode.java:258) > at ognl.Ognl.getValue(Ognl.java:494) > at ognl.Ognl.getValue(Ognl.java:458) > at com.opensymphony.xwork2.ognl.OgnlUtil.getValue(OgnlUtil.java:213) > at com.opensymphony.xwork2.ognl.OgnlValueStack.getValueUsingOgnl(OgnlValueStack.java:277) > at com.opensymphony.xwork2.ognl.OgnlValueStack.tryFindValue(OgnlValueStack.java:260) > at com.opensymphony.xwork2.ognl.OgnlValueStack.tryFindValueWhenExpressionIsNotNull(OgnlValueStack.java:242) > at com.opensymphony.xwork2.ognl.OgnlValueStack.findValue(OgnlValueStack.java:222) > at com.opensymphony.xwork2.ognl.OgnlValueStack.findValue(OgnlValueStack.java:284) > at sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source) > .... > quot;httpSSLWorkerThread-6357-4" daemon prio=3 tid=0x01a56800 nid=0xa4 runnable [0xb6f79000..0xb6f7fbf0] > java.lang.Thread.State: RUNNABLE > at java.security.AccessController.$$YJP$$doPrivileged(Native Method) > at java.security.AccessController.doPrivileged(AccessController.java) > at com.sun.enterprise.security.provider.PolicyFile.addPermissions(PolicyFile.java:1333) > at com.sun.enterprise.security.provider.PolicyFile.getPermissions(PolicyFile.java:1290) > at com.sun.enterprise.security.provider.PolicyFile.getPermissions(PolicyFile.java:1256) > at com.sun.enterprise.security.provider.PolicyFile.getPermissions(PolicyFile.java:1198) > at com.sun.enterprise.security.provider.PolicyFile.implies(PolicyFile.java:1153) > at com.sun.enterprise.security.provider.BasePolicyWrapper.doImplies(BasePolicyWrapper.java:383) > at com.sun.enterprise.security.provider.BasePolicyWrapper.implies(BasePolicyWrapper.java:237) > at java.security.ProtectionDomain.implies(ProtectionDomain.java:213) > at java.security.AccessControlContext.checkPermission(AccessControlContext.java:301) > at java.security.AccessController.checkPermission(AccessController.java:546) > at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) > at java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:107) > at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:839) > - locked <0xcca6d328> (a java.lang.reflect.Method) > at ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:1434) > at ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java:60) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira