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) Digital Equipment Corporation 1997. All rights reserved.
OP/SYS: OpenVMS Alpha
COMPONENT: RMS.EXE - Record Management Services
CONVERT.EXE
CONVSHR.EXE
RECLAIM.EXE
RECOVER.EXE
RMSREC$SERVER.EXE
SOURCE: Digital Equipment Corporation
ECO INFORMATION:
ECO Kit Name: ALPRMS02_070
ECO Kits Superseded by This ECO Kit: ALPRMS01_070
ECO Kit Approximate Size: 2938 Blocks
Saveset A - 2898 Blocks
Kit Applies To: OpenVMS Alpha V7.0
System/Cluster Reboot Necessary: Yes
Installation Rating: 1 - To be installed on all systems running
the listed version(s) of OpenVMS.
NOTE: In order to receive the full fixes listed in this kit,
the following remedial kits also need to be installed:
None
ECO KIT SUMMARY:
An ECO kit exists for RMS and CONVERT on OpenVMS Alpha V7.0 This
kit addresses the following problems:
PROBLEMS ADDRESSED IN ALPRMS02_070 KIT:
o Fix for NULL KEY option for PACKED DECIMAL key type.
This problem is restricted to an indexed file that has a
secondary key type of PACKED DECIMAL and the NULL KEY option
set. In performing adds or updates to the indexed file, the
application may ACCVIO. The process may either:
o Terminate (SYSGEN parameter BUGCHECKFATAL not enabled) with
an access violation (ACCVIO); or
o Crash the system (BUGCHECKFATAL enabled) with a SSRVEXCEPT
(unexpected system service exception) ACCVIO error.
NOTE: Until this remedial kit can be installed, this problem
can be prevented from reoccurring by converting the file with a
revised FDL in which the null key option for the packed decimal
secondary key has been changed to "no."
o Fix for explicit $extend to a relative file.
The last data record(s) added at the end of a relative file may
be lost (overwritten) after an "explicit" call to the RMS
$EXTEND service for a relative file that is being shared by two
or more concurrent writers. This problem is restricted to an
explicit $EXTEND; autoextends done transparently by RMS for a
relative file work correctly.
NOTE: Until this remedial kit can be installed, this problem
can be prevented by not doing any explicit $EXTEND for a shared
write relative file. Let the autoextend feature of RMS take
care of any extends needed. See "Relative File Extend Size"
section in chapter 3 (Performance Considerations) of the Guide
to OpenVMS File Applications for a description of how RMS
derives the value it uses for its autoextend feature.
o Fix for exec-mode access violation (ACCVIO) that results from
issuing an RFA access using a VBN that exceeds the highest
block (out-of-range) currently allocated to a file.
The ACCVIO will only occur if the out-of-range RFA access is
done to a file that is both an indexed file and has global
buffers enabled. If the SYSGEN parameter BUGCHECKFATAL is not
enabled, then the process will be terminated; if it is enabled,
then the system will crash with a SSRVEXCEPT ACCVIO.
Note: RFA access is a rare access mode for an application to
use with an indexed file; an out-of-range RFA access to an
indexed file should be even rarer.
o Fix for appender lock timing window hang for shared write, RU
journaled sequential file.
This hang requires all of the following conditions: a shared
write sequential file, multi record streaming enabled, RU
journaling enabled on the file, and heavy write contention
among sharers at the end-of-file. It has only been reported by
one site, and even then there was a lapse of over one year
between two occurrences.
o Fix for inconsistent secondary key in RU-journaled indexed
file.
It is possible for an indexed file with more than one secondary
key allowing no duplicates to show an inconsistent total number
of data records as being accessible via two or more of the
secondary keys. In order for this problem to occur, the file
must have RU journaling enabled; as part of an RU transaction,
a secondary data record must be deleted in one of the
nonduplicate secondary keys (will be marked RU-DELETED) and
then an attempt must be made to add a duplicate key value to
another nonduplicate secondary key as part of a $PUT operation,
which results in a duplicate (DUP) error.
As part of the recovery triggered by the DUP error, the
secondary key value marked as RU-DELETED will not be recovered.
This will leave the file with an inconsistent secondary key.
However, the primary key contents will be intact and correct,
and a convert of the file will rebuild the secondary indexes
and leave the file in a consistent state.
o XABITM stored semantics attribute fix for SMFS (Sequential
Media File System) device.
Stored semantics is a file attribute used to indicate that a
file contains compound documents (i.e., contains a number of
integrated components including text, graphics, and scanned
images). Support for setting this file attribute is provided
through RMS using an item list XAB (XABITM) user interface.
In specifying the item list for setting this attribute
(XAB$_STORED_SEMANTICS), a user may request a return length
(the length of the stored semantics ACE added by the file
system to the file). RMS without the fix returns a length of
zero if the file is on a SMFS device despite the fact that the
stored semantics attribute was successfully added to the file.
o %CONV-F-READERR converting undefined file format to fixed.
Converting a sequential file with an UNDEFINED record format to
a FIXED record format aborts with following errors:
%CONV-F-READERR, error reading
-RMS-F-UBF, invalid user buffer
o Fix for EXCHANGE/NETWORK user-mode access violation (ACCVIO).
This problem only occurs when the convert transfer_mode
(/TRANSFER_MODE=CONVERT) option is used with a file that
exceeds 255 blocks in size.
PROBLEMS ADDRESSED IN ALPRMS01_070 KIT:
o Make last chance handler more robust when process that has file
opened with global buffers enabled is terminated with STOP/ID.
STOP/ID invokes the RMS abort last chance handler
(RM$LAST_CHANCE). Problems addressed include:
o A potential deadlock in the RMS last-chance handler if the
same file is open more than once within a process or
subprocess and it has global buffers set on it.
o A potential fatal KRNLSTAKNV system crash due to nonfatal
RMS bugchecks from failing $GETLKI calls which cause error
rundown recursion until the stack fills up.
These problems are fixed in the OpenVMS Alpha V7.1.
o Fix to exclude block I/O access from XAB area maximum check on
the open of an indexed file.
This problem is fixed in OpenVMS Alpha V7.1.
o Fix for compressed primary key problem that occurs in the
context of record deletes being done using sequential access
rather than keyed access.
Sequentially walking through (getting) the primary data records
in an indexed file (primary key is a string key with key
compression enabled), a delete is done of one of the records.
The following error may be returned when an attempt is made to
sequentially get the next record: RMS-F-BUG, fatal RMS
condition, process deleted.
The file is not left corrupted. A convert of the file will
leave the file in a consistent state.
This problem is fixed in OpenVMS Alpha V7.1.
o Fix for crash with kernel-mode caller.
A kernel-mode caller may crash with KRNLSTAKNV (kernel stack
not valid). A page in the kernel stack has the 'fault on
write' bit set.
This problem is fixed in OpenVMS Alpha V7.1.
o Fix for RMS bugcheck NOTLOCKED (R2=FFFFFFEF) on shared
sequential file.
Process is delivered blocking AST to release file lock. Before
releasing file lock, it has to release lock it holds on EOF
buffer. NOTLOCKED bugcheck is returned if process is holding
PW (protected write) rather than EX (exclusive) lock on EOF
buffer. The check should have been for either EX or PW lock
(oversight in new routine added in OpenVMS Alpha V6.1).
This problem is fixed in OpenVMS Alpha V7.1.
o Fix for loop when deleting network logical links. Loop occurs
at exec-mode AST level and process cannot be deleted. Process
in loop will be an application that does network operations.
RMS maintains a process cache of recent logical links for a
period of time in an attempt to reuse them and save on image
and process activations. When a link becomes inactive and is
added to the cache, RMS deletes any links in surplus of three.
In walking the link cache queue to delete these links, there is
a potential race condition that could result in a stale pointer
being used after a stall, which leads to the loop.
This problem is fixed in OpenVMS Alpha V7.1.
o Autoextend fix for shared block I/O write which requires use of
UPI option -- which disables any locking (file or EOF bucket).
For this particular case with no locking synchronization, it is
possible if two or more processes or two or more asynchronous
streams are writing to a file, that two or more autoextends may
occur concurrently. Though the file system will do the extends
synchronously, the processing of the extend result may complete
out of sequence and result in RMS bugcheck FTL$_BADEBKHBK
(R2=FFFFFFDC).
This problem is fixed in OpenVMS Alpha V7.1.
o Improved error reporting on ASB allocation failure. If there
is a user context to return the error to, RMS$_DME will now be
returned instead of RMS$_BUSY.
When RMS allocates an Asynchronous Status Block (ASB) for an
RMS thread from process-permanent pages (PIOPAGES), and the
allocation attempt fails due to lack of memory, the error is
not properly handled: in some cases the error is ignored,
leading to subsequent hangs and inconsistencies, or else the
true cause of the error is obscured by overlapping bugchecks.
These allocation failures are most likely to be encountered
with RMS journaling applications, and can be avoided by
increasing the PIOPAGES SYSGEN parameter.
This problem is fixed in OpenVMS Alpha V7.1.
o Fix for an indexed file with a fixed maximum record size less
than 4 bytes. A data record header (internal structure RMS
maintains in the on-disk indexed data bucket) may become
corrupted when it is moved down in a data bucket to make room
for a new record.
This problem is fixed in OpenVMS Alpha V7.1.
o Fix for SS$_ILLIOFUNC on some drivers. This can happen, for
example, if SYS$SCRATCH is defined to point to an MSCP-served
disk and MAIL attempts to print a mail message to an RMS
temporary file.
This problem is fixed in OpenVMS Alpha V7.1.
o Fix for SDA-W-FAOERR when displaying RMS FWA (File Work Area).
The contents of a buffer (LOGNAM) are being displayed after the
space have been returned and reallocated for some other use.
This problem is fixed in OpenVMS Alpha V7.1.
o Statistics setting on a file is lost from the FDL produced by
ANALYZE/RMS/FDL. File monitoring is always set to 'no' whether
it is enabled or not. The problem is not with ANALYZE[/RMS],
but with RMS's processing of an XABITM list.
This problem is fixed in OpenVMS Alpha V7.1.
o Fix to avoid LIB-F-BADBLOADR (bad block address) errors
returned to CONVERT utility from SORT utility.
The new high-performance SORT/MERGE utility (HYPERSORT) was
introduced in Alpha V7.0. Currently HYPERSORT does not support
indexed file organizations. To avoid a number of convert
failures that would occur if a process or system had redefined
SORTSHR to point to HYPERSORT, CONVERT, as of Alpha V7.0, links
to the SORT/MERGE object library.
A linkage modification to the SORT/MERGE utility changed the
order in which some PSECTs are collected in Alpha V7.0. The
effect of this is that some sort cleanup routines may not be
called and some exit handlers not canceled, which results in
some rundown problems for images (like CONVERT) that call
SORT/MERGE routines.
The following errors may be reported at the end of a convert,
after the convert has successfully completed and the new output
file has been closed:
%SORT-E-SYSERROR, system service error
-LIB-F-BADBLOADR, bad block address
In addition to the LIB-F-BADLOADR error (or errors), there may
be an access violation reported:
%SYSTEM-F-ACCVIO, access violation, reason mask=00,...
Another side-effect of this SORT/MERGE utility problem for a
convert of an indexed file that is sufficiently large enough to
require temporary workfiles for the sort is that several
temporary sortwork files in SYS$SCRATCH will survive (not be
deleted by sort). The default names of these files are:
SORTWORK0.TMP and SORTWORK1.TMP.
This problem is fixed in OpenVMS Alpha V7.1.
o Non-indexed file opened with an indexed file XAB may ACCVIO.
If a non-indexed file (sequential or relative) is opened with
one or more XABs specific to indexed files (XABKEY, XABSUM, or
XABALL) chained to the FAB, the process may either:
o Terminate (SYSGEN parameter BUGCHECKFATAL not enabled) with
an access violation (ACCVIO); or
o Crash the system (BUGCHECKFATAL enabled) with a SSRVEXCEPT
ACCVIO.
A necessary condition for this to occur is that the virtual
address space used for the program region (P0) must be more
than half a gigabyte. In other words, it requires both a very
large application and one that has indexed XABs chained to the
FAB for a non-indexed file. We are aware of only one
application that this problem has occurred with to date:
ALL-IN-1.
This problem is fixed in OpenVMS Alpha V7.1.
o A put to an indexed file may ACCVIO. The process may either:
o Terminate (SYSGEN parameter BUGCHECKFATAL not enabled) with
an access violation (ACCVIO); or
o Crash the system (BUGCHECKFATAL enabled) with a SSRVEXCEPT
ACCVIO.
Some Bliss-32 modules were converted to Bliss-64 as part of the
64-bit project for OpenVMS Alpha V7.0. A LDQ (load quad) or
MOVQ (move quad) instruction generated by the Bliss-64 compiler
may result in an attempt being made to read or write 4 bytes
beyond the end of an RMS internal buffer to an inaccessible
page.
This problem is fixed in OpenVMS Alpha V7.1.
INSTALLATION NOTES:
In order for the corrections in this kit to take effect, the system must
be rebooted. If the system is a member of a VMScluster, the entire
cluster should be rebooted.