++ USERMOD(TX67893) /* REWORK(20210408) */ . ++ VER (X067) FMID(EDM1101) . ++ IF FMID(EPM1101) THEN REQ (UX15738) /* PROBLEM DESCRIPTION(S): TX67893 - Abend in VS1 6.7 display console initialization during NIP. When VS1 6.7 attempts to activate consoles at the end of NIP, activation of display consoles fails, probably due to a race condition in which fields that are expected to be initialized haven't been initialized yet. DIDOCS display console activation issues an OPEN for a DCB pointing to a DD statement constructed to define the console device. OPEN module IFG0196X issues a QMGRIO macro to write back the possibly-modified JFCB for the device being opened. In the course of the QMGRIO, one of the following generally occurs: (1) The QMGRIO macro expands to instructions to obtain the address of the QMGRIO service routine by chaining through the CVT and JESCT, then doing a BALR to the address obtained. The CVT pointer to the JESCT, CVTJESCT, is zero, causing what the macro believes to be the address of QMGRIO to be garbage, so the BALR results in an abend0C1; or (2) CVTJESCT has been initialized correctly, so the QMGRIO service routine receives control as it should, but its validation of the QMGRIO parameter list passed by IFG0196X finds the parameter list is defective, with fields that should be initialized set to zero, so it issues an abend1B0. After the abend, initialization of the display console stops, but its UCM is marked active, so messages are queued to it. Because those messages are never displayed, WTO buffers are eventually exhausted. IFG0196X is changed to bypass the QMGRIO if the current task is the communications task. This is a circumvention, not a fix, but it allows console initialization to complete successfully. Note that this usermod assumes that the fix for UX15738 has been installed on the current system. UX15738 fixes a problem with linkage editor EXPAND processing in the case of a target load library that has a block size that is a multiple of 1024 (the EXPAND appears to work, but patterns of binary zeroes are written over the first few bytes of the module). Another problem encountered during the development of the usermod was the fact that IBM linked IFG0196X as NE (not editable), so the module has no ESD and cannot be reprocessed by the linkage editor. That problem was circumvented by reconstructing the module in SYS1.AOSD0 prior to VS1 system generation using the DELINK0 FE aid. Also note that TX67893 checks to see if the current job is the communications task by checking the TIOT pointed to by the current task for job name "CONSOLE", step name "SYSTEM", procedure step name "VMS". Don't use that job and step name combination for any ordinary VS1 job, or it will be treated as the communications task and the QMGRIO bypassed. COMPONENT: 5741-SC1D1-EDM1101 APARS FIXED: TX67893 SPECIAL CONDITIONS: DEPENDENCY: IFG0196X in the target SYS1.SVCLIB must already have been relinked to remove the NE (not editable) attribute set by default in the standard IBM distribution. COMMENTS: LAST CHANGE: 2021/04/08 REWORK HISTORY: 2021/04/08: Created. CROSS REFERENCE-MODULE/MACRO NAMES TO APARS IFG0196X TX67893 CROSS REFERENCE-APARS TO MODULE/MACRO NAMES TX67893 IFG0196X THE FOLLOWING MODULES AND/OR MACROS ARE AFFECTED BY THIS USERMOD: MODULES IFG0196X LISTEND */. ++ ZAP (IFG0196X) DISTLIB(AOSD0 ).