Kit Name: ALPTHREADS_05071 Kits superseded by this kit: ALPTHREADS_04071 Kit Dependencies: The following remedial kit(s) must be installed BEFORE installation of this, or any required kit: None. In order to receive all the corrections listed in this kit, the following remedial kits should also be installed: ALPBASE02_071 (if upcalls are enabled), ALPDCL02_071 or later (if upcalls & multiple kernel threads are enabled) ALPSYSA02_071 or later (if upcalls are enabled) Kit Description: Version(s) of OpenVMS to which this kit may be applied: OpenVMS Alpha V7.1, V7.1-1H1, V7.1-1H2 Files patched or replaced: o CMA$LIB_SHR.EXE (new image) o CMA$OPEN_LIB_SHR.EXE (new image) o CMA$OPEN_RTL.EXE (new image) o CMA$RTL.EXE (new image) o CMA$TIS_SHR.EXE (new image) o PTHREAD$DBGSHR.EXE (new image) o PTHREAD$RTL.EXE (new image) o CMA$TIS.OBJ (new file) o CMA.H (new file) o CMA_CONFIG.H (new file) Page 2 o CMA_LIBRARY.H (new file) o CMA_TIS.H (new file) o EXC_HANDLING.H (new file) o PTHREAD.H (new file) o PTHREAD_D4.H (new file) o PTHREAD_DEBUG.H (new file) o PTHREAD_EXC.H (new file) o PTHREAD_EXCEPTION.H (new file) o PTHREAD_TRACE.H (new file) o TIS.H (new file) Problems addressed in ALPTHREADS_05071 kit o The ALPTHREADS_04071 kit contained a race condition when upcalls were disabled which could result in a hang with the manager thread ready to run, but not running. Instead, the null thread is running. This problem was primarily seen with Ada programs that used certain TEXT_IO functions, and has been corrected. o The DECthreads library was modified to correct a race condition that could result in reduced performance or application hangs. The problem occurred when threads in the READY state would fail to run, due to a missed wakeup on a quiescent VP. o When a thread calls pthread_exit() the entire process is incorrectly terminated by a %CMA-F-EXIT_THREAD error instead of simply terminating the calling thread. o Pagefault completions accumulate (as observed via the "pthread show -u" command to SDA), with the corresponding waiting threads having been apparently unblocked without consuming (i.e., freeing) the completions. Also,threads are sometimes found waiting indefinitely for completions (although this effect was never successfully reproduced in-house), while other, mismatched completions remain pending. o Reduced performance or all process threads hang. o The PTHREAD$RTL.EXE image produces an UNALIGNRELO warning upon linking of the image. Page 3 Problems addressed in ALPTHREADS_04071 kit o his kit updates the DECthreads environment for OpenVMS Alpha V7.1[-1Hn] with new support required to run the Java JDK kit. This support encompasses major structural changes to DECthreads, including fixes for performance issues. o Because of new interdependencies between the PTHREAD$RTL and CMA$TIS_SHR images, the minor idents for both images have been bumped for this kit. As a result, applications built against the updated images will NOT run correctly on OpenVMS V7.1 systems unless this kit has been installed. For this reason, Compaq recommends that applications intended for use on standard V7.1 systems NOT be built on systems where this kit has been installed. o Previous ALPTHREADS_0n071 kits contained a regression where an incorrect exit status value would be returned by the process or image exit if any thread explicitly invoked the $EXIT system service (or the C RTL exit() function) or if the initial thread terminated by returning an error status value from the program's "main" function. One effect of this regression is that the DEC Ada Compilation System (ACS) would always return SS$_NORMAL, egardless of whether errors were encountered in the compilation or linking. The regression has been corrected in this kit. o In previous ALPTHREADS_0n071 kits, the DECthreads bugcheck code was changed to no longer create the text file PTHREAD_DUMP.LOG, but instead generate a process dump. Owing to difficulties analyzing threaded process dumps on some OpenVMS V7.1 systems, the PTHREAD_DUMP.LOG file has been reinstated for this kit. o Application of this update kit exposes a latent race condition in MMOV V2.0. When the MMOV IVP is run, MMOV$ALPHAVCR will fall into an infinite loop and never complete. Users of MMOV should therefore NOT install this update kit. Kit Installation Rating: The following kit installation rating, based upon current CLD information, is provided to serve as a guide to which customers should apply this remedial kit. (Reference attached Disclaimer of Warranty and Limitation of Liability Statement) INSTALLATION RATING: 3 : To be installed by customers experiencing the problems corrected. Note that users of MMOV should NOT install this kit. See Problem Descriptions for more information. Page 4 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 ALPTHREADS_05071 [location of the saveset] The saveset location may be a tape drive, CD, or a disk directory that contains the kit saveset. The images provided in this kit will not fully take effect until the system is rebooted. Compaq strongly recommends that you reboot your system immediately after installation of this kit. Until a reboot is performed, the threads environment will be left in an inconsistant state and threaded applications will fail with the following message: %DCL-W-ACTIMAGE, error activating image CMA$TIS_SHR -CLI-E-IMGNAME, image file DKA0:[SYS0.SYSCOMMON.][SYSLIB]CMA$TIS_SHR.EXE -SYSTEM-F-SHRIDMISMAT, ident mismatch with shareable image Other cluster nodes that share the same system disk will also need to be rebooted soon after installing this kit. Until they are, the threads environments on those nodes will be in an inconsistent state and threaded applications may fail. Although a rolling reboot is allowed, other nodes should be rebooted shortly after installing this kit. Copyright (c) Compaq Computer Corporation, 1999 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 Compaq Computer Corporation. Possession, use, or dissemination of the software and media is authorized only pursuant to a valid written license from Compaq Computer 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 COMPAQ BE LIABLE FOR ANY LOST REVENUE OR PROFIT, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, WITH RESPECT TO ANY PATCH MADE AVAILABLE HERE OR TO THE USE OF SUCH PATCH.