IBM Support

PI45379: THE BY CONTENT TEMPORARY FOR A PARAMETER IS NOT REUSED FOR LATER CALLS WITH THE SAME PARAMETER, INCREASING STACK FRAME SIZE.

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • For a parameter passed BY CONTENT, the item being passed is
    copied to a temporary, and the temporary is then effectively
    passed BY REFERENCE.
    
    Earlier versions of COBOL allocated/freed the temporary on the
    heap on a per call basis. COBOL v5+ uses temporaries on the
    stack (ie. in local-storage) as this has no additional
    allocation/free overhead.
    
    However, each call was being assigned its own BY CONTENT
    temporaries, which can significantly inflate the stack
    requirements if the BY CONTENT parameters are large or there are
    many such calls. This change will allow the temporaries to be
    reused, significantly reducing the stack requirements.
    
    Note that having the BY CONTENT temporaries on the stack can
    still cause space problems if running STACK(,,BELOW), even after
    this change.
    

Local fix

  • Make explicit copies of the BY CONTENT parameters in
    working-storage, and pass the copies BY REFERENCE. This doesn't
    support IS RECURSIVE programs however.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Enterprise COBOL V5.2 users who pass many    *
    *                 large data items BY CONTENT on multiple      *
    *                 calls.                                       *
    *                                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: Possible runtime abend if there is not  *
    *                      enough stack memory available for a     *
    *                      program.                                *
    *                                                              *
    ****************************************************************
    * RECOMMENDATION: Apply provided service.                      *
    *                                                              *
    ****************************************************************
    The compiler was creating temp space on the stack for parameters
    passed BY CONTENT but was not properly reusing the space between
    different calls.
    

Problem conclusion

  • The compiler was updated to reuse the temp space on the stack
    for parameters between calls in order to reduce stack memory
    usage.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI45379

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655W3200

  • Reported release

    520

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2015-07-21

  • Closed date

    2015-07-23

  • Last modified date

    2015-09-02

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

    PI44873

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

Modules/Macros

  • IGYCCBE
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655W3200

Applicable component levels

  • R520 PSY UI29671

       UP15/08/04 P F508

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SS6SG3","label":"Enterprise COBOL for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"520","Edition":"","Line of Business":{"code":"LOB17","label":"Mainframe TPS"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"520","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
02 September 2015