You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by "nhb (JIRA)" <de...@velocity.apache.org> on 2007/08/16 14:29:31 UTC

[jira] Updated: (VELOCITY-562) Hanging in jj_scan_token (while holding lock for getResouce)

     [ https://issues.apache.org/jira/browse/VELOCITY-562?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

nhb updated VELOCITY-562:
-------------------------

    Description: 
We are having trouble with deadlocks in Velocity after updating from 1.3 to 1.5

The thread holding the lock allways it at org.apache.velocity.runtime.parser.Parser.jj_scan_token(Parser.java:3259)
although the frames below that differ between restarts. It is not possible to use Eclipse to step over that line. It simply hangs.

3259 is this line: "if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;"

Here is an example stacktrace:


Full thread dump Java HotSpot(TM) Client VM (1.5.0_08-b03 mixed mode):

"DataExchange" daemon prio=1 tid=0x08b2df10 nid=0x2824 waiting for monitor entry [0x8545a000..0x8545b130]
	at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:287)
	- waiting to lock <0x91140270> (a org.apache.velocity.runtime.resource.ResourceManagerImpl)
	at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1102)
	at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1077)
	at org.apache.velocity.runtime.RuntimeSingleton.getTemplate(RuntimeSingleton.java:303)
	at org.apache.velocity.app.Velocity.getTemplate(Velocity.java:503)
	at de.his.servlet.util.ServletUtil.parseWithVelocity(ServletUtil.java:735)
[...]

"http-8080-Processor23" daemon prio=1 tid=0x08220cc8 nid=0x2803 runnable [0x858e2000..0x858e3db0]
	at org.apache.velocity.runtime.parser.Parser.jj_scan_token(Parser.java:3259)
	at org.apache.velocity.runtime.parser.Parser.jj_3R_56(Parser.java:3089)
	at org.apache.velocity.runtime.parser.Parser.jj_3R_29(Parser.java:2696)
	at org.apache.velocity.runtime.parser.Parser.jj_3_8(Parser.java:2530)
	at org.apache.velocity.runtime.parser.Parser.jj_3_7(Parser.java:2574)
	at org.apache.velocity.runtime.parser.Parser.jj_2_7(Parser.java:2483)
	at org.apache.velocity.runtime.parser.Parser.Reference(Parser.java:1240)
	at org.apache.velocity.runtime.parser.Parser.PrimaryExpression(Parser.java:2391)
	at org.apache.velocity.runtime.parser.Parser.UnaryExpression(Parser.java:2366)
	at org.apache.velocity.runtime.parser.Parser.MultiplicativeExpression(Parser.java:2215)
	at org.apache.velocity.runtime.parser.Parser.AdditiveExpression(Parser.java:2139)
	at org.apache.velocity.runtime.parser.Parser.RelationalExpression(Parser.java:2007)
	at org.apache.velocity.runtime.parser.Parser.EqualityExpression(Parser.java:1931)
	at org.apache.velocity.runtime.parser.Parser.ConditionalAndExpression(Parser.java:1891)
	at org.apache.velocity.runtime.parser.Parser.ConditionalOrExpression(Parser.java:1851)
	at org.apache.velocity.runtime.parser.Parser.Expression(Parser.java:1798)
	at org.apache.velocity.runtime.parser.Parser.SetDirective(Parser.java:1730)
	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:310)
	at org.apache.velocity.runtime.parser.Parser.IfStatement(Parser.java:1453)
	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:293)
	at org.apache.velocity.runtime.parser.Parser.IfStatement(Parser.java:1453)
	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:293)
	at org.apache.velocity.runtime.parser.Parser.IfStatement(Parser.java:1453)
	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:293)
	at org.apache.velocity.runtime.parser.Parser.IfStatement(Parser.java:1453)
	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:293)
	at org.apache.velocity.runtime.parser.Parser.ElseStatement(Parser.java:1564)
	at org.apache.velocity.runtime.parser.Parser.IfStatement(Parser.java:1495)
	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:293)
	at org.apache.velocity.runtime.parser.Parser.process(Parser.java:258)
	at org.apache.velocity.runtime.parser.Parser.parse(Parser.java:105)
	at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1042)
	at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:972)
	at org.apache.velocity.Template.process(Template.java:120)
	at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:415)
	at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:335)
	- locked <0x91140270> (a org.apache.velocity.runtime.resource.ResourceManagerImpl)
	at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1102)
	at org.apache.velocity.runtime.directive.Parse.render(Parse.java:177)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:448)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
	at org.apache.velocity.runtime.directive.Parse.render(Parse.java:224)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
	at org.apache.velocity.runtime.directive.Parse.render(Parse.java:224)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:107)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
	at org.apache.velocity.runtime.directive.Parse.render(Parse.java:224)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:448)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:448)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:107)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:107)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
	at org.apache.velocity.Template.merge(Template.java:254)
	at de.his.servlet.util.ServletUtil.parseWithVelocity(ServletUtil.java:736)
	at de.his.servlet.util.ServletUtil.sendResponseWithVelocity(ServletUtil.java:684)
	at de.his.servlet.HISServletModuleImpl.handleRequest(HISServletModuleImpl.java:637)
	at de.his.servlet.RequestDispatcherServlet.invoke(RequestDispatcherServlet.java:908)
	at de.his.servlet.RequestDispatcherServlet.handleRequest(RequestDispatcherServlet.java:843)
	at de.his.servlet.RequestDispatcherServlet.doGet(RequestDispatcherServlet.java:1060)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)



  was:
