ECO NUMBER: VMS722_RMS-V0400 PRODUCT: OpenVMS Alpha OPERATING SYSTEM V7.2-2 UPDATE PRODUCT: OpenVMS Alpha OPERATING SYSTEM V7.2-2 COVER LETTER 1 KIT NAME: VMS722_RMS-V0400 2 KITS SUPERSEDED BY THIS KIT: VMS722_RMS-V0300 3 KIT DEPENDENCIES: 3.1 The following remedial kit(s), or later, must be installed BEFORE installation of this, or any required kit: VMS722_UPDATE-V0100 3.2 In order to receive all the corrections listed in this kit, the following remedial kits, or later, should also be installed: None. 4 KIT DESCRIPTION: 4.1 Version(s) of OpenVMS to which this kit may be applied: OpenVMS Alpha V7.2-2 4.2 Files patched or replaced: o [SYSEXE]CONVERT.EXE (new image) o [SYSLIB]CONVSHR.EXE (new image) o [SYS$LDR]DDIF$RMS_EXTENSION.EXE (new image) o [SYSEXE]RECLAIM.EXE (new image) o [SYS$LDR]RMS.EXE (new image) o [SYSLIB]SDARMS$SHARE.EXE (new image) o [SYS$LDR]RMSDEF.STB (new file) -- COVER LETTER -- Page 2 14 August 2002 5 PROBLEMS ADDRESSED IN VMS722_RMS-V0400 KIT o Although the documentation for the VMS722_RMS-V0300 kit said that the VMS722_UPDATE-V0100 kit was a requirement, the kit installation did not check that the UPDATE kit was installed before installing the RMS kit. IF the UPDATE kit is not installed the RMS kit installation should fail. This was not happening. ** Note ** This kit does not provide additional RMS bug fixes or functionality. It corrects an installation verification issue. If you have installed the VMS722_RMS-V0300 kit you do not need to install the VMS722_RMS-V0400 ECO kit. 6 PROBLEMS ADDRESSED IN VMS722_RMS-V0300 KIT o RMS: Fix to prevent possible process hangs and system crashes when files with global buffers are accessed. An application accessing a file with global buffers enabled might experience any one of several symptoms ranging from an IVLOCKID being returned to RMS through a possible SSRVEXCEPTN due to corruption of an RMS internal control structure. Prior to this change, it is possible for an internal table maintained by RMS (the Global Buffer Interlock Table) within its global buffer sections to overflow. This can potentially result in corruption to adjoining control structures. No user data are compromised; however, the process may hang or the system crash dependent on what is overwritten. This problem is most prevalent on systems where there is a high turnover of processes. Images Affected: - [SYS$LDR]RMS.EXE o RMS: Fix for a lock hang on a global buffer resource. The symptoms of the hang are as follows: - A global buffer resource has in its granted queue a process PW lock and a system CR lock. - The conversion queue for this resource has a long line of NL-to-PW or NL-to-EX requests blocked by the PW granted lock. This is not a lock manager problem. The PW global buffer lock -- COVER LETTER -- Page 3 14 August 2002 holder is waiting for the system CR lock to be released. The release of the system CR lock is dependent on a flag (internally managed by RMS) indicating a writer wants access to the resource and a reference count maintained in an internal RMS structure. Until the system CR lock is released and the flag cleared by the last referencer, the process holding the PW lock will continue to block any other processes lining up in the conversion queue. This fix corrects a race condition where if a process was interrupted (stopped or aborted by a $delprc) while actively using the system CR lock, it was possible for the cleanup of the internal RMS structure to be bypassed. This would cause the reference count to get out of sync and result in the system CR lock not getting properly released after a writer requested access to the resource. Images Affected: - [SYS$LDR]RMS.EXE o RMS: Avoid an exec-mode infinite loop if RMS ever attempts to add a duplicate key value to a compressed index bucket. An index bucket should never have a duplicate key value. There is the potential, however, some inconsistency (corruption) in a lower level could result in such an attempt in the case of a compressed key. A correction has been added to issue a nonfatal RMS bugcheck (ISAM) and avoid the loop. Images Affected: - [SYS$LDR]RMS.EXE o RMS: Fix for some records being potentially skipped over in a reverse key search. If the very last bucket in the data bucket chain for a particular key-of-reference is empty (no valid records), the potential exists for any valid records in the next-to-the-last bucket (and only this bucket) being skipped over in the backwards scan done by a reverse key search. This problem is restricted to a reverse key search. Images Affected: - [SYS$LDR]RMS.EXE o RMS: Correction for circumflex returned in resultant string for search error cases. -- COVER LETTER -- Page 4 14 August 2002 When a one-character wildcard % is used in a search, if no file is found (an error is returned), the resultant string returned in the user NAM[L] structure has a circumflex (^) character inappropriately inserted just before the %. This affects a number of DCL utilities which display the resultant string with their error messages (e.g., DELETE, TYPE, RENAME and COPY). For example: $ delete %.jnk;* %DELETE-W-SEARCHFAIL, error searching for SYS$COMMON:[FOO]^%.JNK;* -RMS-E-FNF, file not found Images Affected: - [SYS$LDR]RMS.EXE o RMS: Set the return length of the auxiliary buffer for calls to SYS$FILESCAN. The return length of the auxiliary buffer ("retlen" optional parameter) that was passed to SYS$FILESCAN was not being set when the Field Flags argument ("fldflags" parameter) was absent. This change sets the return length value unconditionally when one has been requested. Images Affected: - [SYS$LDR]RMS.EXE o CONVERT: Fix for remote file DAP protocol regression. The convert utility fails with the following error when the input file is a sequential file on a remote foreign (non-VMS) system and the output file is a sequential file on a VMS system if and only if /SORT is explicitly specified or implied by /FDL: %CONV-F-READERR, Error reading (IBM_filename) -RMS-F-BUG_DAP, Data Access Protocol error detected; DAP code = 0001A008 The problem is not reproducable using a remote VMS system. Images Affected: - [SYSEXE]CONVERT.EXE - [SYSLIB]CONVSHR.EXE -- COVER LETTER -- Page 5 14 August 2002 7 KIT INSTALLATION RATING: The following kit installation rating, based upon current CLD information, is provided to serve as a guide to which customers should apply this remedial kit. (Reference attached Disclaimer of Warranty and Limitation of Liability Statement) INSTALLATION RATING: INSTALL_1 : To be installed by all customers. ** Note ** This kit does *not* provide additional RMS bug fixes or functionality. It corrects an installation verification issue. If you have installed the VMS722_RMS-V0300 kit you do not need to install the VMS722_RMS-V0400 ECO kit. 8 INSTALLATION INSTRUCTIONS: Install this kit with the POLYCENTER Software installation utility by logging into the SYSTEM account, and typing the following at the DCL prompt: PRODUCT INSTALL VMS722_RMS /SOURCE=[location of Kit] The kit location may be a tape drive, CD, or a disk directory that contains the kit. Additional help on installing PCSI kits can be found by typing HELP PRODUCT INSTALL at the system prompt This kit requires a system reboot. Compaq strongly recommends that a reboot is performed immediately after kit installation to avoid system instability If you have other nodes in your OpenVMS cluster, they must also be rebooted in order to make use of the new image(s). If it is not possible or convenient to reboot the entire cluster at this time, a rolling re-boot may be performed. 8.1 Special Installation Instructions: 8.1.1 Which customers should install this ECO kit The VMS722_RMS-V0400 ECO kit does not provide additional RMS bug fixes or functionality. It corrects an installation verification issue. If you have installed the VMS722_RMS-V0300 kit you do not need to install the VMS722_RMS-V0400 ECO kit. If you have not installed the VMS722_RMS-V0300 then this kit is a rating one kit and should be installed. -- COVER LETTER -- Page 6 14 August 2002 8.1.2 Scripting of Answers to Installation Questions During installation, this kit will ask and require user response to several questions. If you wish to automate the installation of this kit and avoid having to provide responses to these questions, you must create a DCL command procedure that includes the following definitions and commands: - $ DEFINE/SYS NO_ASK$BACKUP TRUE - $ DEFINE/SYS NO_ASK$REBOOT TRUE - Add the following qualifiers to the PRODUCT INSTALL command and add that command to the DCL procedure. /PROD=DEC/BASE=AXPVMS/VER=V4.0 - De-assign the logicals assigned For example, a sample command file to install the VMS722_RMS-V0400 kit would be: $ $ DEFINE/SYS NO_ASK$BACKUP TRUE $ DEFINE/SYS NO_ASK$REBOOT TRUE $! $ PROD INSTALL VMS722_RMS/PROD=DEC/BASE=AXPVMS/VER=V4.0 $! $ DEASSIGN/SYS NO_ASK$BACKUP $ DEASSIGN/SYS NO_ASK$REBOOT $! $ exit Copyright (c) Compaq Computer Company, 2002 All Rights Reserved. Unpublished rights reserved under the copyright laws of the United States. COMPAQ, the COMPAQ logo, VAX, Alpha, VMS, and OpenVMS are registered in the U.S. Patent and Trademark Office. All other product names mentioned herein may be trademarks of their respective companies. Confidential computer software. Valid license from COMPAQ are required for possession, use, or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. COMPAQ shall not be liable for technical or editorial errors or omissions contained herein. The information in this document is provided as is without warranty of any kind and is subject to change without notice. The warranties for COMPAQ products are set forth in the express limited warranty statements accompanying such products. Nothing herein should be construed as constituting an additional warranty. -- COVER LETTER -- Page 7 14 August 2002 DISCLAIMER OF WARRANTY AND LIMITATION OF LIABILITY THIS PATCH IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED TO THE EXTENT PERMITTED BY APPLICABLE LAW. IN NO EVENT WILL COMPAQ BE LIABLE FOR ANY LOST REVENUE OR PROFIT, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, WITH RESPECT TO ANY PATCH MADE AVAILABLE HERE OR TO THE USE OF SUCH PATCH.