OpenVMS ALPPTHR02_071 DECThreads V7.1 ECO Summary
TITLE: OpenVMS ALPPTHR02_071 DECThreads V7.1 ECO Summary
Modification Date: 19-AUG-1999
Modification Type: Note added regarding differences between
ALPPTHR0n_071 and ALPTHREADS_0n071 remedial
kit streams.
NOTE: An OpenVMS saveset or PCSI installation file is stored
on the Internet in a self-expanding compressed file.
The name of the compressed file will be kit_name-dcx_vaxexe
for OpenVMS VAX or kit_name-dcx_axpexe for OpenVMS Alpha.
Once the file is copied to your system, it can be expanded
by typing RUN compressed_file. The resultant file will
be the OpenVMS saveset or PCSI installation file which
can be used to install the ECO.
Copyright (c) Compaq Computer Corporation 1998. All rights reserved.
OP/SYS: DIGITAL OpenVMS Alpha
COMPONENTS: DECThreads
PTHREAD$RTL.EXE
PTHREAD$DBGSHR.EXE
CMA$RTL.EXE
CMA$OPEN_RTL.EXE
SOURCE: Compaq Computer Corporation
ECO INFORMATION:
ECO Kit Name: ALPPTHR02_071
ECO Kits Superseded by This ECO Kit: ALPPTHR01_071
ECO Kit Approximate Size: 1566 Blocks
Kit Applies To: OpenVMS Alpha V7.1 - V7.1-1H2
System/Cluster Reboot Necessary: No
Rolling Re-boot Supported: Not Applicable
Installation Rating: 3 - To be installed on all systems running
the listed versions of OpenVMS which
are experiencing the problems described.
Kit Dependencies:
The following remedial kit(s) must be installed BEFORE
installation of this kit:
None
In order to receive all the corrections listed in this
kit, the following remedial kits should also be installed:
None
Differences between ALPPTHR0n_071 and ALPTHREADS_0n071 remedial
kit streams:
ALPPTHR0n_071 - These kits contain remedial fixes to images
shipped with V7.1 only with no new support
and no image identifications incremented.
Images linked against systems with these kits
installed should activate on other V7.1 or
later versions of OpenVMS Alpha.
ALPTHREADS_0n071 - These kits are intended for users who wish
to run Java and they contain new support for
Java. Because of new interdepencies between
two of the images contained in these kits, the
minor image identifications were incremented.
As a result, images linked against Threads
images on systems where these kits have been
installed will require that some flavor of
ALPTHREADS be installed in order to activate
on a V7.1 system. This restriction does not
allow the ALPTHREADS remedial kit to supersede
the ALPPTHR kit.
Installation order for the ALPPTHR and ALPTHREADS remedial kits:
The ALPPTHR kits *cannot* be applied once any ALPTHREADS kit
has been installed on the system. The two kits are incompatible.
Because the ALPTHREADS kits replace all of the threads images (instead
of just a few), the *latest* ALPTHREADS kit can be installed on a
system that has previously installed an ALPPTHR kit. All fixes in
the latest ALPPTHR kit are also contained in the latest ALPTHREADS kit,
so there will be no image regression.
ECO KIT SUMMARY:
An ECO kit exists for DECThreads on OpenVMS Alpha V7.1 through V7.1-1H2.
This kit addresses the following problems:
Problems Addressed in ALPPTHR02_071:
o Three fixes to the DECthreads library were made:
1. When upcalls are not enabled, the stack sizes used by the
NULL and Manager threads were increased to at least as
large as in the pre-V7.0 OpenVMS releases. The larger
stacks allow ASTs within legacy applications, on OpenVMS
V7.1, to execute in the same relative amount of stack
space as pre-V7.0 releases.
2. Set the state of the default thread to THD_STATE_TERMINATED
before unblocking the exit-handling thread. Also, enable the
rescheduling of the terminated default thread to handle any
user ASTs received during exit-handling.
3. Flattening of scheduling policies to:
- SCHED_LRR_NP is the same as SCHED_RR
- SCHED_BG_NP is the same as SCHED_FG_NP
- SCHED_LFI_NP is the same as SCHED_FIFO
Problems Addressed in ALPPTHR01_071:
o Three DECthreads fixes were done:
1. A deadlock can occur if:
- while the initial thread is blocking as a result of a
system service call or other kernel blocking activity
(such as a page fault), an AST becomes pending and can
be delivered to the process
- during that AST's execution the thread makes a blocking
system service call or incurs some other kernel block
- the two blocking events are resolved in the order in
which they originally occurred
For this deadlock, no further unblocks or AST delivery will
occur and all or part of the application will hang.
The SDA command, "pthread show -u", will show one or more
threads blocked in upcalls, including thread #1. The
"pthread mutex -faql" will also show thread #-1 waiting for
a mutex, which is related to upcall blocking.
2. The $SETAST upcall could possibly be interrupted by an AST
request upcall, which results in the delivery of an
application AST. ASTs would be disabled "twice" if:
- application AST were to disable ASTs and leave them
disabled upon returning
- the main-line call to $SETAST were also disabling ASTs
- the AST request upcall were to arrive in the proper
window in the code
The DECthreads count of threads would be left with ASTs
disabled artificially high. The result would be ASTs being
permanently disabled, as the count could never be reduced
to zero (except possibly by another lucky race like the one
that raised it).
The SDA command, "pthread show -u" will indicate that ASTs
are disabled and will display a non-zero disable count,
while "pthread thread -fa" will show that all threads have
ASTs enabled.
3. A memory leak fix is included, which has been corrected on
VAX but hasn't been observed yet on Alpha.
INSTALLATION NOTES:
The system does not need to be rebooted after this kit is installed.
However, if the system is a member of a VMScluster, the other cluster
members should be rebooted or this kit should be installed on each
system in order to make use of the new images.
This patch can be found at any of these sites:
Colorado Site
Georgia Site
Files on this server are as follows:
alppthr02_071.README
alppthr02_071.CHKSUM
alppthr02_071.CVRLET_TXT
alppthr02_071.a-dcx_axpexe
alppthr02_071.CVRLET_TXT
|