After updating Velocity from 1.3 to 1.5 we are having massive performance issues. I am not talking about Velocity 1.5 beiing slower than 1.3 but about 100%CPU ussage for several minutes if two threads are parsing (different) tempaltes at the same time:


Getting the stacktraces is a bit difficult because the complete system is very unresponsive. Here is an example stacktrace but i don't know if it really shows the cause of the problems:


Full thread dump Java HotSpot(TM) Client VM (1.5.0_08-b03 mixed mode):

"DataExchange" daemon prio=1 tid=0x08b2df10 nid=0x2824 waiting for monitor entry [0x8545a000..0x8545b130]
	at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:287)
	- waiting to lock <0x91140270> (a org.apache.velocity.runtime.resource.ResourceManagerImpl)
	at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1102)
	at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1077)
	at org.apache.velocity.runtime.RuntimeSingleton.getTemplate(RuntimeSingleton.java:303)
	at org.apache.velocity.app.Velocity.getTemplate(Velocity.java:503)
	at de.his.servlet.util.ServletUtil.parseWithVelocity(ServletUtil.java:735)
	at de.his.servlet.util.ServletUtil.getVelocityString(ServletUtil.java:753)
	at de.his.xml.XSLTransformator.transform(XSLTransformator.java:163)
	at de.his.xml.XSLTransformator.transform(XSLTransformator.java:110)
	at de.his.xml.dbinterface.DBInterface.processRequest(DBInterface.java:431)
	at de.his.xml.dbinterface.DatabaseAdapter.processDirect(DatabaseAdapter.java:370)
	at de.his.xml.dbinterface.DatabaseAdapter.process(DatabaseAdapter.java:387)
	at de.his.xml.dbinterface.DatabaseAdapter.readDatabase(DatabaseAdapter.java:336)
	at de.his.xml.dbinterface.DatabaseAdapter.doDataExchange(DatabaseAdapter.java:680)
	at de.his.xml.dbinterface.DataExchangeThread.run(DataExchangeThread.java:144)
	at java.lang.Thread.run(Thread.java:595)


