IBM Support

OA66915: $DOGJQE MACRO INVOCATION GIVES A NONZERO RETURN CODE AND LEADS TO AN ABENDA78 RC10 IN THE JES2 LIMITS SUBTASK

A fix is available

Subscribe

You can track all active APARs for this component.

 

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