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>&quot;Hello, world ...&quot; (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

Reply via email to