Tried for some time now to duplicate the error without Java in the picture by duplicating some of the code patterns that get applied there in c++ and an ooRexx program.
However so far I was not able to recreate that crash. The only thing that I can provoke (on a Windows box with 32-bit ooRexx) is a condition indicating that there are no more threads available from the system: G:\oorexx.tmp\bugs\sysinterpreter>testInterpreterInstances.exe 600 Created interpreter instance version=5.0.0 language level=6.05 Using interpreter to execute dii.rex result=[a Package] clzElapser =[0260F4A8] clzRII =[02608538] clzNoOp =[02604B20] r_redirect =[025FA578] r_do_requires=[0261AA98] pgk_requires =[02617978] elapseTime =[600] 129 *-* reply -- sleep 124 *-* self~sleep -- not yet slept? 104 *-* .waiter~new(random(1,750)/1000)~wait -- wait a bit (terminates a RII randomly) Error 48 running G:\oorexx.tmp\bugs\sysinterpreter\dii.rex line 129: Failure in system service. Error somewhere in rii # [30320], aborting ... Error 48.1: Failure in system service: Error creating thread. ---> standardConditionMsg(...), start: 102 *-* reply -- return Error 48 running G:\oorexx.tmp\bugs\sysinterpreter\dii.rex line 102: Failure in system service. Error 48.001: Failure in system service: Error creating thread. <--- standardConditionMsg(...), end. "rii" stands for "Rexx interpreter instance", the condition occurs therefore at Rexx intepreter instance # 30,320 (sic!). The threads get excercised by Rexx code using reply at two locations (one location does a syssleep for random time after which the rii gets terminated). In the case you may see utility in this particular scenario please let me know and I submit a tidied up version of the code (c++ plus an ooRexx program). --- Short of new ideas, is there anything I could try to shed more light on this problem while excercising the Java server page test? ---rony On 19.10.2021 20:19, Rony G. Flatscher wrote: > > Short of anything else: > > * on the Linux box (it is four times slower than my current Windows laptop) > when the crash point > comes nearer the times between the last (appr. ten) JSP requests become > longer and longer, as > if the Rexx executions slow down from RexxInterpreter instance to > RexxInterpreter instance. > (The setup is a Java client using http requests to fetch the ooRexx-JSP > from the Tomcat 9 and > Tomcat 10 server. The Tomcat servers have a taglib that allows ooRexx > scripts to be embedded > and that get run upon each request. The test JSP has a single Rexx script > that outputs text > with the result of .dateTime~new, cf. the JSP file below.) > > * not sure whether this is relevant: .input, .output and .error get > redirected to Rexx objects > that forward to the Java Reader and Writers supplied by the Java > scripting framework (.stdin, > .stdout, .stderr remain untouched). > > ---rony > > P.S.: here the content of ooRexx_helloWorld.jsp: > > <%@ page session="false" pageEncoding="UTF-8" contentType="text/html; > charset=UTF-8" %> > <%@ taglib uri="http://rexxla.org/taglibs/jsr223" prefix="s" %> > <!DOCTYPE html> > <html> > <head> > <meta charset="UTF-8" /> > <style> > body { background-color: ivory; } > </style> > <title>ooRexx_helloWorld.jsp (Title)</title> > </head> > <body> > <h1>"Hello, world ..." (ooRexx)</h1> > *<s:script type="rexx">****say '<p style="background-color: > gold;">Hello, world, this is ooRexx speaking at:' > .dateTime~new '</p>'****</s:script>* > > <hr width="75%" style="color: green;"> > <p>Done.<p> > </body> > </html> > > > On 19.10.2021 20:07, Rony G. Flatscher wrote: >> On 19.10.2021 19:53, Rony G. Flatscher wrote: >>> Dear Erich, >>> >>> On 19.10.2021 19:19, Erich Steinböck wrote: >>>> a shot in the dark: the newly created InterpreterInstance might get GC'ed >>>> before being added to >>>> the Interpreter's list of instances. >>>> >>>> I just committed revision 12298 which might fix that. You may want to try >>>> it. >>> will try it out right now, thank you very much! >> >> No, it did not fix the issue, it crashes at the same time (at the 168th JSP >> request), the >> hs_error log file: >> >> # >> # A fatal error has been detected by the Java Runtime Environment: >> # >> # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x77668ce1, pid=8012, >> tid=0x00002c94 >> # >> # JRE version: Java(TM) SE Runtime Environment (8.0_171-b11) (build >> 1.8.0_171-b11) >> # Java VM: Java HotSpot(TM) Client VM (25.171-b11 mixed mode, sharing >> windows-x86 ) >> # Problematic frame: >> *# C [rexx.dll+0xd8ce1] SysInterpreterInstance::initialize+0x181* >> # >> # Failed to write core dump. Minidumps are not enabled by default on >> client versions of Windows >> # >> # If you would like to submit a bug report, please visit: >> # http://bugreport.java.com/bugreport/crash.jsp >> # The crash happened outside the Java Virtual Machine in native code. >> # See problematic frame for where to report the bug. >> # >> >> --------------- T H R E A D --------------- >> >> Current thread (0x16b96400): JavaThread "http-nio-42857-exec-7" daemon >> [_thread_in_native, id=11412, stack(0x18e60000,0x18ed0000)] >> >> siginfo: ExceptionCode=0xc0000005, reading address 0x00000000 >> >> Registers: >> EAX=0x75cd0360, EBX=0x1d3e08d4, ECX=0x89786e6f, EDX=0x00000000 >> ESP=0x18ecddd0, EBP=0x75be7170, ESI=0x00000000, EDI=0x76a41700 >> EIP=0x77668ce1, EFLAGS=0x00010206 >> >> Top of Stack: (sp=0x18ecddd0) >> 0x18ecddd0: 00000002 00000201 776b5598 00ebbcf8 >> 0x18ecdde0: 1cfeaae8 18ecde28 1d3e08b8 1d261cb0 >> 0x18ecddf0: 00ebbcf8 1cfeaae8 915e1325 7767684a >> 0x18ecde00: 1d3e08b8 00ebbcf8 915e10e1 00000000 >> 0x18ecde10: 1d3e08b8 00000002 1cfeaae8 18ecde5c >> 0x18ecde20: 7769e781 ffffffff 18ecde68 77674e23 >> 0x18ecde30: 1d430808 00ebbcf8 915e10a1 00000000 >> 0x18ecde40: 776c04d8 00000000 1d430808 1d3e08b8 >> >> Instructions: (pc=0x77668ce1) >> 0x77668cc1: 55 6b 77 6a 08 6a f4 ff d7 50 ff 15 30 e7 6e 77 >> 0x77668cd1: 83 c4 08 50 ff 15 4c e6 6e 77 6a 02 8b f0 ff d5 >> 0x77668ce1: 8b 0e 83 c4 0c 89 08 6a 01 68 16 27 59 77 ff 15 >> 0x77668cf1: 74 e1 6e 77 8b 44 24 24 6a 01 89 03 ff 15 6c e1 >> >> >> Register to memory mapping: >> >> EAX=0x75cd0360 is an unknown value >> EBX=0x1d3e08d4 is an unknown value >> ECX=0x89786e6f is an unknown value >> EDX=0x00000000 is an unknown value >> ESP=0x18ecddd0 is pointing into the stack for thread: 0x16b96400 >> EBP=0x75be7170 is an unknown value >> ESI=0x00000000 is an unknown value >> EDI=0x76a41700 is an unknown value >> >> >> Stack: [0x18e60000,0x18ed0000], sp=0x18ecddd0, free space=439k >> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, >> C=native code) >> *C [rexx.dll+0xd8ce1] SysInterpreterInstance::initialize+0x181* >> >> Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) >> j >> org.rexxla.bsf.engines.rexx.RexxAndJava.jniRexxCreateInterpreterInstance([Ljava/lang/Object;)Ljava/lang/String;+0 >> j >> org.rexxla.bsf.engines.rexx.RexxAndJava.createRexxInterpreterInstance(Lorg/rexxla/bsf/engines/rexx/RexxConfiguration;)Ljava/lang/String;+60 >> j >> org.rexxla.bsf.engines.rexx.RexxEngine.apply(Ljava/lang/String;IILjava/lang/Object;Ljava/util/Vector;Ljava/util/Vector;)Ljava/lang/Object;+56 >> j >> org.rexxla.bsf.engines.rexx.jsr223.RexxScriptEngine.updateRexxEngine(Ljavax/script/ScriptContext;)V+40 >> j >> org.rexxla.bsf.engines.rexx.jsr223.RexxScriptEngine.compile(Ljava/lang/String;Ljava/lang/String;)Ljavax/script/CompiledScript;+805 >> j >> org.rexxla.bsf.engines.rexx.jsr223.RexxScriptEngine.eval(Ljava/lang/String;Ljavax/script/ScriptContext;)Ljava/lang/Object;+195 >> J 10654 C1 >> javax.script.AbstractScriptEngine.eval(Ljava/lang/String;)Ljava/lang/Object; >> (10 bytes) @ 0x01ee7d3c [0x01ee7d10+0x2c] >> J 10207 C1 org.rexxla.taglibs.jsr223.BaseImpl.doEndTag()I (7572 bytes) @ >> 0x028289ac [0x0281a530+0xe47c] >> j >> org.apache.jsp.ooRexx_005fhelloWorld_jsp._jspx_meth_s_005fscript_005f0(Ljavax/servlet/jsp/PageContext;)Z+105 >> j >> org.apache.jsp.ooRexx_005fhelloWorld_jsp._jspService(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+255 >> J 6664 C1 >> org.apache.jasper.runtime.HttpJspBase.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V >> (7 bytes) @ 0x023df1fc [0x023df1d0+0x2c] >> J 6378 C1 >> javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V >> (40 bytes) @ 0x01f8d02c [0x01f8cf80+0xac] >> J 6654 C1 >> org.apache.jasper.servlet.JspServletWrapper.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Z)V >> (582 bytes) @ 0x023e5e3c [0x023e5860+0x5dc] >> J 6653 C1 >> org.apache.jasper.servlet.JspServlet.serviceJspFile(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljava/lang/String;Z)V >> (128 bytes) @ 0x023e7cd4 [0x023e7a80+0x254] >> J 6661 C1 >> org.apache.jasper.servlet.JspServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V >> (357 bytes) @ 0x023e1710 [0x023e0940+0xdd0] >> J 6378 C1 >> javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V >> (40 bytes) @ 0x01f8d02c [0x01f8cf80+0xac] >> J 5984 C1 >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V >> (388 bytes) @ 0x0221f928 [0x0221f790+0x198] >> J 5983 C1 >> org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V >> (103 bytes) @ 0x02220ae8 [0x02220ac0+0x28] >> J 6282 C1 >> org.apache.tomcat.websocket.server.WsFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V >> (139 bytes) @ 0x02378264 [0x02377f10+0x354] >> J 5984 C1 >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V >> (388 bytes) @ 0x0221fa98 [0x0221f790+0x308] >> J 5983 C1 >> org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V >> (103 bytes) @ 0x02220ae8 [0x02220ac0+0x28] >> J 6277 C1 >> org.apache.catalina.core.StandardWrapperValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V >> (2665 bytes) @ 0x022c43a4 [0x022c30b0+0x12f4] >> J 6273 C1 >> org.apache.catalina.core.StandardContextValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V >> (175 bytes) @ 0x0237d49c [0x0237d120+0x37c] >> J 6214 C1 >> org.apache.catalina.authenticator.AuthenticatorBase.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V >> (873 bytes) @ 0x021ba9e4 [0x021b9940+0x10a4] >> J 6270 C1 >> org.apache.catalina.core.StandardHostValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V >> (396 bytes) @ 0x0237e968 [0x0237e6e0+0x288] >> J 6269 C1 >> org.apache.catalina.valves.ErrorReportValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V >> (153 bytes) @ 0x02380ca0 [0x02380c60+0x40] >> J 6016 C1 >> org.apache.catalina.valves.AbstractAccessLogValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V >> (72 bytes) @ 0x020b91a0 [0x020b90b0+0xf0] >> J 6267 C1 >> org.apache.catalina.core.StandardEngineValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V >> (65 bytes) @ 0x02382110 [0x02381f90+0x180] >> J 6461 C1 >> org.apache.catalina.connector.CoyoteAdapter.service(Lorg/apache/coyote/Request;Lorg/apache/coyote/Response;)V >> (892 bytes) @ 0x022a5db8 [0x022a5880+0x538] >> J 6015 C1 >> org.apache.coyote.http11.Http11Processor.service(Lorg/apache/tomcat/util/net/SocketWrapperBase;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState; >> (1189 bytes) @ 0x020ba34c [0x020b99f0+0x95c] >> J 6238 C1 >> org.apache.coyote.AbstractProcessorLight.process(Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/tomcat/util/net/SocketEvent;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState; >> (367 bytes) @ 0x0238ec0c [0x0238e800+0x40c] >> J 6347 C1 >> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/tomcat/util/net/SocketEvent;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState; >> (1315 bytes) @ 0x0217da90 [0x0217cda0+0xcf0] >> J 6346 C1 >> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun()V (637 bytes) >> @ 0x0218c928 [0x0218c690+0x298] >> J 6459 C1 org.apache.tomcat.util.net.SocketProcessorBase.run()V (35 >> bytes) @ 0x02090928 [0x020907e0+0x148] >> J 6487% C1 >> java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V >> (225 bytes) @ 0x023412a4 [0x023410a0+0x204] >> j java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5 >> j org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run()V+4 >> j java.lang.Thread.run()V+11 >> v ~StubRoutines::call_stub >> >> --------------- P R O C E S S --------------- >> ... cut ... >> >> ---rony >>
_______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel