ECO NUMBER: ALPBASE02_071 ----------- PRODUCT: OpenVMS Alpha Operating System -------- UPDATED PRODUCT: OpenVMS Alpha Operating System 7.1 ---------------- APPRX BLCK SIZE: 36900 ---------------- COVER LETTER 1 KIT NAME: ALPBASE02_071 2 KITS SUPERSEDED BY THIS KIT: ALPBASE01_071 3 KIT DEPENDENCIES: 3.1 Inclusion of ALPY2K01_071 Functionality The ALPBASE02_071 remedial kit includes all fuctionality that was shipped with the ALPY2K01_071 remedial kit. Therefore, after the installation of the ALPBASE02_071 remedial kit, your system will be Y2K compliant. There is no need to install the ALPY2K01_071 remedial kit. In addiiton, configurations that have Volume Shadowing must also install the ALPSHAD04_071 or a subsequent kit to ensure that all dependency images are installed. 3.2 The following remedial kit(s) must be installed BEFORE installation of this kit: None 3.3 In order to receive the all the corrections listed in this kit, the following remedial kits should also be installed: None 4 KIT DESCRIPTION: 4.1 Version(s) of OpenVMS to which this kit may be applied: OpenVMS Alpha V7.1, V7.1-1H1 4.2 Files patched or replaced: o [SYSLIB]ALPHA_CLUE$SDA.EXE (new image) o [SYSEXE]APB.EXE (new image) -- COVER LETTER -- Page 2 4 May 1998 o [SYSLIB]CLUE$SDA.EXE (new image) o [SYSEXE]CONFIGURE.EXE (new image) o [SYSEXE]DEBUG_APB.EXE (new image) o [ACRTL]DECC$SHR.EXE (new image) o [DUMP]DUMP.EXE (new image) o [SYS$LDR]EXCEPTION.EXE (new image) o [SYS$LDR]EXCEPTION_MON.EXE (new image) o [EXCHNG]EXCHANGE.EXE (new image) o [SYS$LDR]EXEC_INIT.EXE (new image) o [F11BX]F11BXQP.EXE (new image) o [SYS$LDR]IMAGE_MANAGEMENT.EXE (new image) o [SYS$LDR]IO_ROUTINES.EXE (new image) o [SYS$LDR]IO_ROUTINES_MON.EXE (new image) o [SYSEXE]LANACP.EXE (new image) o [SYSEXE]LANCP.EXE (new image) o [SYSLIB]LBRSHR.EXE (new image) o [SYSEXE]MTAAACP.EXE (new image) o [SYS$LDR]NET$CSMACD.EXE (new image) o [SYS$LDR]NET$FDDI.EXE (new image) o [SYS$LDR]PROCESS_MANAGEMENT.EXE (new image) o [SYS$LDR]PROCESS_MANAGEMENT_MON.EXE (new image) o [SYSLIB]SDA$SHARE.EXE (new image) o [SYSEXE]SDA.EXE (new image) le;[SYSEXE]SHOW.EXE (new image) o [SYSEXE]STACONFIG.EXE (new image) o [SYS$LDR]SYS$ATMWORKS351.EXE (new image) o [SYS$LDR]SYS$BASE_IMAGE.EXE (new image) o [SYS$LDR]SYS$CLDRIVER.EXE (new image) -- COVER LETTER -- Page 3 4 May 1998 o [SYS$LDR]SYS$ECDRIVER.EXE (new image) o [SYS$LDR]SYS$ELDRIVER.EXE (new image) o [SYS$LDR]SYS$EODRIVER.EXE (new image) o [SYS$LDR]SYS$ERBTDRIVER.EXE (new image) o [SYS$LDR]SYS$ERDRIVER.EXE (new image) o [SYS$LDR]SYS$ESDRIVER.EXE (new image) o [SYS$LDR]SYS$EWBTDRIVER.EXE (new image) o [SYS$LDR]SYS$EWDRIVER.EXE (new image) o [SYS$LDR]SYS$EWDRIVER_DE500BA.EXE (new image) o [SYS$LDR]SYS$EXDRIVER.EXE (new image) o [SYS$LDR]SYS$EZDRIVER.EXE (new image) o [SYS$LDR]SYS$FADRIVER.EXE (new image) o [SYS$LDR]SYS$FCBTDRIVER.EXE (new image) o [SYS$LDR]SYS$FCDRIVER.EXE (new image) o [SYS$LDR]SYS$FRBTDRIVER.EXE (new image) o [SYS$LDR]SYS$FRDRIVER.EXE (new image) o [SYS$LDR]SYS$FWBTDRIVER.EXE (new image) o [SYS$LDR]SYS$FWDRIVER.EXE (new image) o [SYS$LDR]:SYS$FXDRIVER.EXE (new image) o [SYS$LDR]SYS$HCDRIVER.EXE (new image) o [SYS$LDR]SYS$HWDRIVER.EXE (new image) o [SYS$LDR]SYS$ICDRIVER.EXE (new image) o [SYS$LDR]SYS$IRDRIVER.EXE (new image) o [SYS$LDR]SYS$IWDRIVER.EXE (new image) o [SYS$LDR]SYS$LAN.EXE (new image) o [SYS$LDR]SYS$LAN_ATM.EXE (new image) o [SYS$LDR]SYS$LAN_CSMACD.EXE (new image) -- COVER LETTER -- Page 4 4 May 1998 o [SYS$LDR]SYS$LAN_FDDI.EXE (new image) o [SYS$LDR]SYS$LAN_TR.EXE (new image) o [SYS$LDR]SYS$VM.EXE (new image) o [SYSEXE]SYSBOOT.EXE (new image) o [SYSEXE]SYSINIT.EXE (new image) o [TECO32]TECOSHR_TV.EXE (new image) o [VERIFY]VERIFY.EXE (new image) o [SYSUPD]VMS$REMEDIAL_ID.EXE (new image) o [SYS$LDR]EXCEPTION.STB (new image) o [SYS$LDR]EXCEPTION_MON.STB o [SYSHLP]SDA.HLB o [ACRTL]CRTL.OBJ o [ACRTL]CRTLMSGDEF.OBJ 5 KNOWN PROBLEMS o A regression has been found in the ALPACRT04_071 and ALPBASE01_071 kit where a DECC read() function fails to read an entire buffer. The read() function will now only read the maximum of bytes as determined by the SYSGEN parameter DEFMBXMXMSG in a single call. By default, this is 256 bytes. Expecting reads larger than DEFMBXMXMSG was not previously assured, according to the DEC C RTL Reference Manual, which states: "This function returns the number of bytes read. The return value does not necessarily equal nbytes . For example, if the input is from a terminal, at most one line of characters is read. The read function does not span record boundaries in a record file and, therefore, reads at most one record. A separate read must be done for each record." If this problem is encountered, the workaround is to change the dynamic SYSGEN parameter DEFMBXMXMSG to be larger than the largest expected read, or to recode the application to properly handle the return value from read(). A fix for this problem is currently being designed and will be available in the ALPACRT05_071 and later remedial kits. -- COVER LETTER -- Page 5 4 May 1998 o DECWINDOWS Motif users that do not use the new interface, (i.e. decw$start_new_desktop = "FALSE") must also install the ALPMOTF02_U4012, or later, remedial kit to insure that the workstation will start correctly after installation of the ALPBASE01_071 kit. Failure to do so will result in a DECW$SERVER crash that will prevent you from using your system. If the decw$start_new_desktop logical is set to TRUE, the new desktop will start correctly, even after the installation of this kit o You must NOT attempt to re-install the ALPACRT01_071 through ALPACRT04_071 nor the ALPY2K01_071 remedial kits after installing the ALPBASE01_071 kit. Installation of these kits will lead to a regression in the CRTL object library. If these kits are installed after ALPBASE01_071, then you must reinstall ALPBASE01_071 or ALPACRTL05_071 (or later). 6 PROBLEMS ADDRESSED IN ALPBASE02_071 KIT o The EXCHANGE.EXE, VERIFY.EXE and F11BXQP.EXE images in the ALPBASE01_071 remedial kit had installation conflicts with the ALPY2K01_071 remedial kit. This kit corrects those conflicts. 7 PROBLEMS ADDRESSED IN ALPBASE01_071 KIT o If a user mode program causes a user mode exception, rather than the image simply exiting with an ACCVIO, the system crashes with a SSRVEXCEPT bugcheck. o The display of the signal array on image exit was garbled. o A multithreaded process with upcalls enabled may hang in HIB due to a missing event flag upcall. If a program makes heavy use of event flags for synchronization, notification of an event flag being set can sometimes be lost. This can result in a thread waiting forever for an event which already took place. o The SDA$SHARE and SYS$BASE_IMAGE images which were shipped in ALPSHAD03_071 result in an SDA warning when SDA is used. o Additional system routine vectors to support new ATM connection manager support shipped with V7.1-1H1. o File system integrity could be compromised if a device is mounted /NOSHARE on one system and as the member of a shadow system disk on another system. -- COVER LETTER -- Page 6 4 May 1998 No "Alloc. lock ID" is setup on the booting system o SYSBOOT is enhanced to check foreign boot media, when the foreign boot flag is set, for SYS$CPU_ROUTINES_xxxx.EXE before looking on on the system disk. This allows the SHIP/3PB process to be used to supply new platform-specific code that replaces existing code. o Bugcheck if CONFIG.DAT is missing on a foreign boot. o Bugcheck if CONFIG.DAT is empty on a foreign boot. o Boot HALTs on some platforms with the floppy as a secondary boot device. o Error message text that was not referenced by code has been removed. o If a system with a shadowed system disk is shutdown and rebooted, the same CLUE HISTORY output (and AUTOCLUE data mailed via DSNlink) can be produced multiple times. o Corruption can occur in the heap storage used by SDA to old its binary tree of symbol names and values. The result is an ACCVIO, apparently from the first CLUE command issued. o SDA doesn't handle relocatable global (non-universal) symbols correctly if they are in resident images. o System Crash due to use of section table offset in CCB$L_WIND. o Because UCB structures might vary in size, CLUE first reads in an octaword to determine how large the UCB really is, followed by another read of the whole UCB into the local buffer. Currently this local buffer is 8KB in size. However, on a system with some laser disks connected to SCSI, the UCB is over 11KB in size. This will result in CLUE corrupting some internal data storage, causing CLUE to report %SDA-E-BADMAJVER error in subsequent commands. o HELP in Alpha SDA mostly reflects pre-V6.1 functionality. o SSRVECEXPT Bugcheck during Boot at F11FR$CACHE_LOOKUP_C+00010. Current process name is LANACP. o In an OpenVMS cluster, some clients would configure a SCSI device, some would not. o Synchronization problem in CONFIGURE opens a crash timing window during DEV_SCAN routine. This causes an ACCVIO exception bugcheck. o OpenVMS could potentially create processes in the same group UIC with the same process name. -- COVER LETTER -- Page 7 4 May 1998 o When a Satellite is booted over the DE425, and a system shutdown is requested, the system will hang on the way down waiting for access to the system disk. This problem can affect any Alpha system with an EISA bus and a DE425. o Fix for corruption of LEC ARP event queues resulting in INVEXCEPTN bugchecks. o The 3C589 Ethernet Card, revision D, requires more time for reset than the original revision C card. o Some NCL commands in DECNET/PLUS cause systems to crash with INVEXCEPTN, Exception while above ASTDEL at location SYS$NETWORK_SERVICES offset 0000EA8C, EMAA$BUILD_RESPONSE_C+00B1. o Applications that start/stop rapidly and repeatedly on the LAN driver, cause the network management code to create additional data structures with CSMACD$EW_xxxxxxxx (where xxxxxxx is that new UCB address created). After running the application, non-paged pool is consumed and never returned. This is only a problem using network management NET$CSMACD and NET$FDDI. While starting/stopping an application interface to LAN driver, after 100 start/stops, with client name structures having CSMACD$EW_xxxxxxxx, you can see that pool is consumed. This is only a problem using network management NET$CSMACD, NET$FDDI, etc. o A mult-segment transmit that has a buffer that crosses the page boundary, between unmapped and mapped physical memory, may result in a DMA error. o Oversize packets are being issued by the EWDRIVER devices. This packet would most likely be discarded by the receiving adapter as oversized and the node the packet was being transmitted to may timeout waiting to receive it. o VCI (VAX Communication Interface) users are not able to determine if a port has become unuseable. This prevents them from switching to another adaptor. o After transmit timeout (soft error handling), processing of the alias addresses is not re-enabled in the SET_FILTERS routine. No packets would be received by that adapter. o DECnet IV starts but does not work, ie. no adjacency message results. o During error handling it is possible for the device to be started with the correct address but for the driver to think that a different address is in use. If that happens, the driver throws away receive packets and applications don't work unless they are transmit-only. This only happens if DECnet is being used on the system (or some other application that changes the address. -- COVER LETTER -- Page 8 4 May 1998 o This kit adds DE205 boot support for the following configurations: Ethernet/FDDI adapters on EISA bus or PCI bus with the following CPU types: ALPHAserver 800 5/xxx EV56 ALPHAserver 1000A 5/xxx EV56 Realtime PCI board EV56 o The printf family of functions incorrectly uses the same scratch buffers when running in AST and non-AST modes. This may cause incorrect results if the non-AST execution is interrupted by an AST routine which calls a function requiring the same buffers. o A DCL command, EXCHANGE/NETWORK with /transfer_mode=convert and file size greater than 255 blocks results in an ACCVIO o XQPERR Bugcheck: "Found a stale referenced or non directory FCB in FCB queue" o The machine will crash with an XQPERR bugcheck while trying to allocate space on a disk. The problem occurs on stand alone machines attempting explicit LBN or contiguous placement. o VERIFY hangs in an infinite loop during its scan of the directory structure. o Verify does not flag files which are directly back linked to themselves as having invalid backlinks. o Analyze/disk goes into an infinite loop. o The ATM driver loses too many receive packets causing a system crash. 8 PROBLEMS ADDRESSED IN ALPACRT04_071 KIT o The mmap function no longer fails if a file is opened with read access and the calling program has specified both the PROT_WRITE and MAP_PRIVATE flags. The correct behavior of using the MAP_PRIVATE flag is to disregard the access mode of the opened file. o The opendir function no longer fails if a file having the same name, but no extension, exists in the same directory as the directory being opened. Prior to this change, having an extensionless file in the same directory as the directory being opened would fail, even if the full name and extension was used in the opendir call. -- COVER LETTER -- Page 9 4 May 1998 o Changes made in OpenVMS V7.0 have affected the processing of files having "FORTRAN Carriage Control" record attributes. The following changes were introduced in OpenVMS V7.0 and are repaired in this ECO kit: o The DEC C RTL now prepends (instead of appends) linefeed characters to records with the single-space carriage control. This was the behavior prior to OpenVMS V7.0. Prefixing this type of record with linefeeds is what RMS requires and allows overprinting to work better than when the linefeed was appended. The only known problem with the new version is that the carriage-control character is not generated after the last file record. This problem will be fixed in the next release of CRTL." o A regression was introduced in the VAXACRT03_071 ECO kit such that calls to the stat function which use the "DNA=STRING" parameter access violate. Calls to fopen may also access violate when the fopen function calls stat to determine if the file exists. o A request was made that the sysconf function be enhanced to return information about the processors in a system. Specifically the _SC_NPROC_CONF (200) and _SC_NPROC_ONLN (201) options are now supported. Modifications to the UNISTD.H header file to define these constants will be made available in a future release of the DEC C compiler. It is recommended that application developers add the code #ifndef _SC_NPROC_CONF # define _SC_NPROC_CONF 200 # define _SC_NPROC_ONLN 201 #endif until these definitions are available. o A problem related to the size of an intermediate pipe buffer may lead to a write operation receiving a %SYSTEM-F-MBTOOSML. The size of the buffer has been corrected. o The access function would incorrectly examine the SYSTEM protection codes and use those codes in determining if access would be allowed. The access function required that all requested access modes be available in a single group of OpenVMS protection codes. The access modes may now be spread across protection code groups such as world, group, owner, and system. o A user reported that the sprintf function, when called using a simple "%s" format specifier performed worse in a threaded application than the equivalent call to strcpy. We have changed the processing of "%s" to perform in line with the strcpy function for this format specifier. -- COVER LETTER -- Page 10 4 May 1998 o Beginning in the ALPACRT03_071 and ALPY2K01_071 ECO kits, calling the getenv function for the "TERM" variable began returning the string "name-80" instead of correctly returning the terminal type such as "VT320-80". o Beginning in the ALPACRT03_071 remedial kit, the ioctl function defaults to using the software available as the UCX$IOCTL_ROUTINES example code. An error in the original code is that if an error were to occur, a system service status code (such as SS$_ACCVIO) would be returned as an errno value. This has been corrected to return either the corresponding errno value or EVMSERR with vaxc$errno being assigned this system service status code. 9 PROBLEMS ADDRESSED IN ALPACRT03_071 KIT 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 which match the condition specified. o 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 runtime 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. o The performance of DEC C sprintf was much slower than VAX C. An analysis of the printf engine resulted in changes which brings 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 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 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. -- COVER LETTER -- Page 11 4 May 1998 o Mailbox devices are record oriented devices, except when created by the pipe function where they are opened as stream devices. Applications which 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 runtime library has been corrected to treat UNIX directory specifications identically in each of the routines which accept a directory specification as a parameter. These runtime 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 which 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 runtime library functions. 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 -- COVER LETTER -- Page 12 4 May 1998 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. 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. 10 PROBLEMS ADDRESSED IN ALPACRT02_071 KIT 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 -- COVER LETTER -- Page 13 4 May 1998 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 which are opened in any sort of sharing mode are not. 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 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 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. -- COVER LETTER -- Page 14 4 May 1998 11 PROBLEMS ADDRESSED IN ALPACRT01_071 KIT 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. o Applications which call opendir and readdir recursively to traverse subdirectories may end up in an infinite loop when reading the directory which includes returning [000000]000000.DIR. The readdir function no longer returns an entry which 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 which 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 Runtime 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. -- COVER LETTER -- Page 15 4 May 1998 12 PROBLEMS ADDRESSED IN ALPF11X02_071 KIT o An XQPERR bugcheck occurs when trying to create a file. o Bad FID bugcheck 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 RWAST state indefinitely. o If a large file is created on a fragmented disk with quotas enabled and the user needs to use EXQUOTA privilege to allocate the necessary disk space, an internal XQP table can become corrupted leading to SECAUDERR, Fatal error attempting to perform a security audit bug-checks. 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) filename to the XQP for spooling to a symbiont would cause either an infinite CPU loop or a FILCNTNONZ, Open file count nonzero after process rundown bugcheck. 13 PROBLEMS ADDRESSED IN ALPF11X01_071 KIT 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 BFRD's are found on the first pass through MAKE_DIRINDX. The thread then stalls to allow some of the BFRD's to be freed, but doesn't 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. -- COVER LETTER -- Page 16 4 May 1998 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. 14 PROBLEMS ADDRESSED IN ALPLAN01_H1071 KIT o The Personal Workstation 433A with the 100 Mbit Medium Attachment Unit (MAU) and a 21143 chip will not operate in 100 Mbit mode. 15 PROBLEMS ADDRESSED IN ALPSYS01_071 KIT o Problem was isolated to a specific $UNWIND call not transferring control to the correct PC on OpenVMS Alpha V7.1. 16 PROBLEMS ADDRESSED IN ALPSYS02_071 KIT o Reducing the value of the PHYSICAL_MEMORY sysgen parameter on an Alphaserver 2100 with console version V4.7 or later may fail to boot. The failure is a boot crash just after the PFN database is initialized. 17 KIT INSTALLATION RATING: The following kit installation rating, based upon current CLD information, is provided to serve as a guide as to which customers should apply this remedial kit. (Reference attached Disclaimer of Warranty and Limitation of Liability Statement) INSTALLATION RATING: 1 : To be installed by all customers. -- COVER LETTER -- Page 17 4 May 1998 18 INSTALLATION INSTRUCTIONS: Install this kit with the VMSINSTAL utility by logging into the SYSTEM account, and typing the following at the DCL prompt: @SYS$UPDATE:VMSINSTAL ALPBASE02_071 [location of the saveset] The saveset location may be a tape drive, or a disk directory that contains the kit saveset. The images in this kit will not take effect until the system is rebooted. If you have other nodes in your VMS 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. Copyright (c) Digital Equipment Corporation, 1998 All Rights Reserved. Unpublished rights reserved under the copyright laws of the United States. The software contained on this media is proprietary to and embodies the confidential technology of Digital Equipment Corporation. Possession, use, or dissemination of the software and media is authorized only pursuant to a valid written license from Digital Equipment Corporation. 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 DIGITAL 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.