PM81536: z/TPFDF should ensure that the correct file ID exists in pool records before releasing those records.

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

APAR status

  • Closed as program error.

Error description

  • See Problem Summary.
    

Local fix

  • na
    

Problem summary

  • APAR NUMBER:  PM81536
    PRODUCT:  z/TPFDF
    FUNCTIONAL AREA:  TPFDF CENTRAL DATABASE ROUTINES
    SHIPPED IN PUT:  10
    
    ABSTRACT:
    z/TPFDF should ensure that the correct file ID exists in pool
    records before releasing those records. Also, when a DBRST is
    issued after an LLR was deleted from the prime block, multiple
    releases of the LLR or a DB0168 may occur.
    
    PACKAGE CONTENTS:
    Source Segments:
    (C) tpfdf/include/i_dfhd.h
    (C) tpfdf/rt/uas0.asm
    (C) tpfdf/rt/ub90.asm
    (C) tpfdf/rt/ufka00.cpp
    (C) tpfdf/rt/ufka03.cpp
    (C) tpfdf/rt/uftk.cpp
    
    Object Only Binaries:
    None.
    
    Configuration Independent Binaries:
    None.
    
    Support Files:
    None.
    
    OTHER BINARIES TO BUILD: YES
    (C) <sys>/lib/libUTDF.so
    (C) <sys>/load/UFKA.so
    (C) <sys>/load/UFTH.so
    (C) <sys>/load/UTDF.so
    (C) <sys>/obj/uas0.o
    (C) <sys>/obj/ub90.o
    (C) <sys>/obj/ufka00.o
    (C) <sys>/obj/ufka03.o
    (C) <sys>/obj/uftk.o
    
    COMMENTS:
    (1) z/TPFDF should ensure the correct file ID exists in a pool
    record before it releases that pool file address. In most parts
    of z/TPFDF, the block has already been accessed and its ID has
    been verified before z/TPFDF issues a RELFC on its file
    address. Therefore, an additional ID check on the RELFC API is
    not needed in those cases. However, there are some routines in
    large logical record (LLR) and B+Tree processing where file
    addresses are released without accessing them first. These
    routines should be enhanced to validate the file ID before
    releasing the records in case those records are in use by
    another database.
    
    (2) Furthermore, a DB0100 system error is generated when an I/O
    error occurs when z/TPFDF attempts to retrieve a record.
    However, the online message does not indicate which I/O error
    occurred. It would be helpful if the online message indicated
    which specific I/O error occurred.
    
    (3) In addition, if there was an LLR in the prime block that
    had previously been deleted and a DBRST is done, the blocks in
    the LLR could be released more than once. This is because DBRST
    copies a possible user header part of the "from" block to the
    "target" block. An incorrect length was used in the
    calculation, so the z/TPFDF header component of the standard
    header is copied to the target block, potentially overwriting
    the next available byte (NAB) value. As a result, a possibly
    inactive LLR is activated again and either generates a DB0168
    if an attempt is made to re-access it, or reults in multiple
    releases if the LLR is re-released.
    

Problem conclusion

  • SOLUTION:
    (1) Segments ufka00.cpp and ufka03.cpp have been updated so
    that LLR release processing issues a find and wait on LLIBs and
    LLDBs to ensure the file ID is valid before releasing the
    blocks either directly in function UFKA03_release_blocks() or
    asynchronously in function
    UFKA00_release_all_LLDBs_from_this_LLIB(). If an error is
    encountered, informational dump OPR-DB0189 is issued and the
    block is not released. The dump is issued only once per LLIB,
    but the loop to release additional file addresses continues.
    
    Segment uftk.cpp has been updated so that B+Tree processing
    issues a find and wait on B+Tree nodes to ensure the file ID is
    valid before releasing the blocks. If an error is encountered,
    informational dump OPR-DB0189 is issued and the block is not
    released.
    
    Header i_dfhd.h has been updated to contain a common macro to
    generate the DB0189 system error that is based on the DB0100
    system error.
    
    (2) Segment ub90.asm has been updated to add information to the
    DB0100 system error such that its content matches the DB0189
    system error.
    
    (3) Segment uas0.asm has been updated to use the correct
    displacements and lengths (taking into account both the z/TPF
    and z/TPFDF headers) in the calculation of the user header in
    the copy routines.
    
    COREQS: NO
    None.
    
    MIGRATION CONSIDERATIONS: YES
    Functional, automation, and operation changes:
    New system error: DB0189
    Modified system error: DB0100
    
    
    
    BUILD COMMANDS AND INSTRUCTIONS: YES
    #maketpf commands for linux
    maketpf -f UTDF uas0.o ub90.o
    maketpf -f UFKA ufka00.o ufka03.o
    maketpf -f UFTH uftk.o
    maketpf UTDF link
    maketpf UFKA link
    maketpf UFTH link
    
    UPDATED INFORMATION UNITS: YES
    z/TPFDF Messages (System Error, Online, Offline)
    
    See your IBM representative if you need additional information.
    
    DOWNLOAD INSTRUCTIONS:
    http://www.ibm.com/software/htp/tpf/maint/maintztpf.html
    
    APAR URL:
    http://www.ibm.com/software/htp/tpf/ztpfmaint/put10/PM81536.htm
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM81536

  • Reported component name

    ZTPFDF

  • Reported component ID

    5748F1501

  • Reported release

    110

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-01-28

  • Closed date

    2013-03-04

  • Last modified date

    2013-03-04

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

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

Publications Referenced
SK2T8062        

Fix information

  • Fixed component name

    ZTPFDF

  • Fixed component ID

    5748F1501

Applicable component levels

  • R110 PSY

       UP



Rate this page:

(0 users)Average rating

Add comments

Document information


More support for:

TPF
z/TPF

Software version:

110

Reference #:

PM81536

Modified date:

2013-03-04

Translate my page

Machine Translation

Content navigation