A fix is available
APAR status
Closed as program error.
Error description
For a parameter passed BY CONTENT, the item being passed is copied to a temporary, and the temporary is then effectively passed BY REFERENCE. Earlier versions of COBOL allocated/freed the temporary on the heap on a per call basis. COBOL v5+ uses temporaries on the stack (ie. in local-storage) as this has no additional allocation/free overhead. However, each call was being assigned its own BY CONTENT temporaries, which can significantly inflate the stack requirements if the BY CONTENT parameters are large or there are many such calls. This change will allow the temporaries to be reused, significantly reducing the stack requirements. Note that having the BY CONTENT temporaries on the stack can still cause space problems if running STACK(,,BELOW), even after this change.
Local fix
Make explicit copies of the BY CONTENT parameters in working-storage, and pass the copies BY REFERENCE. This doesn't support IS RECURSIVE programs however.
Problem summary
**************************************************************** * USERS AFFECTED: Enterprise COBOL V5.2 users who pass many * * large data items BY CONTENT on multiple * * calls. * * * **************************************************************** * PROBLEM DESCRIPTION: Possible runtime abend if there is not * * enough stack memory available for a * * program. * * * **************************************************************** * RECOMMENDATION: Apply provided service. * * * **************************************************************** The compiler was creating temp space on the stack for parameters passed BY CONTENT but was not properly reusing the space between different calls.
Problem conclusion
The compiler was updated to reuse the temp space on the stack for parameters between calls in order to reduce stack memory usage.
Temporary fix
Comments
APAR Information
APAR number
PI45379
Reported component name
ENT COBOL FOR Z
Reported component ID
5655W3200
Reported release
520
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2015-07-21
Closed date
2015-07-23
Last modified date
2015-09-02
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Modules/Macros
IGYCCBE
Fix information
Fixed component name
ENT COBOL FOR Z
Fixed component ID
5655W3200
Applicable component levels
R520 PSY UI29671
UP15/08/04 P F508
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:
02 September 2015