RELEASE NOTES Year 2000 Kits for OpenVMS VAX and OpenVMS Alpha Version 7.1 This document contains release notes for the VAX and Alpha Year 2000 enhancements that ship in kits VAXY2K01_071 and ALPY2K01_071, respectively. Even though DIGITAL believes that few customer sites will need these enhancements, which affect only a few areas of the operating system, all customer sites should install the Year 2000 kit. The few Year 2000 enhancements in this kit result from a rigorous and comprehensive analysis of the entire OpenVMS operating system, including extensive OpenVMS testing. For more information on the OpenVMS Year 2000 Initiative, please visit the OpenVMS Year 2000 web page: http://www.openvms.digital.com/openvms/products/year-2000 After you apply this kit, your OpenVMS Version 7.1 system will conform with DIGITAL's Year 2000 DIGITAL Product Warranty. For more information on this special warranty, see the World Wide Web: http://www.software.digital.com/year2000/y2k_isa2.htm NOTE DIGITAL expects that most year 2000-related problems will occur primarily in locally developed layered applications. Therefore, it is important to start evaluating your applications and environments as soon as possible. Even if DIGITAL's products are ready for the year 2000, you must ensure that the environments in which these products operate are also ready. The OpenVMS Year 2000 web page includes a link to testing instructions, including how to set the system clock ahead to simulate the transition to the year 2000 or other future dates. If you need additional help, contact your DIGITAL support representative to learn what information and tools are available to get you started. 1 Kit Information Kit names: VAXY2K01_071 (VAX) and ALPY2K01_071 (Alpha) Kits superseded by these kits: VAXVERI01_071 and ALPVERI02_071 (Analyze/Disk_Structure Utility) VAXF11X02_071 and ALPF11X02_071 (Files-11 XQP file system) VAXACRT03_071 and ALPACRT03_071 (DEC C Run-Time Library) Kit description: Versions of OpenVMS to which these kits may be applied: OpenVMS VAX Version 7.1 OpenVMS Alpha Version 7.1 and 7.1-1H1 No other kits must be installed to receive the enhancements described in the release notes for this kit. 1 Files modified, replaced, or added: o [SYS$LDR]F11BXQP.EXE (new image) o [SYSEXE]BACKUP.EXE (VAX only; new image) o [SYSEXE]DUMP.EXE (new image) o [SYSEXE]EXCHANGE.EXE (new image) o [SYSEXE]F11AACP.EXE (VAX only; new image) o [SYSEXE]MTAAACP.EXE (new image) o [SYSEXE]STABACKUP.EXE (VAX only; new image) o [SYSEXE]VERIFY.EXE (new image) o [SYSLIB]BACKUPSHR.EXE (VAX only; new image) o [SYSLIB]CLUE$SDA.EXE (Alpha only; new image) o [SYSLIB]DECC$SHR.EXE (new image) o [SYSLIB]LBRSHR.EXE (new image) o [SYSLIB]STARLET.OLB (updated with CRTL.OBJ and CRTLMSGDEF.OBJ) o [SYSLIB]TECOSHR.EXE (VAX only; new image) o [SYSLIB]TECOSHR_TV.EXE (Alpha only; new image) o [SYSUPD]VMS$REMEDIAL_ID.EXE (new image) This new image is provided for installing any future remedial kits that contain one or more images from the ALPY2K01_071 or VAXY2K01_071 kit. 2 Conditions Addressed in This Kit These release notes identify certain conditions you should be aware of when preparing your OpenVMS environment for the year 2000. This kit contains minor modifications to several older components of the operating system; other conditions are simply noted here, but need no changes. Release notes are included for the following facilities that run on the OpenVMS platform: o Crash Log Utility Extractor (CLUE) (Alpha only; see Section 2.1) o EXCHANGE (See Section 2.2) o RSX-11 backwards compatible code: - File system $QIO interface (See Section 2.3.1) - ODS-1 file format (VAX only; see Section 2.3.2) o Run-time libraries (See Section 2.4) 2 o TECO editor (See Section 2.5) The TECO problem actually does not occur until 2028, but Andy figured he'd just go right ahead and fix it for you now because he expects to be retired by then! This kit also includes fixes unrelated to the year 2000 for the Analyze/Disk_Structure utility, the Files-11 XQP file system, and the DEC C Run-Time Library. These fixes were released earlier in separate kits, but now have been incorporated into this kit. Release notes from those kits are included in Appendix A. 2.1 Crash Log Utility Extractor (CLUE) (Alpha Only) The CLUE history listing file contains a 2-digit year format in its file name, which has this format: CLUE$node_ddmmyy_hhmm.LIS This file format poses no year 2000 problem in itself, but the code that generates this date has been changed from using a subtract operation to using a modulo function so that the correct date will still be calculated in the year 2000. This change has no visible effect on the file name format. 2.2 EXCHANGE Utility When the EXCHANGE utility is used to transfer files between OpenVMS and RT-11 or DOS-11 systems, date problems could occur starting in the year 2004 for RT-11 and in the year 2036 for DOS-11. NOTE RT-11 volumes are also used as console storage media on certain older VAX systems. This kit contains an enhancement to EXCHANGE that makes the RT-11 date format continue to function correctly until the year 2099. NOTE DIGITAL transferred the RT-11 operating system, along with other PDP-11 software, to Mentec in 1994. 2.3 RSX-11 Backwards Compatible Code The following sections describe conditions you should be aware of if you interoperate with RSX-11 or if you use RSX-11 software on your OpenVMS system. 3 2.3.1 File System $QIO Interface The file system $QIO interface supports several attributes for RSX-11 compatibility. Of these, ATR$C_EXPDAT and ATR$C_ASCDATES return the file creation date, revision date, and expiration date using 2-digit years. These attributes are not normally used by native code and can be replaced with the following documented, compliant interfaces: ATR$C_CREDATE ATR$C_EXPDATE ATR$C_REVDATE The file system $QIO interface is provided by the following file systems: DIGITAL TCP/IP Network File System (NFS) client Distributed File System (DECdfs) Magnetic tape ACP OpenVMS ODS-1 file system (VAX only; see Section 2.3.2) OpenVMS ODS-2 file system Spiralog file system (Alpha only) 2.3.2 Utilities that Support the ODS-1 File Format (VAX Only) For RSX-11 compatibility, OpenVMS VAX supports ODS-1 file format disk volumes. The ODS-1 file system uses a 2-digit year format internally, and current implementations have limitations for the year 2000. ODS-1 data structures use a 2-digit year (ddmmmyy) in the following items: FI1$T_CREDATE FI1$T_CRETIME FI1$T_EXPDATE FI1$T_REVDATE FI1$T_REVTIME HM1$T_CREDATE The OpenVMS VAX file system and the following OpenVMS utilities that support the ODS-1 file system format have been modified to correctly interpret these 2-digit years until the year 2057: Analyze/Disk_Structure Utility Backup Utility Dump Utility Librarian (LBR) routines Magnetic tape ACP NOTE Even though we are updating the ODS-1 code for the year 2000, DIGITAL strongly recommends that users of ODS-1 formatted media move to a newer file format by the year 2000. 4 2.4 Run-Time Libraries The following sections describe year 2000-related conditions in the run-time libraries. 2.4.1 LIB$ Run-Time Library In the run-time library, the LIB$CONVERT_DATE_STRING routine allows the user to select a 2-digit year format (as well as many others). This routine interprets 2-digit years as belonging to the century in which the system is currently running according to the system clock). For example, in the 1900s, 61 is interpreted as 1961, and starting January 1, 2000, 61 will be interpreted as 2061. If this behavior could produce unexpected results on your system, select one of the alternatives to the 2-digit year format. NOTE This behavior has been documented in the OpenVMS RTL Library (LIB$) Manual since Version 6.0, so we will not change the code. No customer should be penalized for reading the documentation and complying with our stated intentions! 2.4.2 DEC C Run-Time Library (DEC C RTL) The following release notes describe year 2000-related condi- tions in the DEC C Run-Time Library. NOTE This kit also contains DEC C RTL fixes not related to the year 2000. These fixes were previously released in a separate kit. Release notes for those fixes are included in Section A.3. o In OpenVMS Versions 7.0 and 7.1, the DEC C Run-Time Library function times() returns the number of clock ticks since boot time. A clock tick is 1/100th of a second, which allows the routine to represent approximately 250 days. Therefore, an error can occur if you set the system clock ahead more than 250 days to perform year 2000 testing. The DEC C Run-Time Library has changed the reference point from SYI$_BOOTTIME to JPI$_LOGINTIM to avoid this testing error. o Some XPG4 locales in the DEC C Run-Time Library display dates with 2-digit years. These are coded in accordance with the X/Open Company Limited specification and cannot be changed. For your information, the following locale source files in the Alpha ACRTL facility and the VAX CRTL facility use %y to denote a 2-digit year: DA_DK_ISO8859-1.LSRC DE_CH_ISO8859-1.LSRC DE_DE_ISO8859-1.LSRC 5 EN_US_ISO8859-1.LSRC ES_ES_ISO8859-1.LSRC FI_FI_ISO8859-1.LSRC FR_BE_ISO8859-1.LSRC FR_CA_ISO8859-1.LSRC FR_CH_ISO8859-1.LSRC FR_FR_ISO8859-1.LSRC IS_IS_ISO8859-1.LSRC IT_IT_ISO8859-1.LSRC IW_IL_ISO8859-1.LSRC NL_BE_ISO8859-1.LSRC NO_NO_ISO8859-1.LSRC PT_PT_ISO8859-1.LSRC SV_SE_ISO8859-1.LSRC 2.5 TECO Editor This kit includes two minor changes to the TECO editor. (Who says you can't teach an old dog new tricks!) o The date value in the TECO editor has been extended to a longword so that the year value returned by the Ctrl/B function will not overflow on 01-JAN-2028. o This kit also fixes a TECO problem that is unrelated to dates. The UIC value returned by the 2EJ function was incorrect if the process UIC had a group or member number greater than 377. For compatibility reasons, the 2EJ value cannot be changed. However, the problem has been fixed by the following changes: - All group and member numbers that exceed a byte are now mapped to 377 (octal). - A 3EJ function has been implemented to return the longword UIC. The following TECO example demonstrates the change. NOTE: The ESCAPE () sequence can be entered on most keyboards by typing Ctrl/[. $ SET UIC [1234,567] $ TECO *3EJ/65536== 1234 *3EJ&65535== 567 6 3 Kit Installation Kit Installation Rating The following kit installation rating, based upon current CLD information, is provided to serve as a guide as to which cus- tomers should apply this remedial kit. (Refer to the attached Disclaimer of Warranty and Limitation of Liability Statement.) Installation Rating: 1 - To be installed by all customers. Kit Installation Instructions Install this kit using the VMSINSTAL utility. Simply log in to the SYSTEM account and enter the following command at the DCL prompt: For VAX: @SYS$UPDATE:VMSINSTAL VAXY2K01_071 [save-set location] OPTIONS N For Alpha: @SYS$UPDATE:VMSINSTAL ALPY2K01_071 [save-set location] OPTIONS N The save-set location can be a tape drive or a disk directory that contains the kit save set. During the kit installation you will be prompted with options to print and/or display the release notes. You may also see the following messages during the installation procedure: %INSTALL-E-NODELSHRADR, unable to delete image with shareable address data -INSTALL-I-PLSREBOOT, please reboot to install a new version of this image Do not be concerned. These messages announce that DECC$SHR.EXE was installed as a resident image, which is the standard config- uration for OpenVMS Version 7.1 systems. The new image will take effect when the system is rebooted. Reboot the system after the kit has been successfully installed. If you have other nodes in your OpenVMS Cluster system, they should also be rebooted to make use of the new images. Copyright Information Copyright (c) Digital Equipment Corporation 1997. All rights reserved. Unpublished rights reserved under the copyright laws of the United States. The software contained on this media is proprietary to and em- bodies the confidential technology of Digital Equipment Corpo- ration. Possession, use, or dissemination of the software and media is authorized only pursuant to a valid written license from Digital Equipment Corporation. 7 Disclaimer of Warranty and Limitation of Liability Statement With the exception of the Year 2000 DIGITAL Product Warranty referred to at the beginning of this document, this patch is provided as is, without warranty of any kind. All expressed or implied conditions, representations, and warranties, including any implied warranty of merchantability, fitness for particular purpose, or noninfringement, are hereby excluded to the extent permitted by applicable law. In no event will DIGITAL be liable for any lost revenue or profit, or for special, indirect, con- sequential, 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. 8 APPENDIX A RELEASE NOTES FOR SUPERSEDED KITS This appendix contains release notes that were published with the following kits: o VAXVERI01_071 and ALPVERI02_071 (Analyze/Disk_Structure Utility) See Section A.1. o VAXF11X02_071 and ALPF11X02_071 (Files-11 XQP file system) See Section A.2. o VAXACRT03_071 and ALPACRT03_071 (DEC C Run-Time Library) See Section A.3. These kits have been superseded and their contents are now included in this kit. A.1 Analyze/Disk_Structure Utility Release Notes This kit fixes the following problem, which was originally fixed in the VAXVERI01_071 and ALPVERI02_071 kits: Analyze/Disk_Structure would incorrectly "fix" the backlink of a lost directory to point to itself. The next time Analyze/Disk_Structure was run, it would encounter the lost directory and go into a tight loop following the directory's backlink. A.2 Files-11 XQP Release Notes This section reproduces the release notes that accompanied the VAXF11X02_071 and ALPF11X02_071 kits (which also included fixes from the VAXF11X01_071 and ALPF11X01_071 kits, respectively). Problems addressed in VAXF11X02_071 and ALPF11X02_071 kits: o An XQPERR bugcheck occurs when trying to create a file. o A bad FID bugcheck occurs when trying to mark a file header free in the index file bitmap. o There are multiply allocated blocks and file headers on the disk. o The contents of a header or bitmap block could be corrupted within the block buffer cache. o Failure to take an allocation lock could be ignored. o If a DEACCESS request failed with a SS$_DEADLOCK error, a process could be left in an RWAST state indefinitely. Release Notes for Superseded Kits 9 o If a large file is created on a fragmented disk that has quotas enabled and the user needs to use EXQUOTA privilege to allocate the necessary disk space, an internal XQP table can become corrupted. This leads to the following bugcheck: SECAUDERR, Fatal error attempting to perform a security audit o Superseding a file with a version limit set can remove the oldest version of a file even if that version is undeletable by the user according to its protection mask or ACL. The file is removed but not deleted, and can be recovered by ANALYZE/DISK/REPAIR. o Attempting to queue a maximal length (39.39;5) file name to the XQP for spooling to a symbiont would cause either an infinite CPU loop or the following bugcheck: FILCNTNONZ, Open file count nonzero after process rundown o (VAX only) Processes hang in an RWAST state while trying to deaccess a file during channel deassignment. o (VAX only) The system hangs during clusterwide cache flushes. Problems addressed in VAXF11X01_071 and ALPF11X01_071 kits o The problem occurs when a file is deleted while still being accessed by someone. This produces an XQPERR bugcheck when an attempt is made to access the deleted file. o The problem may result in an XQPERR bugcheck which claims that: "all the index buffers are active" during the processing of a directory file. The problem occurs when no free directory index BFRDs are found on the first pass through MAKE_DIRINDX. The thread then stalls to allow some of the BFRDs to be freed, but does not release the cache lock which would allow others to do this. This means that if no free BFRD was found on the first try then none will be found on subsequent tries either, and the bugcheck will occur. o The fault occurs as a UNXSIGNAL Bugcheck after running AUTOGEN, and rebooting with very large SYSGEN ACP cache parameters. The problem occurs when the calculation of DIRINDX in RELEASE_LOCKBASIS overflows. This is due to a multiplication taking place before a division, which overflows when more than 87381 blocks have been allocated between the ACP_MAPCACHE, ACP_DIRCACHE, and ACP_HDRCACHE caches. A.3 DEC C Run-Time Library Release Notes This section reproduces the release notes that accompanied the VAXACRT03_071 and ALPACRT03_071 kits (which also included fixes from the VAXACRT02_071, VAXACRT01_071, ALPACRT02_071, and ALPACRT01_071 kits, respectively). 10 Release Notes for Superseded Kits Problems addressed in VAXACRT03_071 and ALPACRT03_071 kits o The times function was changed in OpenVMS V7.0 to return the number of clock ticks since boot time. Performing year 2000 testing by setting the system time forward causes this return value to overflow. The times function has been changed to return the number of clock ticks since login time, which is less likely to overflow. o Users have requested that kill support the POSIX semantics of "if the process id is negative but not -1, the signal will be sent to all processes whose group ID is equal to the absolute value of the process id, and for which the process has permission to send a signal." This has been added with the restrictions that the process is executing on the same node and does not have a SYSTEM UIC. The errno value is set to ESRCH if no processes are found that match the condition specified. o The performance of DEC C sprintf was much slower than VAX C. An analysis of the printf engine resulted in changes that bring DEC C within 10% of VAX C. o The functions fopen and freopen were mapping invalid access modes to read mode. Invalid modes now cause errno to be set to EINVAL and the open call to fail. o The lseek function may position incorrectly with repeated calls to seek in a file containing fixed length records of odd length. This problem does not occur with even length or variable length records. o Mailbox devices are record-oriented devices, except when created by the pipe function where they are opened as stream devices. Applications that use mailboxes can now force the library to treat all mailboxes as stream devices by creating an environment variable named DECC$MAILBOX_CTX_STM. o The run-time library has been corrected to treat UNIX directory specifications identically in each of the routines that accept a directory specification as a parameter. These run-time library functions are access, opendir, mkdir, and rmdir. Prior to this change, one could call opendir with "/dev/dir", but was forced to append ".dir" to this when calling the access function. o This ECO kit includes major performance improvements when using time-related functions along with Universal Coordinated Time. o A cache of values has been added to the getenv function to avoid the library making repeated calls to translate a logical name, or to obtain a symbol value for environment variables that are not set. If your application makes direct calls to set logical names, this caching can be disabled by defining DECC$DISABLE_GETENV_CACHE prior to calling any run-time library functions. Release Notes for Superseded Kits 11 o The ANSI standard states that streams opened in update mode may read and write to the stream. It further states that reads must be followed by file positioning prior to writing to the stream. The problem corrected was that positioning functions would fail when the file was a terminal. Applications may now position such streams back to the beginning using either rewind or seek. o It was reported that opendir overflowed the stack when running in a threaded application. While correcting this problem, the opendir successful return value was changed from one to zero to align with the X/Open Specifications. o A problem introduced in OpenVMS V7.1 causes the first record of a file to be overwritten when the file is opened in append mode. The correct behavior is that all write operations are done at the end of the file. o Porting code to OpenVMS is hampered by the difference between command procedures and executable images and the mechanisms necessary to invoke them. When passed the string "TEST", the exec functions now search for "TEST.", "TEST.EXE", and "TEST.COM". If found, it is executed as either an image or a command procedure, depending on information in the file header. o Several new universals have been added to the DECC$SHR image shipped with this ECO kit. The presence of these universals may affect application developers who compile using this image. If a developer begins to get errors of the form %LINK-W-MULDEF, symbol DECC$XXX multiply defined in module DECC$SHR file SYS$COMMON:[SYSLIB]DECC$SHR.EXE;1 while linking the application, the compile command should be modified to include "/PREFIX=EXCEPT=XXX". This instructs the compiler to exclude this function when doing name prefixing, which is equivalent to the behavior prior to this ECO kit. o The printf function was enhanced to print "(null)" when passed a null pointer to be used with the "%S" format specifier. Prior to this, the DEC C RTL would issue an access violation error. o Several functions were found to not accept the angle bracket form of directory specifications. These functions include decc$translate_vms and stat, which now accept either square brackets or angle brackets in the directory portion of file specifications. o The exec functions use a mailbox to coordinate open file information between the parent and child processes. A user reported their system hung after 1000 successful invocations of the same child process. This hang was caused by the parent process failing to release an exclusive mode lock being used to coordinate access to the mailbox. The hang would occur when a mailbox was assigned to the parent process for a second time. 12 Release Notes for Superseded Kits o A user reports calling ioctl sets errno to ENOSYS (Function not implemented). Beginning with OpenVMS V7.0, the library looks for support in the underlying TCPIP stack and sets this error if the support is not found. The function has been enhanced to execute UCX$EXAMPLES:UCX$IOCTL_ROUTINES under these conditions. o The decc$to_vms function has been enhanced to recognize names found on other systems, converting "/dev/null" to "NLA0:", "/tmp" to "SYS$SCRATCH:", and "/bin" to "SYS$SYSTEM:". o The getpwnam function now uppercases the username parameter if it is not found in its original form. Prior to this change, the function would fail. o (Alpha only) An enhancement was made in the DEC C V5.6 compiler to optimize certain format strings passed to the printf family of library functions. This ECO kit adds the run-time support to the shareable image. Prior to this, the symbols were resolved via objects added to STARLET by the compiler. Full details of this support can be found in the DEC C V5.6 release notes. Problems addressed in VAXACRT02_071 and ALPACRT02_071 kits o Those functions, such as printf, which have thread-specific data, incorrectly use the threads interface to release that memory when a thread is being destroyed. The result is that all thread-specific memory is lost. o The read, fread, write, and fwrite DEC C RTL functions now return unsuccessful status with errno set to EINVAL if one of the arguments of size_t type or total number of bytes to be transmitted is not in the range 0 to INT_MAX. The total number of bytes is the product of the size_of_item and number_items arguments for fread and fwrite functions. The value of INT_MAX is defined in the header file. o The interval timer function, setitimer, fails to reset itself when used in a multithreaded application. The result is a single firing of the timer as opposed to repeated firing of the timer at fixed intervals. o A change made in OpenVMS V7.1 and remedial kits to other versions cause calls to the mktemp function using templates of the form "dumpXXXXXX.txt" to no longer substitute the pattern with the process id. While a change is necessary to prohibit substituting the directory portion in a template such as "[XX]dumpXXXXXX", the change that was made was overly harsh, forcing all substitution to the end of the pattern. o The strstr function accesses memory beyond the ends of the strings passed. In cases where the next page is not accessible, the result is an access violation. The problem was reported against the ADA compiler, which uses the strstr function in this way. o Although files in general are correctly inherited after a fork/exec function call, files that are opened in any sort of sharing mode are not. Release Notes for Superseded Kits 13 o The ECO kits ALPACRT01_071 and VAXACRT01_071 made changes to the return value of the puts and fputs routines. While these changes were in line with the documentation, which states that they return non-negative numbers on success, specific applications were coded to expect zero as success. Since this zero return value was documented with the VAXC product, we have restored the original behavior. o When accessing files in stream mode, closing the file may result in an extra byte being written to the file. While this byte is not seen using the type command, it may be seen when using the dump utility. o (Alpha only) A customer reports that the functions atof, strtod, and wcstod incorrectly return HUGE_VAL values when compiling with the IEEE_FLOAT and an ieee_mode qualifier of DENORM_RESULTS. The results returned have been modified to take the compilation mode of the calling program into account. The return value can now be compared against HUGE_VAL. o (Alpha only) The following code segment demonstrates a problem in the printf family of functions running on OpenVMS for Alpha. double n; for (n = 9.0e16; n < 11.0e17; n += 1.0e+17) printf ("%20.0f\n", n); The result is that the final zero is missing in the display of all but the first and last line. Problems addressed in VAXACRT01_071 and ALPACRT01_071 kits o The stat function now uses a thread-specific buffer to store data. Prior to this correction, calling stat from two separate threads would interfere with one another. o An ISV reports that extra characters are seen on occasion when using a subprocess which sends data back to the parent process using a mailbox. o A case was found where the fseek function failed, correctly returned a -1 value, but failed to set errno properly. o One of the arguments to the decc$to_vms function is "allow_wild" which is documented to accept the values zero and one. If wildcards are used in the file specification, they are either rejected or expanded into the resultant file specifications. Passing a value of -1 for the allow_wild parameter now returns the file specifications with the wildcards intact, but after having prepared to the point of doing a sys$search. o Unlike DIGITAL UNIX, the fsync(socket_id) call results in an access violation instead of returning an EINVAL status. o A user reports and demonstrates that opening and closing sockets does not properly release mutexes eventually causing this resource to be exhausted. This problem was introduced in OpenVMS V7.0. 14 Release Notes for Superseded Kits o Applications that call opendir and readdir recursively to traverse subdirectories may end up in an infinite loop when reading the directory that includes returning [000000]000000.DIR. The readdir function no longer returns an entry that is equivalent to the directory being read. o OpenVMS V7.1 changed the behavior of the readdir function in that it no longer retains the ".dir" extension when returning a directory using the UNIX file syntax. Applications that rely on this extension can now define a DECC$READDIR_KEEPDOTDIR logical to restore this behavior. o Beginning with OpenVMS V7.1, the DEC C Run-time Library does not read the first record while opening the file if such preloading will cause RMS to lock the record. Several users have reported that images which used to work fine now fail. We have tuned this record preloading code to take these user programs into account. Release Notes for Superseded Kits 15