Kit Name: DEC-AXPVMS-VMS82A_DCL-V0100--4.PCSI$COMPRESSED Kit Applies To: OpenVMS ALPHA V8.2 Approximate Kit Size: 724 blocks Installation Rating: INSTALL_3 Reboot Required: No Superseded Kits: None Mandatory Kit Dependencies: VMS82A_UPDATE-V0500 or later VMS82A_PCSI-V0100 or later Optional Kit Dependencies: None Checksums: VMS82A_DCL-V0100.ZIPEXE Checksum: 3296925761 DEC-AXPVMS-VMS82A_DCL-V0100--4.PCSI$COMPRESSED Checksum: 2249290051 VMS82A_DCL-V0100.ZIPEXE MD5 Checksum: 6BB698DB91AC69B7D34F2DB3672AE010 DEC-AXPVMS-VMS82A_DCL-V0100--4.PCSI$COMPRESSED MD5 Checksum: 6D6FF5C5CA08EB5A2176F1B115651229 ======================================================================= Hewlett-Packard OpenVMS ECO Cover Letter ======================================================================= 1 KIT NAME: VMS82A_DCL-V0100 2 KIT DESCRIPTION: 2.1 Installation Rating: INSTALL_3 : To be installed by customers experiencing the problems corrected. 2.2 Reboot Requirement: No reboot is necessary after installation of this kit. See section 7.5 "Special Installation Instructions" for more information on required post-installation steps. 2.3 Version(s) of OpenVMS to which this kit may be applied: OpenVMS ALPHA V8.2 2.4 New functionality or new hardware support provided: Yes 3 KITS SUPERSEDED BY THIS KIT: - None 4 KIT DEPENDENCIES: 4.1 The following remedial kit(s), or later, must be installed BEFORE installation of this, or any required kit: - VMS82A_PCSI-V0100 - VMS82A_UPDATE-V0500 Page 2 4.2 In order to receive all the corrections listed in this kit, the following remedial kits, or later, should also be installed: - None 5 NEW FUNCTIONALITY AND/OR PROBLEMS ADDRESSED IN THE VMS82A_DCL-V0100 KIT 5.1 New functionality addressed in this kit 5.1.1 F$DELTA_TIME Returns The Wrong Delta Time 5.1.1.1 Functionality Description: F$DELTA_TIME returns the delta time as formatted by $ASCTIM, "dddd hh:mm:ss.hh" but that is not how DCL formats delta times. DCL expects "dddd-hh:mm:ss.hh". The result is that a delta time from F$DELTA cannot be fed back into a DCL command without modification to add the missing "-" between the days and hours fields, and remove the leading white space. Following are two examples of the problem: $ XA = f$cvtime("YESTERDAY","ABSOLUTE") $ XB = f$cvtime("TODAY","ABSOLUTE") $ SUBMIT/AFTER="+''F$DELTA_TIME(XA,XB)'" LOGIN.COM %DCL-W-IVATIME, invalid absolute time - use DD-MMM-YYYY:HH:MM:SS.CC format \+ 1 00:00:00.00\ $ WRITE SYS$OUTPUT - f$cvtime("+"+f$delta_time(f$cvtime("YESTERDAY",- "ABSOLUTE"), f$cvtime("TODAY","ABSOLUTE"))) %DCL-W-IVATIME, invalid absolute time - use DD-MMM-YYYY:HH:MM:SS.CC format \+ 1 00:00:00.00\ To address the problem, an optional FORMAT argument is being added to F$DELTA_TIME. The FORMAT argument can take two keywords, ASCTIM (default) or DCL. Using the DCL keyword, the output is converted to the DCL format of delta time. To avoid breaking existing procedures, when the FORMAT argument is omitted - the ASCTIM format is used. Examples: $ A=f$time() $ B=f$time() $ WRITE SYS$OUTPUT F$DELTA_TIME (A,B,"ASCTIM") 0 00:00:06.61 If the DCL keyword is used, the result is converted to the DCL delta time format: Page 3 $ WRITE SYS$OUTPUT F$DELTA_TIME (A,B,"DCL") 0-00:00:06.61 Using the new DCL keyword, the above mentioned examples now work: $ XA = f$cvtime("YESTERDAY","ABSOLUTE") $ XB = f$cvtime("TODAY","ABSOLUTE") $ SUBMIT/AFTER="+''F$DELTA_TIME(XA,XB,"DCL")'" LOGIN.COM Job LOGIN (queue SYS$BATCH, entry 1) holding until 20-MAY-2005 01:20 $ WRITE SYS$OUTPUT - f$cvtime("+"+F$DELTA_TIME(F$CVTIME("yesterday",- "absolute"),f$cvtime("TODAY","ABSOLUTE"),"DCL")) 2005-05-20 01:18:55.78 Images Affected: - [SYSEXE]DCL.EXE 5.1.2 Spawned Process Limit Increases to 65535 Per Username 5.1.2.1 Functionality Description: When creating the numeric portion of the spawned process name, a byte numeric quantity is used, allowing for 255 spawned processes. This was once a reasonable limit, but not anymore. When this limit is reached, the system can expend excessive CPU time (with spinlocks held) trying (and failing) to create more processes. The numeric portion of the spawned process name has been changed from a byte's worth of numbers to a word's worth. This will allow for the creation of up to 65535 processes per username. This is a reasonable limit, as it is greater than the maximum number of processes capable of being created via the MAXPROCESSCNT SYSGEN parameter. In order to allow this greater number of spawned processes, the username portion of the process name had to be shortened. Five characters are now needed to express the numeric portion (instead of three). This required reducing the username portion from eleven characters to nine. Along with the embedded underscore, spawned processes will never exceed the fifteen character limit for process names. Since this update creates a user-visible change in the process name, a method for reverting back to the previous scheme for generating process names (including the 255 process name limit) is provided. Bit 2 of the DCL_CTLFLAGS SYSGEN parameter has been defined for this purpose. If this bit is set to 0 (the default), the new scheme is used. If it is set to 1, the old scheme is Page 4 used. Images Affected: - [SYSEXE]DCL.EXE 5.2 Problems addressed in this kit 5.2.1 Debug Spawn Command Hangs 5.2.1.1 Problem Description: The debug spawn command hangs when used debugging multiple kernel thread upcall enabled images. Images Affected: - [SYSEXE]DCL.EXE 5.2.1.2 CLDs, and QARs reporting this problem: 5.2.1.2.1 CLD(s) None. 5.2.1.2.2 QAR(s) 75-102-1940 5.2.1.3 Problem Analysis: See problem description. 5.2.1.4 Release Version of OpenVMS that will contain this change: OpenVMS Alpha V8.3 5.2.1.5 Work-arounds: None. Page 5 5.2.2 DCL-W-SYMOVF Error 5.2.2.1 Problem Description: DCL reports a DCL-W-SYMOVF error. Images Affected: - [SYSEXE]DCL.EXE 5.2.2.2 CLDs, and QARs reporting this problem: 5.2.2.2.1 CLD(s) QXCM1000311003 5.2.2.2.2 QAR(s) None. 5.2.2.3 Problem Analysis: An attempt to execute a non-existent command procedure, for example: $ @TEST %DCL-E-OPENIN, error opening USER01:[TEST.DCL]TEST.COM; as input -RMS-E-FNF, file not found will cause a memory leak. After many failures, DCL runs out of memory and reports a DCL-W-SYMOVF error on any operation that requires symbol space memory. The user must logout to fix the problem. 5.2.2.4 Release Version of OpenVMS that will contain this change: OpenVMS Alpha V8.3 5.2.2.5 Work-arounds: None. 5.2.3 F$ENVIRONMENT("procedure") Returns Inconsistant Results Page 6 5.2.3.1 Problem Description: The F$ENVIRONMENT("procedure") DCL command truncates or contains garbage in the last character of the file specification. Images Affected: - [SYSEXE]DCL.EXE 5.2.3.2 CLDs, and QARs reporting this problem: 5.2.3.2.1 CLD(s) QXCM1000313703 5.2.3.2.2 QAR(s) None. 5.2.3.3 Problem Analysis: The filename length is not set correctly prior to the allignment of the address for deallocating the unused memory allocated for storing the procedure file name. 5.2.3.4 Release Version of OpenVMS that will contain this change: OpenVMS Alpha V8.3 5.2.3.5 Work-arounds: None. 5.2.4 Warnings Indicating A Shortage Of Storage Space 5.2.4.1 Problem Description: In some cases, DCL uses an unnecessary 8 bytes of storage for the filename buffer. This can lead to warnings similar to the following: %DCL-W-SYMOVF, no room for symbol definitions - delete some symbols Images Affected: Page 7 - [SYSEXE]DCL.EXE 5.2.4.2 CLDs, and QARs reporting this problem: 5.2.4.2.1 CLD(s) None. 5.2.4.2.2 QAR(s) 75-109-1184 5.2.4.3 Problem Analysis: There is no check to see if the address is already aligned. This can cause DCL to use an unnecessary 8 bytes of storage for the filename buffer. 5.2.4.4 Release Version of OpenVMS that will contain this change: OpenVMS Alpha V8.3 5.2.4.5 Work-arounds: None. 5.2.5 DCL command buffer overflow 5.2.5.1 Problem Description: Two unnecessary "%DCL-W-BUFOVF" warnings occur when handling large symbols: o Command buffer overflow occurs when attempting to define a symbol in the form of [offset,size], and the symbol's value exceeds 255 characters. $ b=f$fao("!500*X") $ a[10,500]:="''b'" %DCL-W-BUFOVF, command buffer overflow - shorten expression or command line \A[10,500]:=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX Page 8 o Command buffer overflow occurs when the length of a symbol provided to lexical function F$TYPE exceeds 1024 characters. $ write sys$output f$length(a) 1836 $ write sys$output f$type(a) %DCL-W-BUFOVF, command buffer overflow - shorten expression or command line Images Affected: - [SYSEXE]DCL.EXE 5.2.5.2 CLDs, and QARs reporting this problem: 5.2.5.2.1 CLD(s) QXCM1000317927 5.2.5.2.2 QAR(s) None. 5.2.5.3 Problem Analysis: o The maximum length of symbols in the form of [offset,size] was hardcoded to 255 characters. o The scratch buffer used by all lexical functions is limited to 1024 bytes. 5.2.5.4 Release Version of OpenVMS that will contain this change: OpenVMS Alpha V8.3 5.2.5.5 Work-arounds: None. Page 9 5.2.6 F$DELTA_TIME does not default empty time fields to zero 5.2.6.1 Problem Description: Lexical function F$DELTA_TIME was not defaulting empty or truncated time fields to zero. This behavior is not consistent with other lexical functions handling absolute time like F$CVTIME. Here is an example showing how the output varies based on the current time: IPL31> write sys$output f$delta_time("19-feb-2006 17:00:00.00","19-feb-2006 19:15") 0 02:15:29.69 IPL31> write sys$output f$delta_time("19-feb-2006 17:00:00.00","19-feb-2006 19:15") 0 02:15:31.10 Using the new image, the correct result is displayed: IPL31> write sys$output f$delta_time("19-feb-2006 17:00:00.00", "19-feb-2006 19:15") 0 02:15:00.00 Images Affected: - [SYSEXE]DCL.EXE 5.2.6.2 CLDs, and QARs reporting this problem: 5.2.6.2.1 CLD(s) QXCM1000319292 5.2.6.2.2 QAR(s) None. 5.2.6.3 Problem Analysis: F$DELTA_TIME was using SYS$BINTIM to convert the input time to binary time. SYS$BINTIM defaults any missing time fields to the current time instead of defaulting it to zero. 5.2.6.4 Release Version of OpenVMS that will contain this change: Page 10 5.2.6.5 Work-arounds: None. 5.2.7 Missing "AMBSYMD" warning on Conflicting Assignment 5.2.7.1 Problem Description: When an account does not have the SYSNAM privilege, an "AMBSYMD" warning is not be displayed, as it should be, when there is a conflicting assignment. $ a*12=12 $ a*34=34 $ SHOW SYMBOL $status $STATUS == "%X00030001" With this change the correct behavior will occur: $ a*12=12 $ a*34=34 %DCL-W-ABSYMD, abbreviated symbol definition conflict - rename symbol $ SHOW SYMBOL $status $STATUS == "%X000381A0" Images Affected: - [SYSEXE]DCL.EXE 5.2.7.2 CLDs, and QARs reporting this problem: 5.2.7.2.1 CLD(s) QXCM1000331645 5.2.7.2.2 QAR(s) None. 5.2.7.3 Problem Analysis: Security checks are calling several system services without preserving the status returned from an inner DCL routine. Page 11 5.2.7.4 Release Version of OpenVMS that will contain this change: OpenVMS Alpha V8.3 5.2.7.5 Work-arounds: None. 6 FILES PATCHED OR REPLACED: o [SYSEXE]DCL.EXE (new image) Image Identification Information image name: "DCL" image file identification: "X-47A2" image file build identification: "XAJT-0070050011" link date/time: 3-AUG-2006 14:01:48.68 linker identification: "A11-50" Overall Image Checksum: 1588464384 7 INSTALLATION INSTRUCTIONS 7.1 Test/Debug Image Loss In the course of debugging problems reported to OpenVMS Engineering, customers may be given debug or point-fix images to install. Typically, these images do not have the same image generation flags contained in images released via the OpenVMS remedial patch process. Because of this, any debug or point-fix image that is in the SYS$COMMON area, will be replaced by any image of the same name installed by this kit. If this occurs, you will lose any functionality that is provided by the replaced image. If you wish to retain these debug or point-fix images, you can take the following steps: o Prior to installing this kit, move the test/debug image(s) to be saved to the SYS$SPECIFIC area. o During kit installation, you will be asked if you wish to delete the image(s) in SYS$SPECIFIC. You should answer NO for each image that you want to keep. o After installation completes, but before rebooting the system (if required), move the image(s) from SYS$SPECIFIC back to SYS$COMMON. Page 12 7.2 Compressed File This kit is provided as a Self Extracting ZIPEXE kit. To expand this file to the installable .PCSI file, run the file with the following command: $ RUN VMS82A_DCL-V0100.ZIPEXE 7.3 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 VMS82A_DCL[/SOURCE=location of Kit] Note that this kit will install with the /SAVE_RECOVERY_DATA option turned on. Using this qualifier will allow easy removal of the kit from the system in the event of problems. If you wish to disable this option you must use the /NOSAVE_RECOVERY_DATA qualifier on the PRODUCT INSTALL command. The /SAVE_RECOVERY_DATA qualifier is optional but highly recommended. Using this qualifier will allow easy removal of the kit from the system in the event of problems. The kit location may be a tape drive, CD, 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. Additional help on installing PCSI kits can be found by typing HELP PRODUCT INSTALL at the system prompt. 7.4 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 logical name definitions and commands: o To avoid the BACKUP question, define the following: $ DEFINE/SYS NO_ASK$BACKUP TRUE o To save replaced files as *.*_OLD define the following logical name as YES. If you do not wish to save replaced files, define the logical name as NO. Note that if you use the /SAVE_RECOVERY_DATA qualifier (recommended) on the PRODUCT INSTALL command all replaced files will be saved as part of that operation. There is no need to also save files as *.*_OLD: $ DEFINE/JOB ARCHIVE_OLD NO Page 13 o Add the following qualifiers to the PRODUCT INSTALL command and add that command to the DCL procedure. /PROD=DEC/BASE=AXPVMS/VER=V1.0 [/SOURCE=location of Kit] o De-assign the logical names assigned For example, a sample command file to install the VMS82A_DCL-V0100 kit would be: $ DEFINE/SYS NO_ASK$BACKUP TRUE $ DEFINE/JOB ARCHIVE_OLD NO $! $ PROD INSTALL VMS82A_DCL/PRODUCER=DEC/BASE=AXPVMS/VER=V1.0" $! $ DEASSIGN/SYS NO_ASK$BACKUP $! $ exit $! 7.5 Special Installation Instructions: If this kit is being installed in a clustered environment with a shared system disk, in order for all members of the cluster that share the system disk to make use of the new image, you must execute the following command on each node that is sharing the system disk: INSTALL REPLACE SYS$SHARE:DCL.EXE Once installed, users will need to log out and log back in in order to use the new image. 8 COPYRIGHT AND DISCLAIMER: (C) Copyright 2007 Hewlett-Packard Development Company, L.P. Confidential computer software. Valid license from HP and/or its subsidiaries 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. Neither HP nor any of its subsidiaries shall 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 HP products are set forth in the express limited warranty statements accompanying such products. Nothing herein should be construed as constituting an additional warranty. Page 14 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 HP 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.