PM73574: FREAD ON A VARIABLE RECORD FORMAT TAPE DATASET AFTER A REPOSITION MAY RETURN INCORRECT DATA

A fix is available

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • When reading from a variable format tape data set following a
    reposition, the read may return residual data following the
    updated data.
    
    For example, a tape dataset containing 85 records (80 in the
    first block, 5 in the second) and the first block has been
    read (buffer contains records 1-80).  If the application
    gets the first record (via an fread() for instance) and then
    repositions to the second block (location of records 81-85):
    and you fread() these records, you may encounter residual
    data from the first block.  Your output may be:
    
    record 81/85
    record 82/85
    record 83/85
    record 84/85
    record 85/85
    record 6/85
    record 7/85
    ...
    -
    Where after reaching the end of the current block
    incorrect/residual data from the previous block read may
    be returned.
    
    
    Verification Steps:
    1) Ensure data in use resides on a tape device and is in
       a variable format.
    2) Ensure a resposition has been issued prior to encountering
       incorrect data.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: C/C++ applications repositioning or          *
    *                 rewinding variable length record             *
    *                 TAPE datasets.                               *
    ****************************************************************
    * PROBLEM DESCRIPTION: C/C++ applications that reposition or   *
    *                      rewind in variable length record TAPE   *
    *                      datasets may process the current        *
    *                      buffer with an incorrect block size     *
    *                      leading to unpredictable results.       *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    See problem description.
    

Problem conclusion

  • The code was changed to fix the problem.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM73574

  • Reported component name

    LE C LIBRARY

  • Reported component ID

    568819805

  • Reported release

    760

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-09-25

  • Closed date

    2012-12-10

  • Last modified date

    2013-01-02

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

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

    UK90183 UK90184

Modules/Macros

  • CELHOSRB CELHOSRW CELQOSRB CELQOSRW EDC4003A
    EDC40038
    

Fix information

  • Fixed component name

    LE C LIBRARY

  • Fixed component ID

    568819805

Applicable component levels

  • R770 PSY UK90183

       UP12/12/27 P F212

  • R780 PSY UK90184

       UP12/12/27 P F212

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.



Rate this page:

(0 users)Average rating

Add comments

Document information


More support for:

z/OS XL C/C++
Runtime

Software version:

760

Operating system(s):

MVS, z/OS

Reference #:

PM73574

Modified date:

2013-01-02

Translate my page

Machine Translation

Content navigation