[ 
https://issues.apache.org/jira/browse/WW-3580?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13124882#comment-13124882
 ] 

Alessio Cicioni commented on WW-3580:
-------------------------------------

Hi all,
first of all thanks for your support....

@Maurizio: our environment is very critical (thousands of concurrent users) and 
the system is already on-line. Each change in a component or library must be 
authorized by the customer and obviously must pass lots of functional and 
stress tests. So changing the Struts version requires some development  and 
lots of tests. We had to solve the problem in production environment and then 
start evolving towards Struts 2.3.x.

@Lukasz: Yes, it would be an official Struts release resolving this performance 
problem for everyone using Struts 2.1.8.1 in a production environment with 
hundreds/thousands of concurrent users. So they can avoid searching JIRA and 
changing the OGNL library to resolve this issue...

Just another thing we found yesterday....(so maybe it's better to wait to 
release an "official" Struts release) ;-)
Pushing the stress tests above 700 concurrent users (around 1000 concurrent 
users) we found a similar problem with the Freemarker library...
We have updated Freemarker to the 2.3.18 version and applied a patch to the 
freemarker.ext.beans.BeansWrapper class.
We will let you know if the tests are successful and the problem is solved...
                
> 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

        

Reply via email to