IBM Support

PM75874: 0C3/AKEA Abend in heap memory management

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Environment: IBM z/OS
    Product name: IBM? Rational? Business Developer
    Program Version    :  8.5
    Description:
    Abend in heap memory management due to TUI segmented converse
    logic not refreshing exception record address
    Additional Problem: Invalid call to EZESSM results in ASRA at
    +4BE.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    This problem only occurs on segmented converse TUI programs
    that also issue their own "throw" statement in the code. The
    throw statement created a temporary exception record that
    really is not temporary. This record is associated with the
    global program list of variables. When a TUI segmented
    converse occurs, the program variables are saved in the
    environment and restored when the user presses enter. Once
    restored, any heap memory pointers need to be updated to use
    the new memory location that the restore allocates for them.
    The list of these variables is passed to the SSM program
    which then allocates new memory and updates the pointer. The
    problem was that temporary variables were not being added to
    this list, which is normally correct. However temporary
    exception records are really not temporary, so they should
    have been added. Because they were not added, when the SSM
    program restored the program variables, the old pointer
    address was left in place, causing the variable to now be
    pointing to a piece of memory in CICS that was wrong. An
    abend would not necessarily occur at this point, because it
    is possible this memory address is still in CICS. If
    transaction isolation was turned on, the abend would likely
    occur.
    Later on, when a garbage collection was performed by the
    heap memory manager, this invalid address would be used in
    the calculation of memory to be used. Due to the invalid
    address, a variety of problems could occur, such as a huge
    length being used, or an abend.
    

Problem conclusion

  • The resolution to this, is on the generator side to include
    the exception record as part of the list of pointers that
    SSM is to fixup.
    There is a fixtest for this problem for both 801x and 85
    systems. This fixtest should be applied and only the program
    that is doing the segmented converse needs to be
    regenerated.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM75874

  • Reported component name

    RATL BUS DEV

  • Reported component ID

    5724S5000

  • Reported release

    850

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-10-25

  • Closed date

    2012-11-27

  • Last modified date

    2012-11-27

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    RATL BUS DEV

  • Fixed component ID

    5724S5000

Applicable component levels

  • R850 PSN

       UP

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSMQ79","label":"Rational Business Developer"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.5","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
27 November 2012