IBM Support

PI86855: Function descriptors created for CEEFETCH or CEEPIPI ADD_ENTRY are not deleted upon module delete, leading to memory leak

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When a COBOL v5+ module is loaded via CEEFETCH or CEEPIPI
    ADD_ENTRY a function descriptor is created in an "additional"
    heap below the line. The function descriptor is however not
    deleted if the module to which it points is later deleted.
    
    In long running address spaces like a Db2 stored procedure
    address space with STAY RESIDENT NO stored procedures, the leak
    can eventually bring down the address space. A dump will show
    via verbx ledata 'heap' "Additional Heap Control Blocks" heap
    segments below the line with SEG_LEN:00001000 and many entries
    LEN(X'00000050') starting MBLK.
    
    This problem was exacerbated by the October 2016 run-time's
    PI70080: ABEND0C4 CALLING COBOL V5+ PROGRAM LOADED BY CEEFETCH
    MACRO.
    
    If prior to the March 2017 run-time PTF PI78197: CEE0813S
    insufficient storage creating procedure-pointer via SET
    statement or the CEEFETCH macro, the SEG_LEN of the additional
    heap will be that of the HEAP() run-time parameter.
    

Local fix

  • None. STAY RESIDENT YES stored procedures are not affected by
    the leak, but changing from STAY RESIDENT NO to YES requires
    that the affect procedures be able to cope with residual values.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 5.1 and later      *
    *                 releases compiling and running programs      *
    *                 called by LE Pre-initialized environment     *
    *                 (such as DB2 Stored Procedures) or CEEFETCH  *
    *                                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: Runtime ABEND in COBOL library routine  *
    *                      IGZCEV40 due to insufficient heap       *
    *                      storage.                                *
    *                                                              *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    *                                                              *
    ****************************************************************
    A function descriptor control block that is used by LE to call
    COBOL programs is not freed after usage. If a very large number
    of COBOL V5 or COBOL V6 programs are called under the
    Pre-initialized Environment (such as DB2 Stored Procedures) or
    using CEEFETCH, the system may run out of heap storage.
    

Problem conclusion

  • The COBOL run time library is fixed to free the function
    descriptor after usage.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI86855

  • Reported component name

    LE ENT COBOL LI

  • Reported component ID

    568819812

  • Reported release

    7A0

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-09-05

  • Closed date

    2017-09-22

  • Last modified date

    2017-10-02

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

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

    PI87544

Modules/Macros

  • IGZXLPKA
    

Fix information

  • Fixed component name

    LE ENT COBOL LI

  • Fixed component ID

    568819812

Applicable component levels

  • R7A0 PSY UI50539

       UP17/09/28 P F709

  • R790 PSY UI50540

       UP17/09/28 P F709

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":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSCVR7X","label":"Runtime"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
14 December 2020