A fix is available
APAR status
Closed as program error.
Error description
COBOL maintains a recursion counter for each compile unit that's incremented on entry and decremented on exit from a compile unit. If the compile unit is not defined as RECURSIVE, the recursion counter must be zero on entry, or the IGZ0064S condition is raised. During a condition handler resume, the call stack must be collapsed back to the state it was at the resume point, which means the usual exit from a compile unit on the call stack is not taken. The recursion counter is however decremented by COBOL's member event 11 (DSA exit routine) as the stack is collapsed, based on a flag in the PPA for the entry point used. That flag is erroneously not set for secondary entry points, so any compile units active on the call stack that were entered at secondary entry points will not have their recursion counters decremented during a resume. Subsequent calls to either the primary or any of the secondary entry points will fail with the IGZ0064S condition. For RECURSIVE compile units, the recursion counter might reach arbitrarily high values with sufficient resumes.
Local fix
Use primary entry points only.
Problem summary
**************************************************************** * USERS AFFECTED: Users of Enterprise COBOL V5.2 running * * programs that are called again after * * recovery from condition, when the program * * was initially entered at an alternate ENTRY * * point. * * * **************************************************************** * PROBLEM DESCRIPTION: Program ABEND with message IGZ0064S: * * When an Enterprise COBOL V5.2 program * * is entered at an alternate ENTRY point, * * and the program is exited abnormally, * * the compiler generated counter used to * * keep track of whether a program is * * called recursively is not properly * * decremented. Subsequently if the * * program is entered again, for example * * after the original condition that * * caused the abnormal exit is handled * * and execution resumed, the program may * * fail with message IGZ0064S. * * * **************************************************************** * RECOMMENDATION: Apply the provided PTF. * * * **************************************************************** The compiler was not setting the 'Exit DSA' bit in the LE PPA1 'program flags' for an alternate entry point.
Problem conclusion
The compiler mas modified to set the 'Exit DSA' bit in the LE PPA1 'program flags' for an alternate entry point.
Temporary fix
Comments
APAR Information
APAR number
PI70646
Reported component name
ENT COBOL FOR Z
Reported component ID
5655W3200
Reported release
520
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2016-10-13
Closed date
2016-11-22
Last modified date
2016-12-01
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
PI72822
Modules/Macros
IGYCRCTL
Fix information
Fixed component name
ENT COBOL FOR Z
Fixed component ID
5655W3200
Applicable component levels
R520 PSY UI42823
UP16/11/26 P F611
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:
01 December 2016