IBM Support

PI59511: CACHE OF A PREVIOUS (DYNAMIC CALL BY LITERAL) CALLER IS WRONGLY ASSOCIATED WITH THE CURRENT CALL GIVING U4039

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A dynamic call by literal uses a cache to keep information
    about the subprogram. In this case, the cache of a previous
    caller is wrongly associated with the current call, causing it
    to branch to the wrong subprogram, giving a U4039 abend. This
    wrong association happens due to a rare combination of the call
    literal address and the hash used to identify the cache.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL V5 and later       *
    *                 compilers running batch programs that        *
    *                 contain dynamic call by literal statements   *
    *                 and CANCEL statements.                       *
    *                                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: Runtime ABEND: The COBOL library is     *
    *                      doing dynamic call to a COBOL           *
    *                      subprogram. The COBOL subprogram        *
    *                      ABENDs U4039 RC=0 U=0008 because the    *
    *                      COBOL library passes incorrect          *
    *                      parameter information to the            *
    *                      subprogram.                             *
    *                                                              *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    ****************************************************************
    When doing dynamic call by literal, the COBOL library uses a
    cache to keep information about called programs. The purpose is
    to speed up subsequent calls to the same subprogram. Due to an
    error in accessing the cache, the cached information could be
    incorrect after a previous program cancel. As a result, wrong
    information about the entry point of the subprogram may be used
    in subsequent calls, leading to the ABEND. This affects only
    batch programs.
    

Problem conclusion

  • The COBOL library code is fixed to access the dynamic call
    cache correctly.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI59511

  • Reported component name

    LE ENT COBOL LI

  • Reported component ID

    568819812

  • Reported release

    780

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-03-21

  • Closed date

    2016-03-23

  • Last modified date

    2016-04-05

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

    PI59362

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

Modules/Macros

  • IGZXBST1 IGZXBST2
    

Fix information

  • Fixed component name

    LE ENT COBOL LI

  • Fixed component ID

    568819812

Applicable component levels

  • R780 PSY UI36468

       UP16/03/30 P F603

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