A fix is available
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:
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