"http-8080-Processor23" daemon prio=1 tid=0x08220cc8 nid=0x2803 runnable [0x858e2000..0x858e3db0]
	at org.apache.velocity.runtime.parser.Parser.jj_scan_token(Parser.java:3259)
	at org.apache.velocity.runtime.parser.Parser.jj_3R_56(Parser.java:3089)
	at org.apache.velocity.runtime.parser.Parser.jj_3R_29(Parser.java:2696)
	at org.apache.velocity.runtime.parser.Parser.jj_3_8(Parser.java:2530)
	at org.apache.velocity.runtime.parser.Parser.jj_3_7(Parser.java:2574)
	at org.apache.velocity.runtime.parser.Parser.jj_2_7(Parser.java:2483)
	at org.apache.velocity.runtime.parser.Parser.Reference(Parser.java:1240)
	at org.apache.velocity.runtime.parser.Parser.PrimaryExpression(Parser.java:2391)
	at org.apache.velocity.runtime.parser.Parser.UnaryExpression(Parser.java:2366)
	at org.apache.velocity.runtime.parser.Parser.MultiplicativeExpression(Parser.java:2215)
	at org.apache.velocity.runtime.parser.Parser.AdditiveExpression(Parser.java:2139)
	at org.apache.velocity.runtime.parser.Parser.RelationalExpression(Parser.java:2007)
	at org.apache.velocity.runtime.parser.Parser.EqualityExpression(Parser.java:1931)
	at org.apache.velocity.runtime.parser.Parser.ConditionalAndExpression(Parser.java:1891)
	at org.apache.velocity.runtime.parser.Parser.ConditionalOrExpression(Parser.java:1851)
	at org.apache.velocity.runtime.parser.Parser.Expression(Parser.java:1798)
	at org.apache.velocity.runtime.parser.Parser.SetDirective(Parser.java:1730)
	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:310)
	at org.apache.velocity.runtime.parser.Parser.IfStatement(Parser.java:1453)
	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:293)
	at org.apache.velocity.runtime.parser.Parser.IfStatement(Parser.java:1453)
	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:293)
	at org.apache.velocity.runtime.parser.Parser.IfStatement(Parser.java:1453)
	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:293)
	at org.apache.velocity.runtime.parser.Parser.IfStatement(Parser.java:1453)
	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:293)
	at org.apache.velocity.runtime.parser.Parser.ElseStatement(Parser.java:1564)
	at org.apache.velocity.runtime.parser.Parser.IfStatement(Parser.java:1495)
	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:293)
	at org.apache.velocity.runtime.parser.Parser.process(Parser.java:258)
	at org.apache.velocity.runtime.parser.Parser.parse(Parser.java:105)
	at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1042)
	at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:972)
	at org.apache.velocity.Template.process(Template.java:120)
	at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:415)
	at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:335)
	- locked <0x91140270> (a org.apache.velocity.runtime.resource.ResourceManagerImpl)
	at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1102)
	at org.apache.velocity.runtime.directive.Parse.render(Parse.java:177)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:448)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
	at org.apache.velocity.runtime.directive.Parse.render(Parse.java:224)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
	at org.apache.velocity.runtime.directive.Parse.render(Parse.java:224)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:107)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
	at org.apache.velocity.runtime.directive.Parse.render(Parse.java:224)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:448)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:448)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:107)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:107)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
	at org.apache.velocity.Template.merge(Template.java:254)
	at de.his.servlet.util.ServletUtil.parseWithVelocity(ServletUtil.java:736)
	at de.his.servlet.util.ServletUtil.sendResponseWithVelocity(ServletUtil.java:684)
	at de.his.servlet.HISServletModuleImpl.handleRequest(HISServletModuleImpl.java:637)
	at de.his.servlet.RequestDispatcherServlet.invoke(RequestDispatcherServlet.java:908)
	at de.his.servlet.RequestDispatcherServlet.handleRequest(RequestDispatcherServlet.java:843)
	at de.his.servlet.RequestDispatcherServlet.doGet(RequestDispatcherServlet.java:1060)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)



    Environment: 
