A fix is available
APAR status
Closed as program error.
Error description
When looping through JQEs in JES2 for the purpose of the LIMITS subtask, a JQE being in 64-bit storage can lead to a bad return code from the $DOGJQE RETURN macro and cause a subsequent FREEMAIN of this JQE to fail. ANALYSIS: At the time of the ABEND, the HASPLIM code in HASPSSRV is running through a CKPT version it obtained and is looping through a sequence of $JQEs therein. For the relevant $JQE, the code does a $DOGJQE that calls JQEREAD in HASCSRIC, then it finds that the JQE it is scanning is NOT on the FREE queue and is busy in execution. This first $DOGJQE invocation goes successfully and passes back a $JQA address and puts it into REG8 (and also LIMTJQAA). Notably, there is a FREEMAIN of this storage before the SSRV had run through all the active $JQEs in the CKPT version. The next $DOGJQE for this $JQE gives a nonzero return code (RC 12) which does not clear the address in REG8 (nor does it do so for LIMTJQAA) even though the storage had been freed. This return code comes from the fact that the pointer to the $JQE (field DSRXJQPT) is up in 64-bit storage and the code for getting to it does not account for that. When the code loops around to actually free the storage, this leads to the ABEND since the storage was already freed. KNOWN IMPACT: Doing calculations related to the resource limits feature would invoke the LIMITS subtask and cause it to ABEND. Losing this subtask would potentially cause JES2 to have inaccurate information related to things like $JQE counts. Losing this subtask does not prevent $LIMIT commands from executing and secondary command PCEs from waiting on the subtask, thereby preventing a clean shutdown. VERIFICATION STEPS: 1. ABEND A78 in JES2 LIMITS subtask ADDITIONAL SYMPTOMS: ABEND A78 possible inaccurate $JQE counts between JES2 and LIMITS subtask MSGHASP608 $HASP608 COMMAND PROCESSING ACTIVE RC=12 COMMAND PROCESSING ACTIVE
Local fix
RECOVERY ACTION: A HOT start of JES2 reinstates the downed subtask.
Problem summary
**************************************************************** * USERS AFFECTED: All users of HJE77D0, HJE77E0, and * * HJE77F0. * **************************************************************** * PROBLEM DESCRIPTION: ABENDSA78-RC10 in module HASCSRIC due * * to a FREEMAIN or STORAGE RELEASE of * * an already freed area of storage. * **************************************************************** * RECOMMENDATION: * **************************************************************** HASPLIM subtask code in HASPSSRV loops through JQEs incorrectly, potentially leading to a $DOGJQE FETCH failure which then causes an attempt to free JQA storage that has already been freed, generating the ABENDA78-RC10. Subsequently, the HASPLIM subtask attempts to recover from the abend. If recovery is not successful and the subtask does not exist, then resource limit management is no longer working and can potentially cause jobs to incorrectly wait or be failed due to an incorrect determination that resource limits have been exceeded.
Problem conclusion
TYPE/RESTART (WARM) IPL/REQUIRED (YES) CLPA (YES) CLPA is needed only if HASCxxxx modules currently reside in the pageable link pack area (PLPA). HASPLIM subtask code has been updated to properly step through JQEs in the JES2 checkpoint. Additional problems in error recovery were addressed to improve the ability of the HASPLIM subtask to recover from an abend and to continue processing. The issues addressed are: - If a $DOGJQE FETCH fails there is now an error routine that determines if a JQA was not returned, and clears internal fields used to track the current JQA to properly indicate one is not available. - Better management of ARMODE, AMODE, and base register when the HASPLIM subtask attempts to recover from an abend and restarts at a retry point in the code. - Recovery code frees local storage when the subtask fails. - Corrected a problem in the BLDTENT routine in HASPSSRV that could cause a loop in the chain of LIMITS data. - Cleaned up ESTAE processing in the HASPLIM subtask code. - HASPLIM recovery corrected to properly process outstanding requests for LIMITS data from an SSI 71 JES Job Information Services request for JES Resource limits information. - Processing for the $D LIMITS command has been updated to check more indicators to determine if the HASPLIM subtask is active. In z/OS 3.1 JES2 (HJE77E0) and later releases, the HASPLIM subtask is now identified as a required subtask for JES2. If the HASPLIM subtask cannot recover, JES2 will terminate. Searchable keywords: - $HASP1806 - msgHASP1806 - ABENDSA78 - ABENDA78 - ABENDS0E0 - ABEND0E0 - ABENDS0C4 - ABEND0C4 - ABENDS722 - ABEND722 - JES2EJS/K APAR OA66915 prereq's (and sup's) for FMID HJE77D0: Pre's: DA63971 APAR OA66915 prereq's (and sup's) for FMID HJE77E0: Pre's: EA65052 APAR OA66915 prereq's (and sup's) for FMID HJE77F0: Pre's: * NONE *
Temporary fix
Comments
APAR Information
APAR number
OA66915
Reported component name
JES2
Reported component ID
5752SC1BH
Reported release
7E0
Status
CLOSED PER
PE
NoPE
HIPER
YesHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2024-08-28
Closed date
2026-03-20
Last modified date
2026-05-02
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UJ99261 UJ99260
Modules/Macros
$HASPEQU $JQRB $TRCA HASCSRIC HASPRAS HASPSSRV HASPSXIT HASPTABS
Fix information
Fixed component name
JES2
Fixed component ID
5752SC1BH
Applicable component levels
R7D0 PSY UJ99261
UP26/04/22 P F604 ¢
R7E0 PSY UJ99260
UP26/04/22 P F604 ¢
R7F0 PSY UJ99259
UP26/04/22 P F604 ¢
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":"BU011","label":"Systems - zSystems software"},"Product":{"code":"SG19O"},"Platform":[{"code":"PF054","label":"z Systems"}],"Version":"7E0"}]
Document Information
Modified date:
02 May 2026