IBM Support

PI72387: ABEND 0C4 MAY OCCUR WHEN READING FROM CONCATENATED DD USING QSAM

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • An abend s0C4 may occur when using fread() to read from a DD
    statement with concatenated statements if unable to open one of
    the subsequent definitions and the DD is opened using the QSAM
    access method ("noseek" specified on fopen()).
    
    For example, an input DD defined as:
    //INPUT    DD *
    Testdata
    //         DD DSN=MEGA.JCL(NOMEM),DISP=SHR
    
    and opened with:  fopen("DD:INPUT","rb,noseek");
    [the 'noseek' keyword will drive QSAM]
    
    After reading the valid data, and switching to the invalid
    dataset in the concatenation, a DFSMS failure may surface, but
    the LE C Run-Time ignores the abend and returns to the caller.
    Then on a subsequent fread(), an abend s0C4 may occur when
    trying to branch to the QSAM GET macro - but the DCB may no
    longer be valid.
    
    An example traceback of the 0C4:
    CEL4IO31    -05FE29D8    CEEEV003            Exception
    rp39        +00000110    CEEEV003   HLE77A0  Call
    fread       +0000052C    CEEEV003   HLE77A0  Call
    main        +000000E2    FREADDD             Call
    EDCZMINV    +000000C0    CEEEV003            Call
    CEEBBEXT    +000001C6    CEEPLPKA   HLE77A0  Call
    
    
    Verification Steps:
    1) Verify dataset is concatenated in the JCL, and being opened
       for reading using the 'noseek' keyword on fopen()
    
    2) Verify fopen() is successful.
    
    3) Observe if a DFSMS condition occurs, such as a s013 or s913
       abend, and program control returns to the application.
    
    4) From a dump, determine if an 0C4 condition is encountered
       because the DCB+x31 value which should point to the GET
       macro is no longer valid.
    

Local fix

  • Correct the invalid/inaccessible statement in the JCL
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * Any z/OS C/C++ application using fread()                     *
    * on a concatenated DDname opened as binary                    *
    * I/O (rb) with the noseek option or a OS                      *
    * file opened using record I/O (type=record)                   *
    * and the noseek option.                                       *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * When reading from a concatenated DDname                      *
    * a S0C4 abend may occur when one of                           *
    * the concatenated datasets is either                          *
    * non-existent or one the application                          *
    * does not have access to.                                     *
    * The abend issued by DFSMS when it                            *
    * switches datasets is improperly ignored                      *
    * by the C run time library.                                   *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    See problem description.
    

Problem conclusion

  • The code was changed to add a check for the ABEND
    and to mark the file as unusable.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI72387

  • Reported component name

    LE C LIBRARY

  • Reported component ID

    568819805

  • Reported release

    7A0

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-11-15

  • Closed date

    2017-05-30

  • Last modified date

    2017-07-05

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    UI46660 UI46661 UI47644

Modules/Macros

  • EDC40045 CELHP083 CELHP039 CELQP083 CELQP039 EDC40051 EDCERNO2
    

Fix information

  • Fixed component name

    LE C LIBRARY

  • Fixed component ID

    568819805

Applicable component levels

  • R7A0 PSY UI46660

       UP17/06/02 P F705

  • R790 PSY UI46661

       UP17/06/02 P F705

  • R7B0 PSY UI47644

       UP17/06/17 P F706

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":"BU048","label":"IBM Software"},"Product":{"code":"SSCVSBD","label":"Runtime"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7A0","Edition":"","Line of Business":{"code":"","label":""}},{"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":"7A0","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":null,"label":null},"Product":{"code":"SG19O","label":"APARs - MVS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7A0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
05 July 2017