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

Reply via email to