Steps for diagnosing an excessive spin

Use the following steps:
  1. In an EREP report of SYS1.LOGREC or an IPCS VERBX LOGDATA report in a dump, enter FIND S0071 (X'071'). You might find multiple records for S0071 with different reason codes.
  2. The following example is for an ABEND071 RSN10, which is the first record written to logrec for a spin condition:
    Example: VERBEXIT LOGDATA Output
    
      SEARCH ARGUMENT ABSTRACT
    
      PIDS/5752SC1CM RIDS/IEANUC01#L RIDS/IEAVTEXS AB/S0071 PRCS/00000010
      REGS/0E68E REGS/0C7AA RIDS/IEAVTEXS#R
    
      SYMPTOM             DESCRIPTION
      -------             -----------
      PIDS/5752SC1CM      PROGRAM ID: 5752SC1CM
      RIDS/IEANUC01#L     LOAD MODULE NAME: IEANUC01
      RIDS/IEAVTEXS       CSECT NAME: IEAVTEXS
      AB/S0071            SYSTEM ABEND CODE: 0071
      PRCS/00000010       ABEND REASON CODE: 00000010
      REGS/0E68E          REGISTER/PSW DIFFERENCE FOR R0E: 68E
      REGS/0C7AA          REGISTER/PSW DIFFERENCE FOR R0C: 7AA
      RIDS/IEAVTEXS#R     RECOVERY ROUTINE CSECT NAME: IEAVTEXS
    Look for a SOFTWARE RECORD for abend X'071' with the following reason codes:
    • Reason code X'10': Recovery action of SPIN was taken, and a logrec entry was written to provide information about the CSECT/module that was detected as looping. No attempt was made to abend the unit of work.
    • Reason code X'20': Recovery action of ABEND was taken, targeting the looping program with a retryable ABEND071.
    • Reason code X'30': A recovery action of TERM was taken, targeting the looping program with a non-retryable ABEND071.
    In a logrec record for an abend X'071', look in the SEARCH ARGUMENT ABSTRACT for the symptom RIDS/IEAVTEXS. If found, look under the heading VARIABLE RECORDING AREA (SDWAVRA) for the following problem data:
    • EX SPIN RECORD in the EBCDIC text
    • An array of up to 16 pointers: addresses of the functional recovery routines (FRR) on the interrupted FRR stack
    • A binary number: index into the FRR stack of the current FRR
    • Array of processors causing the spin from SVTSPCP
    • Spin loop timeout interval
    • Spin loop recovery actions
    • Control registers
    In the following output, the SDWAVRA indicates an excessive spin record and contains an array of pointers to the FRR stack.
    Example: VERBEXIT LOGDATA Output –– Variable Recording Area
    
     VARIABLE RECORDING AREA (SDWAVRA)
    
    +000    KEY: 39     LENGTH: 0E
    +002    C5E740E2    D7C9D540    D9C5C3D6    D9C4        |EX SPIN RECORD  |
    
    +010    KEY: 37     LENGTH: 04
    +012    C6D9D9E2                                        |FRRS            |
    
    +016    KEY: 38     LENGTH: 40
    +018    811F43F8    811D74ED    81319571    81086D05    |A..8A...A.N.A._.|
    +028    811D74ED    00000000    00000000    00000000    |A...............|
    +038    00000000    00000000    00000000    00000000    |................|
    +048    00000000    00000000    00000000    00000000    |................|
    1. Enter the IPCS WHERE command on the PSW address at the time of error from the logrec entries found for an S0071. This should identify the CSECT/module that is excessively looping.
    2. Search for a known problem using the symptoms: ABEND071 and the module or CSECT name identified. If IPCS WHERE fails to identify a CSECT/module name, browse storage preceding the psw address looking for a module eye catcher using IPCS Option 1.
  3. Identify the modules containing each instruction in the loop, as follows:For automatic spin loop recovery, if the dump is an SVC dump: Use a STATUS WORKSHEET subcommand to obtain the dump title. Obtain the component name, component identifier, or module name from the title.
    In the following example, STATUS WORKSHEET output, the dump title is for the XES component.
                                  MVS Diagnostic Worksheet
     Dump Title: COMPON=IXL,COMPID=5752SCIXL,ISSUER=IXLM1REC,MODULE=IXLM2SP
                  ,ABEND=S0071,REASON=00000030
    
     CPU Model 9021 Version A6 Serial no. 300359 Address 03
     Date: 03/30/93     Time: 10:32:38  Local
    
     Original dump dataset: SYS1.DUMP32
  4. From the module prefix, identify the component, subsystem, or product, if provided by IBM®.

    Use the module name to query the SMP/E zone for a module entry with that module name. If the search does not find a match, the module is not an IBM module. If the search indicates a match, use the FMID to positively identify the product.

  5. Continue diagnosis as follows:
    • If all the addresses are in components of z/OS, continue with Searching the problem reporting databases.
    • If all the addresses are in an IBM subsystem or product, continue diagnosis with the diagnosis book for the subsystem or product.
    • If all the addresses are in components of z/OS and in an IBM subsystem or product, continue with Searching the problem reporting databases and with the diagnosis book for the subsystem or product.
    • If any of the addresses are in an installation-provided program, including an installation exit routine, continue diagnosis with that program, using the dump.

      If some addresses are in the program or routine and some in system modules, the loop is probably in the program or routine and includes one or more requests for system services.

Related information: