PM79558: Various problems in the z/TPFDF C interface segments: (1) dfsrt() and dfmrg() may cause a CTL-3 system error...

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:  PM79558
    PRODUCT:  z/TPFDF
    FUNCTIONAL AREA:  TPFDF C SUPPORT
    SHIPPED IN PUT:  10
    
    ABSTRACT:
    Various problems in the z/TPFDF C interface segments: (1)
    dfsrt() and dfmrg() may cause a CTL-3 system error when the
    user's keylist resides above the 2-GB line (2) dfsrt() and
    dfmrg() will overwrite the user's keylist when it resides below
    the 2-GB line (3) An OPR-4 system error or other unpredictable
    results may occur when issuing dfdsp() with an opm parameter
    that resides above the 2-GB line (4) An OPR-DBC070 system error
    occurs if a dfdel() function is coded with an access specifier
    and either an ID list or LREC list.
    
    PACKAGE CONTENTS:
    Source Segments:
    (C) tpfdf/rt/ufgh.asm
    (C) tpfdf/rt/ufgj.asm
    (C) tpfdf/rt/ufgp.asm
    (C) tpfdf/rt/ufgw.asm
    
    Object Only Binaries:
    None.
    
    Configuration Independent Binaries:
    (C) base/stdlib/libCTDF.so
    (C) base/stdload/CTDF.so
    (C) tpfdf/obj/ufgh.o
    (C) tpfdf/obj/ufgj.o
    (C) tpfdf/obj/ufgp.o
    (C) tpfdf/obj/ufgw.o
    
    Support Files:
    tpfdf/lst/CTDF.map
    tpfdf/lst/ufgh.lst
    tpfdf/lst/ufgj.lst
    tpfdf/lst/ufgp.lst
    tpfdf/lst/ufgw.lst
    
    OTHER BINARIES TO BUILD: NO
    None.
    
    COMMENTS:
    (1) The C version of the key item structure (defined in
    c_sw01sr.h) uses an 8-byte pointer for the search argument
    while the assembler version (defined in sw01sr.mac), which is
    what is used by the central database routines, uses a 4-byte
    pointer. As a result, C interface segments ufgp.asm (dfmrg) and
    ufgw.asm (dfsrt) must condense 16-byte C-format keylist items
    to 12-byte ASM-format items. Before this is done, both ufgp.asm
    and ufgw.asm check to see if the keylist resides above the 2-GB
    line and if it does, the keylist is copied to storage below the
    2-GB line. The copy process potentially truncates 4 extra bytes
    per key for the 8-byte search addresses. This incomplete
    keylist is then procesed to build the key instructions, which
    may result in a CTL-3 system error.
    
    (2) Regardless of whether the keylist is copied to local
    storage or not on the dfsrt() and dfmrg() calls, the keylist is
    modified in place, meaning that if the keylist was passed below
    the 2-GB line, the code would overwrite the original keylist
    with the condensed format. This would work for the first
    invocation, but the user's keylist would then be destroyed. If
    the user attempts to re-use the keylist or provide the same,
    unchanged keylist to a subsequent function, the already
    converted keylist is converted again with unpredictable results.
    
    (3) C interface segment ufgj.asm processes dfdsp() function
    calls. As part of the processing, ufgj.asm passes the opm
    parameter (if specified) to DBDSP by using the OPMT=A/INPARMxI
    notation, which assumes that the opm parameter is located at a
    4-byte core address location. However, if an opm parameter
    resides above the 2-GB line, the address of the parameter is
    truncated before being passed to the z/TPFDF central database
    routines. This can result in an OPR-4 system error or using an
    unpredictable value (like x'0000000000') for the opm parameter.
    
    (4) According to the formal z/TPFDF documentation, the dfdel()
    function is supposed to support specifying an access parameter
    (ALG, ORG, or FADDR) along with either an ID list or an LREC
    list. However, the corresponding cases in the dfdel C interface
    segment, ufgh.asm, were not implemented. As a result, any
    attempt to use any of these combinations of parameters will
    result in an OPR-DBC070 system error.
    

Problem conclusion

  • SOLUTION:
    (1 & 2) Segments ufgp.asm and ufgw.asm are changed to copy the
    keylist to local storage regardless of whether or not the
    original keylist resides above the 2-GB bar. This processing is
    optimized by copying and condensing the keylist in one step and
    using fewer instructions to move the data.
    
    (3) Segment ufgj.asm has been updated to pass the opm parameter
    (if specified) to DBDSP by using the OPMT=0(Rx) notation, which
    uses the entire 8-byte address in the base register.
    
    (4) Segment ufgh.asm has been updated to add the missing cases.
    
    COREQS: NO
    None.
    
    MIGRATION CONSIDERATIONS: NO
    None.
    
    BUILD COMMANDS AND INSTRUCTIONS: YES
    #maketpf commands for linux
    maketpf -f CTDF ufgh.o ufgj.o ufgp.o ufgw.o
    maketpf CTDF link TPF_VERIFY_LINK_REFS=NO
    maketpf CTDF link
    
    UPDATED INFORMATION UNITS: YES
    z/TPFDF Programming Concepts and Reference
    
    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/PM79558.htm
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM79558

  • Reported component name

    ZTPFDF

  • Reported component ID

    5748F1501

  • Reported release

    110

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-12-20

  • Closed date

    2013-02-08

  • Last modified date

    2013-02-08

  • 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 #:

PM79558

Modified date:

2013-02-08

Translate my page

Machine Translation

Content navigation