Integreated in Tomcat on Ubuntu Linux 
JDK version: 1.5.0_08-b03

  was:Integreated in Tomcat on both MS Windows an Linux servers

        Summary: Hanging in jj_scan_token (while holding lock for getResouce)  (was: Massive Performance issues after upgrading from 1.3 to 1.5)

> Hanging in jj_scan_token (while holding lock for getResouce)
> ------------------------------------------------------------
>
>                 Key: VELOCITY-562
>                 URL: https://issues.apache.org/jira/browse/VELOCITY-562
>             Project: Velocity
>          Issue Type: Bug
>    Affects Versions: 1.5
>         Environment: Integreated in Tomcat on Ubuntu Linux 
> JDK version: 1.5.0_08-b03
>            Reporter: nhb
>
> We are having trouble with deadlocks in Velocity after updating from 1.3 to 1.5
> The thread holding the lock allways it at org.apache.velocity.runtime.parser.Parser.jj_scan_token(Parser.java:3259)
> although the frames below that differ between restarts. It is not possible to use Eclipse to step over that line. It simply hangs.
> 3259 is this line: "if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;"
> Here is an example stacktrace:
> Full thread dump Java HotSpot(TM) Client VM (1.5.0_08-b03 mixed mode):
> "DataExchange" daemon prio=1 tid=0x08b2df10 nid=0x2824 waiting for monitor entry [0x8545a000..0x8545b130]
> 	at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:287)
> 	- waiting to lock <0x91140270> (a org.apache.velocity.runtime.resource.ResourceManagerImpl)
> 	at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1102)
> 	at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1077)
> 	at org.apache.velocity.runtime.RuntimeSingleton.getTemplate(RuntimeSingleton.java:303)
> 	at org.apache.velocity.app.Velocity.getTemplate(Velocity.java:503)
> 	at de.his.servlet.util.ServletUtil.parseWithVelocity(ServletUtil.java:735)
> [...]
> "http-8080-Processor23" daemon prio=1 tid=0x08220cc8 nid=0x2803 runnable [0x858e2000..0x858e3db0]
> 	at org.apache.velocity.runtime.parser.Parser.jj_scan_token(Parser.java:3259)
> 	at org.apache.velocity.runtime.parser.Parser.jj_3R_56(Parser.java:3089)
> 	at org.apache.velocity.runtime.parser.Parser.jj_3R_29(Parser.java:2696)
> 	at org.apache.velocity.runtime.parser.Parser.jj_3_8(Parser.java:2530)
> 	at org.apache.velocity.runtime.parser.Parser.jj_3_7(Parser.java:2574)
> 	at org.apache.velocity.runtime.parser.Parser.jj_2_7(Parser.java:2483)
> 	at org.apache.velocity.runtime.parser.Parser.Reference(Parser.java:1240)
> 	at org.apache.velocity.runtime.parser.Parser.PrimaryExpression(Parser.java:2391)
> 	at org.apache.velocity.runtime.parser.Parser.UnaryExpression(Parser.java:2366)
> 	at org.apache.velocity.runtime.parser.Parser.MultiplicativeExpression(Parser.java:2215)
> 	at org.apache.velocity.runtime.parser.Parser.AdditiveExpression(Parser.java:2139)
> 	at org.apache.velocity.runtime.parser.Parser.RelationalExpression(Parser.java:2007)
> 	at org.apache.velocity.runtime.parser.Parser.EqualityExpression(Parser.java:1931)
> 	at org.apache.velocity.runtime.parser.Parser.ConditionalAndExpression(Parser.java:1891)
> 	at org.apache.velocity.runtime.parser.Parser.ConditionalOrExpression(Parser.java:1851)
> 	at org.apache.velocity.runtime.parser.Parser.Expression(Parser.java:1798)
> 	at org.apache.velocity.runtime.parser.Parser.SetDirective(Parser.java:1730)
> 	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:310)
> 	at org.apache.velocity.runtime.parser.Parser.IfStatement(Parser.java:1453)
> 	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:293)
> 	at org.apache.velocity.runtime.parser.Parser.IfStatement(Parser.java:1453)
> 	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:293)
> 	at org.apache.velocity.runtime.parser.Parser.IfStatement(Parser.java:1453)
> 	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:293)
> 	at org.apache.velocity.runtime.parser.Parser.IfStatement(Parser.java:1453)
> 	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:293)
> 	at org.apache.velocity.runtime.parser.Parser.ElseStatement(Parser.java:1564)
> 	at org.apache.velocity.runtime.parser.Parser.IfStatement(Parser.java:1495)
> 	at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:293)
> 	at org.apache.velocity.runtime.parser.Parser.process(Parser.java:258)
> 	at org.apache.velocity.runtime.parser.Parser.parse(Parser.java:105)
> 	at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1042)
> 	at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:972)
> 	at org.apache.velocity.Template.process(Template.java:120)
> 	at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:415)
> 	at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:335)
> 	- locked <0x91140270> (a org.apache.velocity.runtime.resource.ResourceManagerImpl)
> 	at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1102)
> 	at org.apache.velocity.runtime.directive.Parse.render(Parse.java:177)
> 	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
> 	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
> 	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
> 	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
> 	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
> 	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
> 	at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:448)
> 	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
> 	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
> 	at org.apache.velocity.runtime.directive.Parse.render(Parse.java:224)
> 	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
> 	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
> 	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
> 	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
> 	at org.apache.velocity.runtime.directive.Parse.render(Parse.java:224)
> 	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
> 	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
> 	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
> 	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
> 	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
> 	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:107)
> 	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
> 	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
> 	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
> 	at org.apache.velocity.runtime.directive.Parse.render(Parse.java:224)
> 	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
> 	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
> 	at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:448)
> 	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
> 	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
> 	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
> 	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
> 	at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:448)
> 	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:170)
> 	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
> 	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
> 	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
> 	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:88)
> 	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
> 	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
> 	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:107)
> 	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:74)
> 	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
> 	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:107)
> 	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
> 	at org.apache.velocity.Template.merge(Template.java:254)
> 	at de.his.servlet.util.ServletUtil.parseWithVelocity(ServletUtil.java:736)
> 	at de.his.servlet.util.ServletUtil.sendResponseWithVelocity(ServletUtil.java:684)
> 	at de.his.servlet.HISServletModuleImpl.handleRequest(HISServletModuleImpl.java:637)
> 	at de.his.servlet.RequestDispatcherServlet.invoke(RequestDispatcherServlet.java:908)
> 	at de.his.servlet.RequestDispatcherServlet.handleRequest(RequestDispatcherServlet.java:843)
> 	at de.his.servlet.RequestDispatcherServlet.doGet(RequestDispatcherServlet.java:1060)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
> 	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
> 	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> 	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> 	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> 	at java.lang.Thread.run(Thread.java:595)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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


Re: [jira] Updated: (VELOCITY-562) Hanging in jj_scan_token (while holding lock for getResouce)

Posted by Stanislaus <ks...@yahoo.co.in>.
Hi..


This is Stan from India..
 
I have recently upgraded velocity 1.4 to velocity 1.5
 
And all the related jar files are updated..
 
I face a problem that.. the performance is down when updated from 1.4 to 1.5
in the development environment..  I mean that I have configured my project
in JbossIDE 1.6
 
When I debug from there.. the performance is slow compared to velocity 1.4..
Why ?
 
 
But the performance is equal when I run the jboss in the run mode.. By
running the run.bat file..
 
Need your reply soon..
 
Regards,
Stan
-- 
View this message in context: http://www.nabble.com/-jira--Created%3A-%28VELOCITY-562%29-Massive-Performance-issues-after-upgrading-from-1.3-to-1.5-tf4272000.html#a13488276
Sent from the Velocity - Dev mailing list archive at Nabble.com.


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