======================================================================= VMS Software, Inc. OpenVMS ECO Kit Release Notes ======================================================================= 1 KIT NAME: VMS842L3I_DCL-V0300 2 KIT DESCRIPTION: 2.1 Installation Rating: INSTALL_1: To be installed by all customers. This installation rating serves as a guide to which customers should apply this remedial kit. Reference the attached Disclaimer of Warranty and Limitation of Liability Statement. 2.2 Reboot Requirement: No reboot is necessary after installation of this kit. However there are additional steps that must be performed to use the images provided by this kit on all nodes of a VMSCluster using a common system disk. Refer to Section 8.3, "Special Installation Instructions", for required post-installation actions. Note: Processes created after installing this kit will pick up the updated images. For interactive processes already logged in, a LOGOUT/LOGIN sequence will be necessary to use these images. 2.3 Version(s) of VSI OpenVMS to which this kit may be applied: VSI OpenVMS for Integrity Servers V8.4-1H1 VSI OpenVMS for Integrity Servers V8.4-2 VSI OpenVMS for Integrity Servers V8.4-2L1 VSI OpenVMS for Integrity Servers V8.4-2L3 The images and files in this kit apply to any of these VSI OpenVMS versions. Because patch kits are removed by PCSI during upgrades to newer OpenVMS versions, the kit will need to be reinstalled if an upgrade is done from an older listed version to any newer listed version. 3 KITS SUPERSEDED BY THIS KIT: VMS842L1I_DCL-V0100 (Could be installed on V8.4-1H1, V8.4-2, V8.4-2L1) VMS841H1I_DCL-V0200 VMS842I_DCL-V0200 VMS842L1I_DCL-V0200 4 KIT DEPENDENCIES: VMS841H1I_NOTARY-V0200 (if installing on V8.4-1H1) VMS842I_NOTARY-V0200 (if installing on V8.4-2) All VSI OpenVMS patch kits now require the Notary V2.0 patch kit for their respective version of VSI OpenVMS. This is to ensure correct validation regardless of the manifest version in use. The Notary V2.0 kit named above which matches the version of VSI OpenVMS being patched is required for this kit to install. VMS842L1I_UPDATE-V0100 (if installing on V8.4-2L1) All new patch kits for VSI OpenVMS for Integrity Servers V8.4-2L1 require the VMS842L1I_UPDATE-V0100 kit. None (if installing on V8.4-2L3) 5 PROBLEMS ADDRESSED IN THIS KIT ------ For all VSI OpenVMS versions installing this patch kit ------ 5.1 DCL procedure error DOUBLEDEALO bugcheck and process deletion 5.1.1 Problem Description A DCL command procedure with certain syntax errors may result in a supervisor mode DOUBLEDEALO bugcheck, resulting in the deletion of the executing process. This issue is corrected with this patch kit. 5.1.2 Images and/or Files Affected: [SYSEXE]DCL.EXE 5.1.3 VSI case identifier Jiras SPS-1428, SPS-1429, BO-1541 5.1.4 Release Version of VSI OpenVMS that will contain this change: Next VSI OpenVMS for Integrity Servers release after V8.4-2L3 ------ For VSI OpenVMS versions prior to V8.4-2L3 ------ 5.2 DCL expressions with very long strings may cause process crash 5.2.1 Problem Description DCL expression parsing, concatenation, and string reduction (e.g., string1 - string2) involving DCL symbols that resolve to long strings may cause a process crash. DCL expressions containing long string elements may cause DCL to overrun the supervisor-mode stack resulting in a process crash. The crash footprint will resemble: Improperly handled condition, bad stack or no handler specified. Signal arguments: Number = 0000000000000005 Name = 000000000000000C 0000000000000004 000000007FF8BFFC 000000007ADDA300 0000000000000012 After displaying the condition information the process will be terminated. For technical reasons, the effective size of the supervisor-mode stack is smaller on Integrity systems than on Alpha, causing this problem to occur more often. With this patch kit, calculations which would cause a stack overflow now return a warning: %DCL-W-BUFOVF, command buffer overflow - shorten expression or command line 5.2.2 Images and/or Files Affected: [SYSEXE]DCL.EXE 5.2.3 VSI case identifier Bugzilla 3406 5.2.4 Release Version of VSI OpenVMS that contains this change: VSI OpenVMS for Integrity Servers V8.4-2L3 6 PROBLEMS ADDRESSED FROM PREVIOUS KITS Note: VSI OpenVMS for Integrity Servers V8.4-2L3 contained all the following fixes. There were no previous DCL patch kits for V8.4-2L3. ------ From DCL V1.0 kit ------ 6.1 SET COMMAND may construct command tables that cause a process crash 6.1.1 Problem Description After using SET COMMAND to add a command to your process command table or a command table file, certain malformed commands may later cause a process crash in DCL. The tests DCL performs to validate the command structures had an error that resulted in a corruption of internal process memory when checking the malformed command. This would then result in a process crash. DCL has been corrected to gracefully handle malformed command table entries. 6.1.2 Images and/or Files Affected: [SYSEXE]DCL.EXE 6.1.3 Quix and/or Bugzilla cases reporting this problem: VSI Internal Bugzilla 1090 6.1.4 Release Version of VSI OpenVMS that contains this change: VSI OpenVMS for Integrity Servers V8.4-2L3 6.2 SET COMMAND may cause a process or image crash 6.2.1 Problem Description Malformed commands used as input for SET COMMAND may cause a subsequent process crash from DCL by producing a malformed command table. In addition, some malformed input to SET COMMAND may cause an image crash within CDU.EXE while building the command tables for use by DCL. Several missing limit checks were incorrectly allowing broken command tables to be produced. There was no problem with correctly defined commands, but building the malformed commands could cause an access violation in CDU or a subsequent process crash. The checks have been corrected so that valid tables are created or appropriate errors are returned. In particular, the documented limit of 255 qualifiers per VERB or SYNTAX statement is now enforced. In addition, SET COMMAND will now correctly reject a zero-byte file supplied through the /TABLE qualifier. 6.2.2 Images and/or Files Affected: [SYSEXE]CDU.EXE 6.2.3 Quix and/or Bugzilla cases reporting this problem: VSI Internal Bugzilla 1088 6.2.4 Release Version of VSI OpenVMS that contains this change: VSI OpenVMS for Integrity Servers V8.4-2L3 6.3 F$LICENSE sometimes returns FALSE for a loaded license 6.3.1 Problem Description For a loaded license with a version number which is less than 7.1, but not zero, F$LICENSE("","") returns FALSE. For loaded licenses with version number 7.1 or higher, or 0.0 (no version number), F$LICENSE correctly returns TRUE. SHOW LICENSE correctly shows all these licenses as loaded. The behavior of F$LICENSE has been corrected to return TRUE for all validly loaded licenses regardless of version number. 6.3.2 Images and/or Files Affected: [SYSEXE]DCL.EXE 6.3.3 Quix and/or Bugzilla cases reporting this problem: VSI Internal Bugzilla 995 6.3.4 Release Version of VSI OpenVMS that contains this change: VSI OpenVMS for Integrity Servers V8.4-2L3 6.4 RECALL/ALL may cause a process crash after using RECALL/INPUT 6.4.1 Problem Description After using RECALL/INPUT to load the recall buffer, a subsequent RECALL/ALL command may cause a process crash resulting in a display similar to the following and then the process is deleted: Improperly handled condition, bad stack or no handler specified. Signal arguments: Number = 0000000000000005 Name = 000000000000000C 0000000000000000 000000007FFC9CD1 000000007AF8AFA8 0000000000000012 For this problem to occur, the input file must be constructed with embedded NUL characters, which is not a valid command syntax. With this fix, DCL interprets the first NUL character as the terminator of the input line during a RECALL/INPUT command and does not fail during RECALL/ALL. 6.4.2 Images and/or Files Affected: [SYSEXE]DCL.EXE 6.4.3 Quix and/or Bugzilla cases reporting this problem: VSI Internal Bugzilla 1054 6.4.4 Release Version of VSI OpenVMS that contains this change: VSI OpenVMS for Integrity Servers V8.4-2L3 6.4.5 Workaround Verify that any command line supplied to RECALL/INPUT does not contain any NUL characters. ------ From DCL V2.0 kits ------ 6.5 DCL procedures may encounter %RMS-F-DME errors when using F$SEARCH 6.5.1 Problem Description The DCL V1.0 patch kit, VMS842L1I_DCL-V0100, included a change to work around an error in the behavior of F$SEARCH when using the % character as a wildcard but encountering file names which actually included the % character. This would result in the search operation not finding some files. The description of this change was inadvertently omitted in the DCL V1.0 patch kit release notes. The VMS842L1I_DCL-V0100 kit could be installed on any version of VSI OpenVMS for Integrity Servers V8.4-1H1, V8.4-2, or V8.4-2L1. An unfortunate side effect of this attempted workaround caused RMS to consume more resources than previously when performing F$SEARCH, which could lead to this error: %RMS-F-DME, dynamic memory exhausted The underlying search issue is actually a bug which is now corrected with the VSI OpenVMS for Integrity Servers RMS V3.0 patch kits. (This bug was corrected directly in VSI OpenVMS for Integrity Servers V8.4-2L3 and required no patch kit for that OpenVMS version.) The DCL V2.0 patch kits remove the workaround code changed in the DCL V1.0 kit, which result in DCL no longer consuming additional resources for F$SEARCH. 6.5.2 Images and/or Files Affected: [SYSEXE]DCL.EXE 6.5.3 Quix and/or Bugzilla cases reporting this problem: QXCM1001487902 VSI Bugzilla 1736 6.5.4 Release Version of VSI OpenVMS that contains this change: VSI OpenVMS for Integrity Servers V8.4-2L3 6.5.5 Workaround The initial change in the DCL V1.0 patch kit resulted in RMS consuming additional resources for each open context stream when using F$SEARCH. This is the cause of the spurious RMS-F-DME errors. If any of your DCL procedures use a large number of simultaneous search contexts, it may be possible to alleviate the symptom by increasing the system parameter PIOPAGES. PIOPAGES is dynamic and any subsequent processes will pick up the new value on login. 6.6 Exceptionally long token names in CLD files may cause CDU to abort 6.6.1 Problem Description Command Language Definition (CLD) files with exceptionally long token names may cause the CDU parser to overwrite internal structures, causing the program to abort with an access violation. This problem has been corrected. 6.6.2 Images and/or Files Affected: [SYSEXE]CDU.EXE 6.6.3 Quix and/or Bugzilla cases reporting this problem: VSI Internal Bugzilla 1197 6.6.4 Release Version of VSI OpenVMS that contains this change: VSI OpenVMS for Integrity Servers V8.4-2L3 6.7 CANCEL/ID command may cause DCL access violation and process deletion 6.7.1 Problem Description This issue only occurs on IA64 versions of VSI OpenVMS. The command CANCEL/ID=0 or CANCEL/ID= may cause DCL to exit with an access violation, which will cause the process to be deleted. Typically an exception description will be displayed, similar to the following: $ CANCEL/ID=0 Improperly handled condition, bad stack or no handler specified. Signal arguments: Number = 0000000000000005 Name = 000000000000000C 0000000000000000 0000000000000001 000000007AD34EC0 0000000000000012 Register dump: This patch kit corrects the problem. 6.7.2 Images and/or Files Affected: [SYSEXE]DCL.EXE 6.7.3 Quix and/or Bugzilla cases reporting this problem: VSI Internal Bugzilla 1606 6.7.4 Release Version of VSI OpenVMS that contains this change: VSI OpenVMS for Integrity Servers V8.4-2L3 7 IMAGES OR FILES REPLACED: [SYSEXE]DCL.EXE Image name: "DCL" Image file identification: "X-55" Image build identification: "XFWL-C6E-000144" Link identification: "Linker I02-37" Link Date/Time: 4-APR-2024 23:15:31.65 Image Checksum (MD5): F67D411AA8CE3A28B2DDF7074885A384 [SYSEXE]CDU.EXE Image name: "CDU" Image file identification: "I01-11" Image build identification: "XFWL-C6E-000144" Link identification: "Linker I02-37" Link Date/Time: 4-APR-2024 23:15:31.37 Image Checksum (MD5): 779640E212661ABBEB410740D6CC284D Note: VMS Software, Inc. will only distribute kits in signed form. There is no need for most customers to compare file checksums for security or kit integrity reasons. However, some sites may require such checking even when using signed kits. The image or file checksums are supplied (in MD5 format) to provide comparisons to the extracted final kit files. To find a file checksum, use: $ CHECKSUM/ALGORITHM=MD5 filename $ SHOW SYMBOL CHECKSUM$CHECKSUM Note: Because a file or image may be replaced by multiple patch kits over time, a PCSI generation number is used to ensure that the latest version of the file or image is preserved on your system during PRODUCT INSTALL of a patch kit. Should a particular kit installation discover a newer version of a file or image in place on the system disk, the following message will be displayed: %PCSI-I-RETAIN, file will not be replaced because file from kit has lower generation number This is a normal occurrence depending on the order of kit installation. The correct version of the file or image will remain on the system after the current kit installation. The %PCSI-I-RETAIN message is informational only and does not indicate a problem. 8 INSTALLATION INSTRUCTIONS 8.1 Compressed File This kit is provided for download within a ZIP archive container file. The kit files may be extracted on any system with UNZIP and copied to your OpenVMS system, or extracted on your OpenVMS system directly. Assuming you have created an UNZIP symbol to invoke the UNZIP image, you can invoke UNZIP to unpack the kit on OpenVMS using the command: $ UNZIP VMS842L3I_DCL-V0300 This will extract the installable PCSI product kit file and its associated signed manifest (_VNC file), used for kit validation during PRODUCT commands. VSI strongly recommends always using the manifest to validate the kit content during any PRODUCT commands. This will occur automatically if the files are both contained in the same directory. Note regarding UNZIP tool availability: Most customers likely have already installed a set of ZIP and UNZIP tools on their VSI OpenVMS systems. Should you need these tools, a set of the Info-ZIP freeware ZIP and UNZIP tools for VSI OpenVMS is available for download on the web at this address: https://vmssoftware.com/products/zip-tools/ 8.2 Installation Command 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 VMS842L3I_DCL [/SOURCE=location of kit] The kit location may be a tape drive, CD/DVD, or a disk directory that contains the kit. The /SOURCE qualifier is not needed if the PRODUCT INSTALL command is executed from the same directory as the kit location. This kit requires the use of /RECOVERY_MODE and /SAVE_RECOVERY_DATA and will automatically set them; they do not need to be present on the command line. The release notes for any kit may be extracted prior to kit installation using the PRODUCT EXTRACT RELEASE_NOTES command. User-selectable options for installation behavior and scripting are available in this kit, refer to Appendix A for further details. Additional help on installing PCSI kits can be found by typing HELP PRODUCT INSTALL at the system prompt. 8.3 Special Installation Instructions Processes created after installing this kit will pick up the updated images. For interactive processes already logged in, a LOGOUT/LOGIN sequence will be necessary to use these images. If this kit is being installed in a non-clustered environment, the following steps may be ignored. In a VMScluster with a shared system disk, additional steps must be taken so that the other nodes which share the system disk will use the new images. Execute the following command on each node that is sharing the system disk that has been updated: $ INSTALL REPLACE SYS$SYSTEM:DCL.EXE $ INSTALL REPLACE SYS$SYSTEM:CDU.EXE These same commands should be repeated for other systems sharing the system disk if this patch kit is removed via a PRODUCT UNDO PATCH operation. 9 COPYRIGHT ******************************************************************** * * * VMS SOFTWARE, INC. CONFIDENTIAL. This software is confidential * * proprietary software licensed by VMS Software, Inc., and is not * * authorized to be used, duplicated or disclosed to anyone without * * the prior written permission of VMS Software, Inc. * * Copyright 2024 VMS Software, Inc. * * * ******************************************************************** 10 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 VMS SOFTWARE, INC. 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. 11 PATCH ID I64VMS-VMS842L3I_DCL-V0300--4 APPENDIX A - User-selectable control options and scripting considerations Controlling kit behavior for introductory questions --------------------------------------------------- This kit provides user-selectable control options for kit dialogue interaction and automated scripting capability as described here in this appendix. The general form of a VSI ECO patch kit, when using PRODUCT INSTALL, consists of three initial questions regarding these topics: 1. System disk backup: A reminder that VSI recommends backing up the system disk before installing patches, followed by a "Do you want to continue?" yes/no question, default = YES. 2. Reboot requirement: A summary of whether the kit being installed requires a system reboot, followed by a "Do you want to continue?" yes/no question, default = YES. 3. Archival of updated files: A description of saving an "_OLD" copy of each image or file updated by the kit, followed by a "Do you want to save "_OLD" copies of replaced files?" yes/no question, default = NO. Other questions may be asked later, depending on the target disk or system environment or other kit-specific requirements. Note: An initial "Do you want to continue?" question may be asked directly by the PCSI utility during any PRODUCT command -- this has nothing to do with the kit being used. To avoid that question, you must supply sufficient detail to uniquely identify the product you wish to use and specify /OPTIONS=NOCONFIRM on the PRODUCT command. Control options are available to customize the dialogue for the initial three kit questions. The controls are logical names, which may be defined in the process logical name table with a value of YES or NO. To modify the behavior of the VSI ECO patch kit regarding the initial questions, define one or more of the following logical names before issuing the PRODUCT INSTALL command. o To skip one or more of the questions, define the corresponding logical name shown here to YES: SKIP$BACKUP - Skip system backup awareness question. SKIP$REBOOT - Skip system reboot awareness question. SKIP$ARCHIVE_OLD - Skip question about saving "_OLD" files. This will take the default, which is NO. SKIP$INTRO - Skip all three of the above questions. o To specifically override the default for saving "_OLD" files, define this logical name to YES or NO: VSIKIT$ARCHIVE_OLD - Sets an answer for saving "_OLD" files behavior. This will skip the archive "_OLD" files question regardless of the above SKIP$* logical names. o Two additional logical names may be defined as YES to modify the amount of explanatory text displayed for each question: VSIKIT$VERBOSE - Shows all explanatory text for questions. VSIKIT$BRIEF - Skips some general details in the explanations. The default if neither name is defined is VERBOSE. If both names are defined to YES, VERBOSE overrides BRIEF. The BRIEF form is displayed for any questions that are skipped. For example, to skip all three questions but save an archive "_OLD" copy of each replaced file: $ DEFINE VSIKIT$ARCHIVE_OLD YES $ DEFINE SKIP$INTRO YES $ PRODUCT INSTALL Standard behavior for YES/NO questions asked during kit installation -------------------------------------------------------------------- Any YES/NO questions asked during kit installation now follow these rules: 1. Ctrl-Y issued while a question is being asked will force the current PRODUCT operation to terminate. This is completely safe to do while the initial three questions are being asked during PRODUCT INSTALL as no changes have yet been made to the target disk. 2. Some questions may ignore Ctrl-Y and ask for a specific answer, if aborting the current operation may have side effects. PCSI may trap Ctrl-Y directly for some PRODUCT operations. Ctrl-Y may be disabled during some sensitive kit processing. 3. The default YES/NO answer is automatically chosen if a kit is installed from a batch job, unless explicitly overridden by a logical name which provides the particular value, such as VSIKIT$ARCHIVE_OLD. Installing a kit from a batch job --------------------------------- To install a kit from a batch job you will need to fully qualify the kit name so PCSI will have enough information to select the kit without asking for confirmation. For example, to install this kit: $ PRODUCT INSTALL VMS842L3I_DCL/VERSION=V3.0/OPTIONS=NOCONFIRM If the kit is located in a directory other than the current default directory, you will also need to add the qualifier: /SOURCE= For a batch job, any YES/NO question will automatically select the default answer. Use the control logical names explained above to modify the behavior if necessary. For the system disk backup and reboot questions, the batch behavior is identical to the default. For the save "_OLD" files question, define the VSIKIT$ARCHIVE_OLD logical name to YES if you want to save copies of the files, since the batch default is NO. Deprecated logical names from HPE patch kits -------------------------------------------- The three names listed below were used by older VSI OpenVMS patch kits for compatibility with HPE patch kit behavior. These old names continue to function, but VSI encourages you to modify any scripts you may have to use the new names shown instead: Old name New name --------------- -------------------- NO_ASK$BACKUP SKIP$BACKUP NO_ASK$REBOOT SKIP$REBOOT ARCHIVE_OLD VSIKIT$ARCHIVE_OLD