IBM Support

PI86504: 0C4 IN CELHV003 AFTER XPLINK EXCEPTION HANDLING

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • An 0C4 is encountered in the LE C++ Runtime when an exception is
    thrown in a function with a very large stack frame/memory usage.
    The issue only occurs when using XPLINK.
    
    
    
       === TEST CASE ===
    
    extern "C" int printf(const char *, ...);
    void foo(void *p) { }
    
    struct NRV {
      ~NRV() {
        printf("%p\n", (void *)this);
      }
    };
    
    NRV executeCommand(bool throw42) {
      NRV output;
      char ifrabuf[1000000];
      try {
        foo(ifrabuf);
      } catch ( ... ) { }
    
      if (throw42) {
        foo(0);
    
        printf("%p\n", (void *)&output);
        throw 42;
      }
      return output;
    }
    
    int main(void) {
      try { executeCommand(true); }
      catch ( ... ) { }
    }
    
    
    $ xlC -qxplink apar.cpp
    $ ./a.out
    265B7F10
    CEE3204S The system detected a protection exception (System
    Completion Code=0C4).
    From entry point executeCommand(bool) at compile unit offset
    +0000012E at entry offset +0000012E at address 25D0A2EE.
    Segmentation fault
    $
    
    
    Traceback:
        DSA   Entry       E  Offset  Statement   Load Mod
        1     CEEHDSP     +00004A4C              CEEPLPKA
        2     CEEHRNUH    +0000009A              CEEPLPKA
        3     __zerrh     +0000065A              CELHV003
        4     CEEVROND    +0000127E              CEEPLPKA
        5     CEEHDSP     +00001A8C              CEEPLPKA
        6     CEEVH2OS    +0000006E              CEEPLPKA
        7     __DoThrow   +0000008E              CELHV003
        8     __Throw     +00000184              CELHV003
        9     CEEVHPFR    +00000002              CEEPLPKA
        10    executeCommand(bool)
                          +0000012E              a.out
        11    CEEVHPFR    +00000002              CEEPLPKA
        12    main        +0000003C              a.out
    

Local fix

  • Do not use XPLINK.
    Reduce size of stack frame.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  z/OS XL C++ V2R1 and later users compiling  *
    *                 applications with very large stack frames    *
    *                 and XPLINK                                   *
    ****************************************************************
    * PROBLEM DESCRIPTION: Failure during C++ exception handling.  *
    ****************************************************************
    .
    

Problem conclusion

  • Apply service provided.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI86504

  • Reported component name

    C/C++ FOR MVS

  • Reported component ID

    56551210A

  • Reported release

    790

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-08-29

  • Closed date

    2017-10-04

  • Last modified date

    2018-04-04

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

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

    PI87350 PI95830 PI96199

Modules/Macros

  • CCNECICS CCNECWI  CCNED210 CCNEDSCT CCNEDWRT CCNEFILT CCNEHIFC
    CCNEMDEP CCNEOPTP CCNEP    CCNEPP   CCNETBY  CCNMSGE  CCNMSGT
    

Fix information

  • Fixed component name

    C/C++ FOR MVS

  • Fixed component ID

    56551210A

Applicable component levels

  • R790 PSY UI50869

       UP17/10/20 P F710

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":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"790","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSQKCWV","label":"IBM C\/C++ for MVS\/ESA"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"790","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
09 August 2024