OpenVMS VMS721H1_RMS-V0300 Alpha V7.2-1H1 RMS ECO Summary
TITLE: OpenVMS VMS721H1_RMS-V0300 Alpha V7.2-1H1 RMS ECO Summary
New Kit Date : 12-MAR-2001
Modification Date: Not Applicable
Modification Type: Updated Kit Supersedes VMS721H1_RMS-V0200
NOTE: An OpenVMS saveset or PCSI installation file is stored
on the Internet in a self-expanding compressed file.
For OpenVMS savesets, the name of the compressed saveset
file will be kit_name.a-dcx_vaxexe for OpenVMS VAX or
kit_name.a-dcx_axpexe for OpenVMS Alpha. Once the OpenVMS
saveset is copied to your system, expand the compressed
saveset by typing RUN kitname.dcx_vaxexe or kitname.dcx_alpexe.
For PCSI files, once the PCSI file is copied to your system,
rename the PCSI file to kitname-dcx_axpexe.pcsi, then it can
be expanded by typing RUN kitname-dcx_axpexe.pcsi. The resultant
file will be the PCSI installation file which can be used to install
the ECO.
Copyright (c) Compaq Computer Corporation 2001. All rights reserved.
OP/SYS: OpenVMS Alpha
COMPONENT: RMS
SOURCE: Compaq Computer Corporation
ECO INFORMATION:
ECO Kit Name: VMS721H1_RMS-V0300
DEC-AXPVMS-VMS721H1_RMS-V0300--4.PCSI
ECO Kits Superseded by This ECO Kit: VMS721H1_RMS-V0200
ECO Kit Approximate Size: 3120 Blocks
Kit Applies To: OpenVMS Alpha V7.2-1H1
System/Cluster Reboot Necessary: Yes
Rolling Re-boot Supported: Yes
Installation Rating: INSTALL_1
1 - To be installed on all systems running
the listed version(s) of OpenVMS.
Kit Dependencies:
The following remedial kit(s) must be installed BEFORE
installation of this kit:
VMS721H1_UPDATE-V0300
VMS721H1_CLIUTL-V0100
In order to receive all the corrections listed in this
kit, the following remedial kits should also be installed:
None
ECO KIT SUMMARY:
An ECO kit exists for RMS on OpenVMS Alpha V7.2-1H1. This kit addresses
the following problems:
PROBLEMS ADDRESSED IN VMS721H1_RMS-V0300 KIT
o Fix to prevent a fatal INVEXCEPTN lock manager bugcheck when
global buffers are enabled.
This problem involves a race condition with the following rare
set of conditions occurring simultaneously:
o The last accessor of a global section cleaning up any
cached global bucket system locks on one node.
o A lock request on another node resulting in delivery of a
system fork lock blocking interrupt to the latter node
that attempts to convert a lock after it has been dequeued
by the last accessor.
Images Affected: [SYS$LDR]RMS.EXE
o Fix for invalid input parameter in call to SCH$QAST to prevent
a potential fatal INVEXCEPTN system bugcheck when global
buffers are enabled.
Images Affected: [SYS$LDR]RMS.EXE
o Fix for potential RMS lock hang when global buffers are
enabled.
This problem involves a rare condition if the last accessor of
the global section is interrupted by an abort rundown, which
may lead to the need for the cleanup of the global section not
being properly detected. This could result in the survival of
the global section and a global bucket system lock after the
last accessor is deleted.
Since this problem requires the accessor that is aborted to
also be the last accessor, it is more apt to occur with a file
that accessors come and go -- with a file that is opened and
closed frequently and may have only one accessor at a
particular time (e.g. RIGHTSLIST.DAT) -- versus a file with
global buffers enabled that typically has several concurrent
accessors at all times until there is an application (or
system) shutdown.
Images Affected: [SYS$LDR]RMS.EXE
o Fix to prevent a nonfatal RMS bugcheck (ENQDEQFAIL) when an
enqueue request fails with a CVTUNGRANT status.
The ENQDEQFAIL bugcheck may be reported when an RMS lock
manager request to rearm the blocking AST associated with a
directory cache fails with a CVTUNGRANT status.
The process may either:
1. Terminate (SYSGEN parameter BUGCHECKFATAL not enabled)
with an RMSBUG; or
2. Crash the system (BUGCHECKFATAL enabled) with a RMSBUG.
The footprint of the crash will reflect an R2 register
value of %XFFFFFFF4 (ENQDEQFAIL) with an R0 register value
of %X0000213c (SYSTEM-F-CVTUNGRANT).
Images Affected: [SYS$LDR]RMS.EXE
o Fix for SQO error on CONVERT/NOSORT with collated key.
Producing an indexed file with a collated key using the
qualifier /NOSORT with the CONVERT may fail with the following
error:
%CONV-F-READERR, error reading
-RMS-F-SQO, operation not sequential (SQO set)
Images Affected: [SYSEXE]CONVERT.EXE
[SYSLIB]CONVSHR.EXE
o RMS support for new qualifier /SHARE added to SET FILE, which
is dependent on the VMS721H1_CLIUTL-V0100 kit being installed.
The /SHARE qualifier allows you to enable or disable global
buffers or statistics on a file currently being accessed by
other users. Only new accessors of the file will acquire the
new settings. This qualifier requires SYSPRV (system
privilege).
The /SHARE qualifier is only valid with the following
qualifiers:
/[NO]GLOBAL_BUFFER=count/SHARE
/[NO]STATISTICS/SHARE
If other qualifiers are needed, they must be entered in a
separate SET FILE command.
/[NO]GLOBAL_BUFFER=count/SHARE
The /SHARE qualifier can be used to enable or disable global
buffers on a file currently being accessed. However, any new
global buffer settings will only be applied to new accessors
of the file. And if a file is already opened with global
buffers, any new number of global buffers will not take effect
until the file is closed by all accessors of the file.
/[NO]STATISTICS/SHARE
The /SHARE qualifier can be used to enable or disable
statistics on a file currently being accessed. However, only
statistics of new accessors of the file will be measured.
EXAMPLE:
$ SET FILE/SHARE/GLOBAL_BUFFER=5000/STATISTICS INVENTORY.IDX
This example sets 5000 global buffers on the INVENTORY.IDX
file and enables statistics. Without the /SHARE qualifier, if
the file was open when the SET FILE command was issued, the
following error would be returned: SYSTEM-W-ACCONFLICT (file
access conflict). The /SHARE qualifier allows the global
buffers and statistics to be enabled on an open file.
However, these settings only apply to new accessors of the
file.
Images Affected: [SYS$LDR]RMS.EXE
[SYSEXE]SET.EXE
[SYSLIB]DCLTABLES.EXE with modified SET.CLD
The latter two images require the installation of the
VMS721H1_CLIUTL-V0100 kit.
PROBLEMS ADDRESSED IN VMS721H1_RMS-V0200 KIT
o Autoextend problem with shared write sequential file if global
buffers enabled.
When an autoextend occurs with a shared write sequential file
with global buffers enabled, if both readers and writers are
concurrently processing data at the end-of-file, a window
exists for the readers when either an infinite process loop
may occur or an inappropriate RMS-E-EOF or RMS-F-IRC error may
be returned. The likelihood of either problem occurring
increases significantly if the deferred-write (DFW) option is
enabled or the sequential file does not have a generous
initial allocation or extend quantity.
Images Affected: [SYS$LDR]RMS.EXE
This fix is included in the next release after OpenVMS Alpha
V7.2-1H1.
o Fix for remote file transfer performance degradation if UPI
enabled.
As a side-effect of a DAP/FAL change made to the Alpha Version
7.2 family, the SQO (sequential only) option was
inappropriately disabled in a record stream when the UPI (user
provided interlock) option was enabled if RMS detected any
form of write sharing. This resulted in reducing the
performance of a remote file transfer that had the UPI option
enabled due to the overhead of sending the file
record-by-record rather than using the more efficient block
mode transfer supported by the SQO option.
Images Affected: [SYS$LDR]RMS.EXE
This fix is included in the next release after OpenVMS Alpha
V7.2-1H1.
Problems Addressed In VMS721H1_RMS-V0100:
o A LDQ (load quad) instruction generated by the Bliss-64 compiler
(default quadword alignment) may result in an attempt being made
to read or write 4 bytes beyond the end of an RMS internal buffer
which ends exactly on a page boundary with an adjacent inaccessible
page.
The process may either:
1. Terminate (SYSGEN parameter BUGCHECKFATAL not enabled)
with an access violation (ACCVIO); or
2. Crash the system (BUGCHECKFATAL enabled) with a SSRVEXCEPT
ACCVIO.
There are too many variables (for example, bucket size, number
of buffers, number of keys, record location) to predict in
advance that a file is vulnerable to this problem. However,
we do know that the right combination of conditions must be
rare since the problem has been dormant for several releases.
It was introduced with the conversion of several Bliss-32 RMS
modules to Bliss-64 as part of the support for 64-bit addresses
added to Alpha V7.0.
o An unusual timing condition may cause an application to get
incorrect data returned due to an interaction between caching
and read record access. Global buffers must be enabled on the
file, and there must be several processes trying to
concurrently access a data bucket that has to be brought into
the global cache (i.e., is not already in the global cache).
This was uncovered doing internal stress testing with an SMP
(8 CPU) system with caching enhancements for a future release.
It was reproduced with very heavy contention to a data bucket
with sequential read access being done. We have not been able
to reproduce the problem without the speed of the caching
enhancements. It is unknown whether this problem could occur
in V7.2-1H1, but it is best to apply this update as a precaution.
o The hashing interlock mechanism, which was implemented in
V7.2, has been redesigned to eliminate the timer-based
strategy that was used during periods of high contention. A
system could become overburdened by Timer Queue activity (IPL
8) when the contention for an interlock reached a threshold.
This Timer Queue activity precluded the interlock owner from
releasing the interlock and resulted in excessive Timer Queue
activity consuming the primary CPU.
Images Affected:
- [SYS$LDR]RMS.EXE
- [SYS$LDR]DDIF$RMS_EXTENSION.EXE
- [SYSLIB]SDARMS$SHARE.EXE
o Fix to prevent a process hang waiting on an RMS lock when
reverse (key-less-than) search criterion is used on a file
with global buffers enabled.
Access to an RMS indexed file may hang indefinitely waiting on
a lock request when the following three conditions are met:
- Global buffers are enabled.
- Key-Less-Than match criterion is being utilized.
- The key of reference is switched between two adjacent
lookups (e.g., key of reference is switched from key 0 to
key 1).
This problem is fixed in the release of OpenVMS Alpha to
follow V7.2-1H1.
o This is a fix to prevent a SSRVEXCPT bugcheck during process
rundown when an RMS AST is delivered to the process after the
process address space has already been released. In order for
this to occur, the process must have been utilizing global
buffers. This issue represents a very small timing window and
should be extremely rare.
o Accessing a file by secondary key that has Recovery Unit (RU)
journaling enabled in which a large number of deletes has
occurred may incur an inordinate amount of direct IO activity.
This is due to RMS having to process the RU deleted entries in
the secondary key structure. This is not an issue when access
to the file is by the primary key.
This change is a performance enhancement in which RMS will now
perform cleanup of the RU deleted Secondary Index Data Record
entries when they are initially encountered through a read
operation. This will reduce the IO required to process these
entries for all future accesses. Access by the primary key of
the file already performs this optimization.
o CONVERT/SHARE previously read the input primary data records
(record I/O) with the RAB$V_RRL (read regardless) option
enabled. As a performance enhancement, RAB$V_RRL was replaced
with the new RAB$V_NQL (no query locking) record option if
/SHARE is used. This results in no record locking being done
for all the reads of the primary data records from the input
file.
o The new Alpha global buffer read-mode lock support introduced
in V7.2-1H1 is functionally compatible with both VAX and older
Alpha releases. Operations in mixed clusters produce correct
results. However, there is a locking fairness issue that may
arise with mixed cluster operations (e.g., an Alpha V7.1-2 or
V7.2-1 version or VAX versions).
In a mixed cluster environment with very high contention for
specific buckets, it is possible for accesses to write-shared
files on nodes using read-mode bucket locking to dominate
access to a bucket. Nodes without this support might be
unable to access the bucket for a protracted period of time.
While V7.2-1H1R does include the new global buffer read-mode
lock support and so will not be affected by the latter issue,
it is also possible to observe comparable behavior on all
OpenVMS versions when dealing with accesses to write-shared
files without global buffers enabled -- even on a standalone
system. A similar fairness issue between lock conversions and
new lock requests may be observed in which the new lock
requests may remain ungranted for an extended period of time.
This kit includes support in RMS for a new option to improve
fairness under high contention conditions for write-shared
files, but selecting this option may noticeably increase
locking overhead. The option may be set at a process or
system level. Since many applications will never encounter
this issue, the default system behavior leaves this option
disabled. A future lock management enhancement should make
this fairness workaround unnecessary for later releases.
The option is controlled using the /CONTENTION_POLICY qualifier
to the DCL command SET RMS_DEFAULT. The following are valid
PROCESS keywords (/SYSTEM not specified):
NEVER Never use the higher overhead option
to improve fairness for any write-shared
files accessed by this process; minimal
overhead.
SOMETIMES Use this option for fairer bucket
access (but higher overhead) to any
write-shared files with global buffers
enabled that are accessed by this
process.
ALWAYS Use this option for fairer bucket
access (but higher overhead) to all
write-shared files accessed by this
process.
SYSTEM_DEFAULT (Default) Use system setting. Note
that this keyword is disallowed with
/SYSTEM.
The following are valid SYSTEM keywords (/SYSTEM specified):
NEVER (Default) Never use the higher
overhead option to improve fairness
for any write-shared files accessed
on the system; minimal overhead.
SOMETIMES Use this option for fairer bucket
access (but higher overhead) to any
write-shared files with global
buffers enabled that are accessed
on the system.
ALWAYS Use this option for fairer bucket
access (but higher overhead) to all
write-shared files accessed on the
system.
In addition to the RMS image, modifications to the following
images contained in the VMS721H1_UPDATE-V0300 kit (a prerequisite
to installing this kit) are required in order for this
functionality to take affect:
- [SYSEXE]SET.EXE
- [SYSMSG]CLIUTLMSG.EXE
- replacement of revised SET.CLD in [SYSLIB]DCLTABLES.EXE
Without these modified images, RMS will use NEVER as the
default for the CONTENTION_POLICY option.
INSTALLATION NOTES:
This kit requires a system reboot. Compaq strongly recommends that
a reboot is performed immediately after kit installation to avoid
system instability
If you have other nodes in your OpenVMS 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.
INSTALLATION INSTRUCTIONS:
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 VMS721H1_RMS /SOURCE=[location of Kit]
The kit location may be a tape drive, CD, or a disk directory that
contains the kit.
Additional help on installing PCSI kits can be found by typing
HELP PRODUCT INSTALL at the system prompt
All trademarks are the property of their respective owners.
This patch can be found at any of these sites:
Colorado Site
Georgia Site
Files on this server are as follows:
dec-axpvms-vms721h1_rms-v0300--4.README
dec-axpvms-vms721h1_rms-v0300--4.CHKSUM
dec-axpvms-vms721h1_rms-v0300--4.pcsi-dcx_axpexe
vms721h1_rms-v0300.CVRLET_TXT
|