DECdns DECDNSECO02070 Digital Distributed Name Service V2.1 ECO Summary
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 1996, 1997. All rights reserved.
PRODUCT: Digital Distributed Name Service (DECdns)
OP/SYS: OpenVMS VAX
SOURCE: Digital Equipment Corporation
ECO INFORMATION:
ECO Kit Name: DECDNSECO02070
NOTE: This DECDNSECO02070 ECO kit is to be distributed worldwide
as an independent DNS ECO. It supersedes all previous DNS
versions, including those bundled with DECnet or provided
through other distribution channels.
ECO Kits Superseded by This ECO Kit: DECDNSECO02065
DNVOSI_ECO03057
DECDNSECO01034
DECDNSECO01040
DECDNSECO01049
DECDNSECO01056
DECDNSECO01060
DECDNSECO01062
DECDNSECO01065
ECO Kit Approximate Size: Saveset A - 4851 Blocks
Cover Letter - 14 Blocks
Total of 2 files - 4865 Blocks
Kit Applies To: DECdns V2.1
OpenVMS VAX V6.0, V6.1, V6.2, V7.0
System Reboot Necessary: Yes
Installation Rating: Not Known
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 DECdns V2.1 on OpenVMS VAX V6.0 through V7.0.
This kit addresses the following problems:
Problems Addressed in DECDNSECO02070:
The DECdns server has several fixes and improvements:
o Fixes for a hang using the command:
Show dns server clearinghouse X replicas
o Fixes for problems with CTL$GL_DNSPTR
There were several fixes for problems in the clerk trying to
reference its global data structure pointer (CTL$GL_DNSPTR)
before it was properly initialized.
o Improvements to reduce resource utilization
Fixed a problem causing deadlocks between the port and request
threads. Also fixed a problem that caused the request threads
to go into a dormancy loop, preventing the freeing of resources
when no longer needed. Reduced the time that the request
thread is in the dormant state from 10 minutes to one minute as
a default.
o Eliminate some "no resource" errors on skulk commands
Fixed a problem with the server providing the replica pointer
on a skulk to the clerk that was incorrectly reported to the
DNS$CONTROL program as "no resources available".
o New configuration options
The option to change the dormancy_evaluation interval has been
added so that the system manager can modify the time that the
request is in the dormant state. After the system manager has
created the SYS$SYSDEVICE:[DNS$SERVER]DNS.CONF file, the
following parameter may be added.
dnsd.dormancy_evaluation_interval: 30
The dormancy_evaluation_interval is specified in seconds. It
represents the time that the resources used by a request remain
in pool awaiting the possibility of being reused. The default
value is set to 60 seconds if a value is not specified in the
DNS.CONF file. Decreasing the value from the default may allow
resources to be released earlier however, if it is decreased
too much it will result in a delay in starting the processing
of a new request. Consequently, if it is changed it should be
done very carefully.
o Correction to BADCLOCK fixer option
Corrected problem with option used to correct BADCLOCK error
(caused by running server on system with incorrect system
time). If the server is run on a system with time set in the
future, it can cause incorrect timestamps to be stored in the
clearinghouse. The utility used to correct the timestamps was
found to have a problem, which is corrected with this fix.
o Changes to incoming connection timeouts
Change made to mechanism used to timeout incoming connections
to the server. Correction to suspected race condition in
mechanism.
o Improvements to server threads mechanism
Improve diagnostics in the threads package.
o Connection quotas
Server now limits number of concurrent incoming connections
accepted at any one time. Previously, server would accept
virtually as many connections as other factors would allow.
Ability for system manager to specify or override connection quotas
is also available now. To override default connection quotas, system
manager can create the file SYS$SYSDEVICE:[DNS$SERVER]DNS.CONF. In
this file, insert lines similar to the following:
dnsd.ta_conn_quota: 200
dnsd.back_conn_quota: 15
dnsd.ta_conn_quota (which defaults to 100) specifies the
maximum number of incoming clerk requests for normal DECdns
lookups.
dnsd.back_conn_quota (which defaults to 10) specifies the
maximum number of incoming clerk requests for the background
tasks of skulking, etc.
Note that the sum of these two quotas should be below the values
for NCL characteristics for either OSI TRANSPORT MAXIMUM TRANSPORT
CONNECTIONS, or NSP MAXIMUM TRANSPORT CONNECTIONS. Digital recommends
that the max transport connections characteristics be set so that the
system never reaches the maximum number of connections specified.
Increase max transport connections characteristics for NSP and OSI if
required to meet this requirement.
o Optional system BUGCHECK
Option is available to force a system (VMS) crash following a
server process bugcheck. This feature has been added to assist
in diagnosis of certain DECnet related problems.
o Eliminate certain bugchecks
It has been determined that certain error paths in the server
did not need the server process to bugcheck. Instead, the
server will log the abnormality to the DNS$SERVER.LOG, and
continue normal operation.
o Remove dying replicas from clearinghouse
Add a more convenient method to eliminate replicas which have
gotten stuck in the dying state. Usually replicas end up in
this state from improper use of the SET DIR TO NEW EPOCH
command.
To 'prune' these replicas, the system manager should shut down
the server, and then create (or modify) the
SYS$SYSDEVICE:[DNS$SERVER]DNS.CONF file. In this file, they
should place a line similar to the following:
dnsd.db_version_to_prune: 999
Instead of 999, the system manager would specify the current
checkpoint number of the clearinghouse they wish to 'prune'.
This can be determined by typing out the clearinghouse version
file (the file which has a file extension of ".VERSION".)
The system manager would then start the server up, and then
shut it down again. The server should write out a new
checkpoint file with the dying replicas eliminated. The above
line can then be removed from the DNS.CONF file, and the server
restarted normally. Only one prune operation is permitted per
server session.
In order to display the results of a prune operation in the
DNS$SERVER.LOG the sys$sysdevice:[dns$server]dnsd.events file
should have the "db_checkpoint_info" event turned on.
o Improvements to the DNS DIAG utility
The dns$diag utility has had several features added, as well as
several improvements to the help and operation.
Through the diag utility, it is now possible to flush the
DNS$SERVER.LOG immediately to disk via the "flush log" command.
Help has been added to further explain the BADCLOCK repair
operation. The diag tool will no longer exit with a spurious
error when the user presses CTRL/Z.
The dns$diag utility has been modified to display more
information when displaying the request block. The number of
times that the request block enters the "dormant" and
"dormant_avail" state is now displayed. The "dormant_avail" is
the only state that the request block and request thread can
become a candidate for freeing up the resources that they are
using.
o New configuration options
In addition to the ta_conn_quota, back_conn_quota, and
db_version_to_prune configuration options described above, there
are now also two other options available. After the system manager
has created the SYS$SYSDEVICE:[DNS$SERVER]DNS.CONF file, they may
add either of the following options:
dnsd.acs_override: 1
dnsd.node_verification: 0
acs_override controls whether the server does a full access control
check for incoming requests. The default setting is 0 (do not
override access control checking.) If the system manager wishes to
override all access control checking on the system, they may set this
item to 1. Note that while access control checking is overridden,
*any* privileged or non-privileged user on your network will have
complete read, write, delete, and control privileges to any object,
directory, or clearinghouse managed on this server.
node_verification controls whether the server does full node
verification and authentication of update transactions to the
server. The default setting is 1, to do node verification. If
this option is set to 0, the server will not backtranslate the
incoming address to verify that the incoming connection is
actually coming from the where the incoming connection claimed
it was coming from. With this disabled, servers are vulnerable
to intentional or unintentional 'node spoofing' where systems
make updates to the namespace for which their node name is
authorized to do, but which their address is not authorized to
do.
o Non-default changes to the configuration are logged
During startup, the server reads in the
SYS$SYSDEVICE:[DNS$SERVER]DNS.CONF file to determine if any of
the default setting have been overriden. A mechanism has been
added to the server to write out to the DNS$SERVER.LOG any
defaults which have been overriden.
This feature can help the system manager to verify that any
changes made to conf file were recognized correctly by the
server on startup. The log also acts as record of the current
options in effect for the server.
o Additional connection tracing
Additional tracing is now available to print out node and
username of problem connections to the server.
Problems Addressed in DECDNSECO02065:
The most serious problems this kit fixes are with the DECdns Clerk.
This kit also includes corrections and improvements to the DECdns
server software. If your system has the DECdns server already
installed, this ECO kit will update the appropriate images.
o Systems with SYS$NAME_SERVICES.EXE ECO 56 and later have a
problem which could result in a system crash. For versions prior
to ECO 56, this problem could result in a memory leak.
The system crash typically occurs when a person using DNS$CONTROL,
or NCL, presses control/Y in the middle of the an outstanding
clerk request. A crash like this could happen from abnormal
termination of any application which uses the DECdns system
service. Therefore this problem was not limited to NCL or
DNS$CONTROL, and might also result from a STOP process command.
For pre-ECO 56 systems, severe leakage of non-paged pool
would occur on systems which regularly spawned NCL commands.
This kind of activity is common on systems doing regularly
scheduled network monitoring operations. The memory leak would
happen when a user logged out, or a process terminated (completed)
after directly or indirectly using the DECdns system service.
Typically this use would be via NCL or DNS$CONTROL, but all
applications using the DECdns system service will experience this
problem.
o This kit will also fix a problem with the DECdns advertiser program
(DNS$ADVER) which could result in DECnet hanging on system startup.
This could happen on systems with larger amounts of memory (128 Meg
and greater). Typically, the problem would occur when the system
had a change in the configuration, either through more memory being
installed, a SYSGEN parameter being changed, or more products being
installed.
o The DECdns server has several fixes and improvements:
+ Timeout lost incoming connections
Add code to timeout incoming connections to server which do not
complete connection acknowledgment in 20 seconds. Previously,
incoming clerk requests which did not complete this initial
portion of the connect initiate would block the server from
accepting any new connections until the DECnet session layer
timed out (usually 2 or 3 minutes.)
+ Timestamp DNS$SERVER.LOG
Add timestamp to DNS$SERVER.LOG file. Useful for debugging,
and tracking exact time of other DECdns server anomalies.
+ Increase size of nested groups
Increase the maximum number of members that nested access control
groups can contain from approximately 100 to approximately 300.
+ Improve bugcheck diagnostics
Improve diagnostic information written to log file during server
bugcheck.
+ Correct race condition
Correct problem with race condition in connect initiate watchdog
timer.
+ Fix memory leak
Correction memory leak in watchdog timer code.
+ Improve reliability
Correction to allow server to ignore error status returned from
DECnet during normal operation, instead of crashing.
+ Allow more connections
Raise internal limitation of server to allow more threads to be
concurrently active on a server. This will allow a server to
have a greater number of outstanding connections at a time.
+ Improve server startup
Change server to reject incoming DECnet connections until the
clearinghouse database is completely read into memory, and the
DNS$Server process is ready to respond to the requests. It is
hoped that this will allow a server to come up more quickly
under heavy network load.
INSTALLATION NOTES:
In order for the new SYS$NAME_SERVICES image to be loaded, the system
must be rebooted.
This patch can be found at any of these sites:
Colorado Site
Georgia Site
Files on this server are as follows:
decdnseco02065.README
decdnseco02070.CHKSUM
decdnseco02070.CVRLET_TXT
decdnseco02070.a-dcx_vaxexe
|