OpenVMS VMS731_RMS-V0100 Alpha V7.3-1 RMS ECO Summary
TITLE: OpenVMS VMS731_RMS-V0100 Alpha V7.3-1 RMS ECO Summary
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.pcsi-dcx_axpexe or
kitname.pcsi-dcx_vaxexe, then it can be expanded by typing
RUN kitname.pcsi-dcx_axpexe or kitname.pcsi-dcx_vaxexe. The
resultant file will be the PCSI installation file which can be
used to install the ECO.
New Kit Date: 18-SEP-2002
Modification Date: Not Applicable
Modification Type: NEW KIT
Copyright (c) Compaq Computer Corporation 2001,2002. All rights reserved.
OP/SYS: OpenVMS Alpha
SOURCE: Compaq Computer Corporation
ECO Kit Name: VMS731_RMS-V0100
ECO Kits Superseded by This ECO Kit: None
ECO Kit Approximate Size: 2592 Blocks
Kit Applies To: OpenVMS Alpha V7.3-1
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.
The following remedial kit(s) must be installed BEFORE
installation of this kit:
In order to receive all the corrections listed in this
kit, the following remedial kits should also be installed:
ECO KIT SUMMARY:
An ECO kit exists for RMS on OpenVMS Alpha V7.3-1. This kit addresses the
PROBLEMS ADDRESSED IN VMS731_RMS-V0100 KIT
o RMS fix for a user buffer size exceeding the terminal driver
limit (in particular if the SYSGEN parameter MAXBUF is greater
than 32K and the session is a Telnet session).
The specific error returned by a terminal driver to RMS is
SS$_IVBUFLEN; RMS returns to the caller RMS-F-QIO in the
RAB$L_STS and the system error (SYS-F-IVBUFLEN) in the
RAB$L_STV. However, if this error is returned to a C runtime
library call for a read I/O to a terminal, it is more likely
the symptom visible to users will be a C program failing with
a a generic C IO error.
An RMS change was implemented in Alpha V7.3-1 that may result
in a larger I/O transfer size being used for "reads" from unit
record devices (mainly terminals) than the previous smaller
default RMS intermediate buffer size. The larger size is
based on the size of the user's record buffer specified in the
RAB (RAB$W_USZ or RAB64$Q_USZ) for the read.
Under certain conditions, the larger size can result in a
limit imposed by at least one driver (TTDRIVER) being
exceeded. Drivers are free to set a limit arbitrarily; in
this case the limit imposed is 32767. When the limit is
exceeded, an SS$_IVBUFLEN fatal error is returned by the
One example of the combination of conditions that can trigger
this problem is as follows:
- System is accessed via Telnet (TNDRIVER) or SET HOST/LAT.
This results in the particular TT driver with this limit
being used for the terminal I/O. A regular SET HOST uses
another terminal driver and does not encounter the limit
- The read request to this particular TT driver is made
through RMS with the user buffer size specified in the RAB
(RAB$W_USZ or RAB64$Q_USZ) being greater than 32767.
While this could be done from any application issuing
calls to RMS, there is a high probability that a C
application with a C runtime library call to read data
from a terminal (e.g. getc, gets) may be involved if the
SYSGEN parameter MAXBUF on the impacted system is set to
greater than 32K.
The C runtime library uses a heuristic involving the
SYSGEN parameter MAXBUF value (MAXBUF less 512 bytes) to
set the buffer size in the RAB passed to RMS. This
parameter ships with a default of 8192 (with a maximum of
64000). However, some systems increase this parameter to
the maximum for tuning purposes. This results in the C
runtime library heuristic setting a user buffer size
greater than 32K. There is nothing substantively wrong
with the C runtime library or any application specifying a
user buffer size greater than 32K.
For this particular example, a proactive measure or an
immediate workaround to the problem is to set the MAXBUF
SYSGEN parameter down to 32K. This is a dynamic parameter so
no reboot is required. We are not aware of any applications
that would break by setting MAXBUF down to 32K. Once this
remedial kit is applied, the SYSGEN parameter MAXBUF can be
reset above 32K.
o RMS fix for an incorrect record returned for a reverse key
search on a secondary key using a partial key (just some
As a side-effect of calling a sequence of common lower-level
routines to unpack a compressed key or segmented primary key,
the potential exists that an RMS internal scratch key buffer
may be overwritten. This results in the target secondary key
value being replaced with the primary key associated with the
primary record being unpacked. The full set of conditions
necessary for this to occur are rare.
While no user data is compromised by the overwriting, if the
copy of the target secondary key value gets replaced, the
search from thereon uses this particular primary key value
rather than the target secondary key value as its criterion
for the secondary key search. In such a case if the forward
search for a match reaches the end-of-the-key without finding
either an exact match or a "mismatch" (a record with a higher
key value), it will return the last record at the end of that
secondary key as the match.
This kit requires a system reboot. Compaq strongly recommends that
a reboot is performed immediately after kit installation to avoid
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.
Install this kit with the POLYCENTER Software installation utility
by logging into the SYSTEM account, and typing the following at the
PRODUCT INSTALL VMS731_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.
Files on this server are as follows: