ECO NUMBER: VMS721H1_RMS-V0800 PRODUCT: OpenVMS Alpha OPERATING SYSTEM V7.2-1H1 UPDATE PRODUCT: OpenVMS Alpha OPERATING SYSTEM V7.2-1H1 COVER LETTER 1 KIT NAME: VMS721H1_RMS-V0800 2 KITS SUPERSEDED BY THIS KIT: VMS721H1_RMS-V0700 3 KIT DEPENDENCIES: 3.1 The following remedial kit(s), or later, must be installed BEFORE installation of this, or any required kit: VMS721H1_UPDATE-V0500 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-1H1 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]EDF.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 16 July 2002 5 PROBLEMS ADDRESSED IN VMS721H1_RMS-V0800 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 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. -- COVER LETTER -- Page 3 16 July 2002 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. 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 -- COVER LETTER -- Page 4 16 July 2002 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 6 PROBLEMS ADDRESSED IN VMS721H1_RMS-V0700 KIT o Fix for RMS global buffer hang due to abort ($delprc) rundowns. An application may experience a hang under the following conditions: - RMS global buffers are enabled on some files. - Many processes are terminated with $delprc (e.g., STOP/ID) when files are still open. - The application is restarted after the process terminations without rebooting the system. The symptom for this problem is that during the restart of the application, a process enters a tight loop in executive mode. Once encountered, a system reboot is required to clear the problem. Images Affected: - [SYS$LDR]RMS.EXE - [SYSLIB]SDARMS$SHARE.EXE o RMS fix for inconsistent secondary key index structure. -- COVER LETTER -- Page 5 16 July 2002 Any application that does a lot of deleting or does updates that change a no duplicate secondary key value to another value in an indexed file is a potential candidate for this problem. An ANALYZE/RMS_FILE of the indexed file reports the following error for a secondary key: "Index bucket references missing data bucket with VBN nnn" The problem may be that the secondary index structure has duplicate index value entries and there should never be duplicates in the index structure. If the secondary index allows a binary search (is uncompressed), records could be hidden using an exact secondary key lookup. This problem results from the entire space being inappropriately reclaimed for the physically last SIDR record in some secondary data bucket which contains only deleted entries. This problem is restricted to an indexed file with a secondary key that allows no duplicates. The primary key contents will be intact and correct, and a convert of the file will rebuild the secondary indexes and leave the file in a consistent state. Images Affected: - [SYS$LDR]RMS.EXE o Fix to prevent the CONVERT/RECLAIM utility from producing an inconsistent index structure in an indexed file during a reclamation. An ANALYZE/RMS_FILE reports the following error: "Index bucket references missing data bucket with VBN nnn" A level 1 index record associated with a data (level 0) bucket that was reclaimed was not removed from the index bucket, as it should have been. It is extremely difficult to detect in advance of doing a convert/reclaim whether an indexed file is vulnerable if a reclaim were applied to it. For example, one condition is that one of the initial level 1 index buckets associated with data buckets eligible for reclamation has some condition (for example, only one index record) that will cause a rollback of a removed index record during a reclamation. Without the fix, doing a full convert (without the /RECLAIM qualifier) ensures avoiding this problem. Images Affected: -- COVER LETTER -- Page 6 16 July 2002 - [SYSEXE]RECLAIM.EXE - [SYSEXE]CONVERT.EXE - [SYSLIB]CONVSHR.EXE o Fix to the CONVERT utility to prevent the signal of a fatal read error (CONV-F-READERR) with an RMS-S-NORMAL secondary status when callable convert is invoked within a threaded application. This correction prevents the erroneous error signal when the end of the input file is reached. Although callable convert is not a thread safe application, it is possible to invoke the callable interface from within a single instance within a single thread. Images Affected: - [SYSEXE]CONVERT.EXE - [SYSLIB]CONVSHR.EXE o Fix to the CONVERT utility to prevent a convert which uses either network or tape input from creating an empty output indexed file. Images Affected: - [SYSEXE]CONVERT.EXE - [SYSLIB]CONVSHR.EXE 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. -- COVER LETTER -- Page 7 16 July 2002 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 VMS721H1_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 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=V8.0 - De-assign the logicals assigned For example, a sample command file to install the VMS721H1_RMS-V0800 kit would be: $ $ DEFINE/SYS NO_ASK$BACKUP TRUE $ DEFINE/SYS NO_ASK$REBOOT TRUE $! $ PROD INSTALL VMS721H1_RMS/PROD=DEC/BASE=AXPVMS/VER=V8.0 -- COVER LETTER -- Page 8 16 July 2002 $! $ 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. 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.