Hi,

under very high load it seems that Saxon ends in an infinite loop.
We are using Saxon PE 9.2.0.6 PE for Java.

After firing millions of requests to Tomcat with Apache JMeter i can reproduce it sometimes.
(full CPU load and LamdaProbe shows two open connections at jk-8009 with Status Service). the only solution is a tomcat restart.

I was able to find this two open Connections in JConsole and allocated them to threads.

This two threads have the same StackTrace:

Name: TP-Processor39
State: RUNNABLE
Total blocked: 93  Total waited: 3

Stack trace:
java.util.HashMap.put(HashMap.java:374)
net.sf.saxon.instruct.GlobalParameterSet.put(GlobalParameterSet.java:45)
net.sf.saxon.Controller.setParameter(Controller.java:2161)
jart.processhandlers.transformToOutput.handleProcess(transformToOutput.java:126)
jart.JArtRequest.doFilter(JArtRequest.java:191)
jart.JArtFilter.doFilter(JArtFilter.java:145)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.jstripe.tomcat.probe.Tomcat55AgentValve.invoke(Tomcat55AgentValve.java:20)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Thread.java:619)


any ideas???

we are looking for this bug for months now and we think that Saxon is the problem,
because formerly we used Xalan for years and never had such a problem with CPUs staying in full load.