Hi there,
a while ago I reported a bug <http://sourceforge.net/p/oorexx/bugs/1161/>,
which originally was
reported in the BSF4ooRexx project, cf.
<http://sourceforge.net/p/bsf4oorexx/bugs/16/>.
My inquiry of February has not yielded any reaction, possibly because it was
difficult to set up an
environment to test.
So, today I got some time to create a zip-archive that will make it easy to
create the environment
and execute the testprograms. The zip-archive can be downloaded from
<http://wi.wu.ac.at/rgf/rexx/misc/bugs/bugAndCrash20130530.zip>.
Just unzip the archive, create a command linw window, switch into the directory
"bugAndCrash20130530" (this contains a readme.txt file as well, which is given
after my signature
below FYI) and execute "setenv32.cmd" or "setenv64.cmd", depending on the
bitness of your ooRexx
and Java (Java needs to be installed in the bitness that ooRexx uses on your
machine). These batch
files set PATH and CLASSPATH such, that one is abel to execute the test
programs. Just switch to the
subdirectory "testprograms" and run "runBug2.cmd" (this will crash ooRexx), and
run "runBug1.cmd"
(this one needs to be interrupted by constantly pressing CTL-C and analyzing
its logfile).
This way, the developers should be able to use their debug version of ooRexx
and run the test
programs against it. In case of crashes it should then be possible to analyze
the cause.
---rony
This contains the BSF4ooRexx runtime environment for Windows.
Prerequisite: ooRexx and Java with the same bitness (either 32 or 64 bit).
Running the test programs, open a command line window:
- execute "setenv32.cmd" or "setenv64.cmd" depending on the bitness
of your ooRexx and installed Java (bitness needs to match in order
for BSF4ooRexx to be able to load Java); this script will set the
environment's PATH and CLASSPATH to point to .\bsf4oorexx and the
32 or 64 bit BSF4ooRexx dll
if everything went o.k., then you will see the output of running
the test script testJava.rxj, showing the version of ooRexx, Java
and the BSF4ooRexx dll; otherwise please make sure that ooRexx and
Java are of the same bitness!
- go into the subdirectory "testprograms"
- execute runBug1.cmd, after approximately 15 seconds press and
continue to press CTL-C until the program returns
- analyze the logfile "ConcurrentPackageBug1.logfile.txt" and
look for "package.cls loaded, BSFGetTID()..."
- about the test program "ConcurrentPackageBug1.java": this
program will create by default 16 (using runBug1.cmd only 2)
Java threads; for each Java thread a Rexx interpreter gets
created (each BSFManager instance creates and represents a
separate Rexx interpreter instance which used for executing
a Rexx program);
bug: looking at the logfile you will see that each Rexx
interpreter instance will eventually reload the package
"package.cls" which should not be the case
- execute runBug2.cmd, after a while the program will crash
- Java creates a hs_err_pidNN.log file containing the state
of the JVM, a backtrace and a pointer to the cause of the
crash, which is in native code (rexx.dll,
RexxWaitForTermination)
- the logfile "ConcurrentPackageBug2CrashingRexx.logfile.txt"
will contain the output of the test program up to and including
to the point in time when the crash occurs
- about the test program "ConcurrentPackageBug2CrashingRexx.java":
this program will create by default 16 (using runBug2.cmd only
2)
Java threads; in each Java thread *each time* the while-loop
starts over *a new Rexx interpreter instance gets created*,
that then executes the Rexx program "crash2.rxj" which loads
(requires) "package.cls"
bug: crash of ooRexx
References:
- zip-file with all of the files will be temporarily available
from
<http://wi.wu.ac.at/rgf/rexx/misc/bugs/bugAndCrash20130530.zip>
- original report of the bug in the BSF4ooRexx tracking system, cf.
<http://sourceforge.net/p/bsf4oorexx/bugs/16/>
- bug tracker item in the ooRexx project, cf.
<http://sourceforge.net/p/oorexx/bugs/1161/>
------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel