PM80662: AVOID KEY UPDATE WHEN NOKEY IS GIVEN WITH C APIS
Closed as program error.
See Problem Summary.
APAR NUMBER: PM80662 PRODUCT: z/TPFDF FUNCTIONAL AREA: TPFDF C SUPPORT SHIPPED IN PUT: 10 ABSTRACT: z/TPFDF key arguments that are allocated above 2-GB in C/C++ programs are synchronized with storage locations below 2-GB, even when a NOKEY option is specified, leading to possible CTL-4 system errors. Also, CTL-D1 system errors are possible if an error occurs during dftab() processing. PACKAGE CONTENTS: Source Segments: (C) tpfdf/rt/ufg3.asm (C) tpfdf/rt/ufga.asm (C) tpfdf/rt/ufgh.asm (C) tpfdf/rt/ufgj.asm (C) tpfdf/rt/ufgo.asm (C) tpfdf/rt/ufgr.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/ufg3.o (C) tpfdf/obj/ufga.o (C) tpfdf/obj/ufgh.o (C) tpfdf/obj/ufgj.o (C) tpfdf/obj/ufgo.o (C) tpfdf/obj/ufgr.o (C) tpfdf/obj/ufgw.o Support Files: tpfdf/lst/CTDF.map tpfdf/lst/ufg3.lst tpfdf/lst/ufga.lst tpfdf/lst/ufgh.lst tpfdf/lst/ufgj.lst tpfdf/lst/ufgo.lst tpfdf/lst/ufgr.lst tpfdf/lst/ufgw.lst OTHER BINARIES TO BUILD: NO None. COMMENTS: When an application defines key arguments above the 2-GB line, the z/TPFDF C-interface routines have to copy these arguments to a new area below the 2-GB line because the z/TPFDF central database routines can only work with key arguments below the 2-GB line. This processing is done during dfkey() processing when keys are activated from a keylist. Each z/TPFDF function that uses the keys has to make sure that the key arguments in the area below the 2GB line are kept in sync with the original key arguments above the 2-GB line. At the beginning of the key processing in each of the affected C/C++ APIs (dfadd, dfdel, dfdsp, dfmod, dfred, and dfsrt), the arguments in the area below the 2-GB line are updated with the corresponding values above the 2-GB line. This update is done even if a NOKEY option is specified. Not only is the update unnecessary, but it could also cause a CTL-4 system error if the area above the 2-GB line is not valid anymore. The update should not be done if a NOKEY option is specified. Additionally, during processing for a dftab() function call, a DFSSU macro is called. If this call fails due to an inconsistent DBDEF, data level DF may still have a core block attached when an attempt is made to reattach a workblock. This would result in a CTL-D1 system error. Code should be added to ensure that the level is free before issuing the ATTAC.
SOLUTION: Segments ufga.asm, ufgh.asm, ufgj.asm, ufgo.asm, ufgr.asm and ufgw.asm are updated to skip the key argument update routines if NOKEY is given. Additionally, ufg3.asm is updated to include a CRUSA of level DF to avoid a possible CTL-D1 dump if the error path is taken after the DFSSU call. COREQS: NO None. MIGRATION CONSIDERATIONS: NO None. BUILD COMMANDS AND INSTRUCTIONS: YES #maketpf commands for linux maketpf -f CTDF ufg3.o ufga.o ufgh.o ufgj.o ufgo.o ufgr.o ufgw.o maketpf CTDF link TPF_VERIFY_LINK_REFS=NO maketpf CTDF link UPDATED INFORMATION UNITS: NO None. 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/PM80662.htm
Reported component name
Reported component ID
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
Fixed component ID
Applicable component levels