#1054 Crash at end of program

4.1.1
closed
Rick McGuire
none
5
2013-11-22
2012-03-10
No

This is with ooRexx 4.1.1 beta (build date: Feb 26 2012), Windows XP SP 3.

Received a short Rexx test program, which uses the ooRexx framework log4ooRexx. Upon termination (the last logged entry in the logfile can be found after the crash in the file) a Windows crash popup window occurs.

To duplicate: please download the attached file and unzip it. Then run "rexx-log-test.rex". At the end of the run the exception occurs.

Discussion

  • By accident I ended up with a new command line window and re-ran the test program without a problem.

    Switching to the previous window and running the same program there still causes the crash in Rexx. Although the PATH is different (added two directories) I am not able to identify a possible cause for this. There is no other Rexx or reltated file, the Rexx program itself uses "pure ooRexx".

    So, if there is anything I can research, please advise, I try to keep the command-line windows open and not reboot the PC today.

     
  • Now I can reproduce the crash on XP SP3 with ooRexx 4.1.1 in any command line window; this version makes sure that required/called programs/packages are in a different directory than the Rexx program (log-test.rex) that gets executed.

    Steps to setup the crashing version:

    • unzip "crash_log4rexx_20120310-with-needed-setup.zip"
    • open command line window, change into "work\crash" directory and run:

    • setEnvironment.bat (will prepend PATH with superdirectory "..")

    • rexx log-test.rex

    [In case it is important, information on log4oorexx http://wi.wu-wien.ac.at/rgf/rexx/orx18/log4r/2007_orx18_log4rexx-20070517-article.pdf, via: http://wi.wu-wien.ac.at:8002/rgf/rexx/orx18/log4r/

     
  • jfaucher
    jfaucher
    2012-03-10

    I had the crash with the first attached file.
    What I see under debugger is that :
    uninit is sent to the targetStream of FileAppender (by lastChanceUninit) --> the variable "CSELF" is dropped
    and then uninit is sent to the FileAppender
    --> log4rexx_appender.cls:621
    targetStream~charout(self~layout~footer) : crash because stream_info is NULL (no "CSELF" variable in the context)

    More details in the attached file jlf_debug.txt

    A possible fix could be to test if stream_info is NULL (already done in stream_close and stream_uninit).
    If this is the right way to fix the crash, then we should review all the functions which depend on CSELF and make them support the case NULL.
    I can do that, just tell me...

     
  • jfaucher
    jfaucher
    2012-03-10

     
    Attachments
  • Rick McGuire
    Rick McGuire
    2012-03-10

    Already working on this. For now, I'm just going to have this raise a Failure in System Service error if there is a call after the stream has done uninit cleanup. Not sure there's much more that can be done. I might consider adding a new error message for this situation on the trunk version.

     
  • Rick McGuire
    Rick McGuire
    2012-03-10

    Committed revision 7642 - 4.1 branch
    Committed revision 7643 - trunk

     
  • Mark Miesfeld
    Mark Miesfeld
    2012-07-16

    The fix for this item was in the 4.1.1 or 4.1.0 release.

     
  • Rick McGuire
    Rick McGuire
    2013-11-22

    • Pending work items: --> none
    • Group: Next_Release --> 4.1.1
     


Anonymous


Cancel   Add attachments