DEC TCP/IP] UCXALP_E10041 TCP/IP V4.1 ECO Summary
TITLE: DEC TCP/IP] UCXALP_E10041 TCP/IP V4.1 ECO Summary
Modification Date: 21-DEC-2000
Modification Type: DOCUMENTATION: Removed references to OpenVMS V7.2.
TCP/IP V4.1 is not supported on V7.2.
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 1999. All rights reserved.
PRODUCT: DIGITAL TCP/IP Services for OpenVMS V4.1
OP/SYS: OpenVMS Alpha
SOURCE: Compaq Computer Corporation
ECO INFORMATION:
ECO Kit Name: UCXALP_E10041 (DEC-AXPVMS-UCXECO_41_10-V1000--4.PCSI)
ECO Kits Superseded by This ECO Kit: UCXALP_E09041
DEC-AXPVMS-UCXECO_41_9-V0900--4
DEC-AXPVMS-UCXECO_41_8-V0800--4
DEC-AXPVMS-UCXECO_41_7-V0700--4
DEC-AXPVMS-UCXECO_41_6-V0600--4
DEC-AXPVMS-UCXECO_41_5-V0500--4
DEC-AXPVMS-UCXECO_41_4-V0400--4
DEC-AXPVMS-UCXECO_41_3-V0300--4
ECO Kit Approximate Size: 30880 Blocks
Kit Applies To: DIGITAL TCP/IP Services for OpenVMS V4.1
OpenVMS Alpha V6.1 and higher
System/Cluster Reboot Necessary: Yes
Installation Rating: None
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
ECO KIT SUMMARY:
An ECO kit exists for DIGITAL TCP/IP V4.1 on OpenVMS Alpha V6.1 and
higher. The following sections describe the corrections to each facility.
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 INSTALL Images
---------------------------------------------------------------------------
ECO 5 updates:
--------------
SPECIAL NOTE 20-SEP-1996
Problem:
Sites using the manual startup for the NFS
server may experience the server process
hanging in LEF state.
Solution:
There is no ECO correction for this problem. Sites
using manual NFS server startup should do one or both
of the following:
1. Use automatic startup instead.
2. Edit SYS$MANAGER:UCX$NFS_SERVER_STARTUP.COM as
follows:
- Find the RUN command following the MANUAL_STARTUP:
label.
- Change the last two continuation lines of the RUN
command, /UIC=[1,4] - /NORESOURCE to /UIC=[1,4]
thereby eliminating the /NORESOURCE_WAIT qualifier.
Reference:
CFS.34717.
ECO A 19-AUG-1996 Alpha and VAX
Image:
UCX$VERSIONS.EXE UCX V4.1-12A
Problem:
UCX$VERSIONS shows the wrong images on VAX.
The V6 images are shown on V5 and V5 images on V6.
Solution:
Corrected.
References:
Internal report.
ECO B 24-NOV-1996 Alpha and VAX
Image:
None.
Problem:
UCX$FINGER_SHUTDOWN purged all logs,
not just UCX logs.
Solution:
Purge old log files at startup.
References:
Internal report.
ECO C 30-DEC-1996 Alpha and VAX
Image:
None.
Problem:
Shutting down OpenVMS from either an RLOGIN
or TELNET session resulted in the session being
aborted before the system was shut down.
Solution:
If invoking UCX$SHUTDOWN.COM on a TN device,
display an appropriate message and exit the
shutdown procedure. UCX remains running
until the system is shut down.
This behavior is the same as that of DECnet on RT terminals.
References:
CFS.47157.
ECO D 14-JAN-1997 Alpha and VAX
Image:
None.
Problem:
The METRIC daemon runs using the UIC and
default privileges of the user who started it.
The image is not installed during startup
unless either RSH or REXEC is enabled.
Solution:
Correct the startup logic for the METRIC daemon so
that it utilizes its own UIC and installs the images
whenever appropriate.
Reference:
CFS.47535.
ECO E 6-FEB-1997 Alpha and VAX
Images:
None
Problem:
Files get purged in SYS$MANAGER upon startup.
Solution:
UCX$STARTUP calls other startup scripts in SYS$MANAGER,
and they purge files they should not be purging. This problem
occurs because there are 2 identical copies of
startup/shutdown files for some components: one in the login
directory and one in SYS$MANAGER.
Removed purge commands from several startup scripts.
Reference:
CFS.48550.
ECO F 7-FEB-1997 Alpha and VAX
Images:
None
Problem:
UCX$SNMP_SHUTDOWN.COM cannot find the
SYS$SYSTEM:UCX$SNMP_AGENT.EXE file.
Solution:
Because the images has been replaced by
SYS$SYSTEM:UCX$ESNMP_SERVER.EXE, correct the file name and
process name. In addition, change the DCL code so that it
correctly identifies the process being stopped.
References:
Internal report.
ECO 9 updates:
--------------
ECO I 8-FEB-1998 Alpha and VAX
Image:
UCX$VERSIONS.EXE UCX V4.1-12I
Sources:
UCX$SNMP_SHUTDOWN.COM V1.0-02
UCX$SNMP_STARTUP.COM V1.0-02
Problem:
Inconsistencies in startup/shutdown of subagents.
Also enclose some process names (e.g., those ending in a hyphen)
in quotation marks so as not to confuse DCL.
Solution:
Made sure both subagents handled, and enclosed results
of getjpi for PRCNAM within quotation marks. Also made checking
of privileges, installation and removal of images, and
enable/disable of service consistent between the procedures.
The UCX$SNMP_SHUTDOWN.COM must be run from a privileged
account. It deinstalls UCX SNMP images and disables the
SNMP service.
UCX$SNMP_STARTUP.COM runs in two modes:
Default:
The non-privileged the mode in which the
procedure is called from UCX$STARTUP.COM and for
autostart from the Auxiliary server.
Full:
Intended for interactive startup from
a privileged account. Use the command
$ @SYS$MANAGER:UCX$SNMP_STARTUP FULL.
This mode is required if you want to restart SNMP
after running UCX$SNMP_SHUTDOWN without stopping and
restarting UCX.
Reference:
Internal testing.
ECO 10 updates:
---------------
ECO K 28-APR-1998 Alpha and VAX
Sources:
[INSTALL]UCX$SHUTDOWN.COM
Problem:
When logged in on a system with tn device and trying to
shutown UCX, the customer gets unrecognized command messages.
Solution:
Define SAY as SYS$OUTPUT at the top of the UCX$SHUTDOWN.COM
file.
Reference:
PTR 30-1-446, CFS.53292
Sources:
UCX$LPD_STARTUP.COM UCX V4.1-01
UCX$LPD_SHUTDOWN.COM UCX V4.1-01
Problem:
Some UCX$*.COM files are not handling the UCX$LPD_PRINTCAP
logical correctly.
Solution:
In UCX$LPD_STARTUP.COM, only DEFINE UCX$LPD_PRINTCAP if it is
not already defined. In UCX$LPD_SHUTDOWN.COM, do not DEASSIGN
UCX$LPD_PRINTCAP.
Images:
UCX$VERSIONS.EXE UCX V4.1-12K
Problem:
UCX$HR_MIB.EXE not displayed for $ UCX SHOW VERSIONS/ALL
Solution:
Add UCX$HR_MIB.EXE to the code.
Reference:
None
ECO L 16-OCT-1998 Alpha and VAX
Sources:
UCX$SNMP_STARTUP.COM
Images:
None.
Problem:
Remove purge statements from UCX$SNMP_STARTUP.COM
Solution:
Comment out the following lines from UCX$SNMP_STARTUP.COM:
$ SAVE=5+2*F$GETSYI("CLUSTER_NODES")
$ PURGE/KEEP='SAVE'
References:
None.
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 Kernel Images
---------------------------------------------------------------------------
ECO 1 updates:
--------------
ECO A 8-AUG-1996 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12A (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12A
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12A
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12A
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12A
UCX$INETACP.EXE UCX V4.1-12A
Problems:
1. The routing table becomes filled with entries that
have the RTF_UP flag bit cleared but have a
non-zero reference count.
2. A system crash might occur in the ip_output routine because
inp_route.ro_rt points to a deallocated entry.
3. On OpenVMS Alpha V7.0, a system crash might occur when a
reference is made to unallocated memory that is likely
a part of the MBSTAT_DATA cluster of large buffers.
Solutions:
1. In the ip_output routine in IP_OUTPUT_VMS.C, the
static global route structure iproute was being
overwritten without first doing an RTFREE of the
rtentry associated with the route. The result was an
rtentry whose refcnt was permanently increased by 1,
and which, therefore, never goes away. The solution
is to do the RTFREE.
2. In routine rtpurge, an incorrect call to rtfree has the
possibility of deallocating an rtentry while leaving an
inp_route.ro_rt field still pointing to it. This is the
same situation cited above. The solution is to remove
the call to RTFREE.
3. The problem occurs when the user issues:
UCX SET CONFIGURATION COMM/LARGE=MIN=31
31 large Ethernet buffers need more than 64K of memory
for a cluster of buffers with OpenVMS V7.0 because the
size of a VCRP has grown. The amount of space to allocate
is calculated, but the value is more than 16 bits.
When the space needed is specified, the low order bits are
used incorrectly. The unallocated space is then used and
causes the system to crash.
The correction consists of four parts:
a. A new INETCB$B_MAX_NR_DATA_CLST field is created
in the NETCB. The declaration of this field
occurs in INET_MACROS.MAR. The new field is in
a previously reserved area of the INETCB that was
used only for alignment purposes, and, therefore,
the INETCB has not grown in size. There is no
need to re-assemble many modules to use this new
field.
b. In the INETACP_MOUNT routine in INETACP_INIT.MAR,
the largest number of large buffers that fit
in a maximum-sized cluster is calculated. A maximum
sized cluster is at least one byte less than 64K.
The newly-calculated number is then put into the
new INETCB$B_MAX_NR_DATA_CLST field.
c. In INET_MBUF.MAR where the clusters of large
buffers are allocated, the number of buffers
to configure in a cluster using the number
specified by the user and the value contained
in INETCB$B_MAX_NR_DATA_CLST is minimized.
d. Some code cleanup is done in the SET_MIN_LARGE,
SET_MIN_SMALL, and INET_SET_SIZES_MIN routines
in INET_SETMODE.
References:
1. None
2. CFS.43319
3. CFS.43704
ECO B 23-AUG-1996 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12B (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12B
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12B
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12B
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12B
UCX$INETACP.EXE UCX V4.1-12B
Problem:
A potential problem exists for multicast on SLIP lines.
Once a datagram for an IP multicast address has been
received in a SLIP VCRP, the VCRP will, from then on,
continue to indicate that any datagrams processed in
that VCRP were received via a "broadcast" datalink
address.
Solution:
In the ALLOCATE_SLIP_RCV_VCRP routine, the datalink
received header field (@VCRP$A_LAN_R_HEADER which points
to VCRP$A_LAN_R_HEADER+4) is reinitialized to zero.
ECO C 10-SEP-1996 Alpha and VAX
Retrofit forward:
1. From ECO AI V3.3 and ECO V from V4.0.
2. From ECO U from V4.0.
Image:
UCX$BGDRIVER.EXE UCX V4.1-12C (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12C
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12C
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12C
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12C
UCX$INETACP.EXE UCX V4.1-12C
Problem:
1. The system pool fills up with VCRPs. This exhausts
pool and causes a CLUEXIT bugcheck. This problem
was initially reported in ECO M (V3.3).
2. When a persistent window probe message is received, UCX
TCP does not reply with an ACK message. Although there
is no explicit requirement to send such ACKs, certain
other implementations expect them. The lack of a response
prompts other TCPs to abort connections with full receive
windows, even though the connection is in fact still active.
Solutions:
1. This problem is not a UCX problem but rather a
datalink driver problem. However, a small amount of code
can be added to UCX to prevent the problem from crashing
the system. The problem is triggered by a broadcast storm
from an errant Windows NT node that produces thousands
of broadcast datagrams so quickly that all pool is overrun
even before initial notification of the existence of the
datagrams occurs. Normally UCX accepts a datagram from the
datalink driver and queues it for later processing so that
control can be immediately passed back to the datalink driver.
When the datalink finishes its tasks, the processing
of the datagrams in the queue begins. In this problem case,
the datalink receives so many datagrams that it does
not finish with its tasks until the queued datagrams occupy
all of pool. The included correction artificially limits the
number of such datagrams that will be queued back to
the datalink. When the number of unprocessed queued
datagrams passes a threshold value (1000 for now)
deallocation of all the datagrams above this threshold
occurs. This, in effect, prevents the datalink from
overrunning pool since each new received datagram can use
the deallocated space.
2. Send back an acknowledgment (ACK) indicating the same
sequence number that was just received. In other words,
do not acknowledge the single byte, which was beyond the
end of the allowable receive window. Simply repeat the
ACK for all prior data.
References:
1. CFS.44630, CFS.31492
2. CFS.43983
ECO D 16-SEP-1996 Alpha and VAX
Image:
UCX$INETACP.EXE UCX V4.1-12D
Problem:
When a service is disabled while it still has active
connections, the global service counter still counts
those connections. When they are closed, the global
counter is not updated.
Solution:
Decrement the service counter for all outstanding
connections at the time the service is disabled.
Reference:
CFS.42427
ECO E 17-SEP-1996 Alpha and VAX.
This corresponds to ECO W from V4.0.
Image:
UCX$BGDRIVER.EXE UCX V4.1-12E (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12E
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12E
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12E
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12E
UCX$INETACP.EXE UCX V4.1-12E
Problem:
An application waiting for a given broadcast address
incorrectly receives broadcast messages addressed to the
network address of its second interface.
Solution:
Tighten up the address comparison and selection criteria
in INET_IN_OUT.MAR so it will be able to recognize when a
datalink level broadcast has been received over an interface
whose IP broadcast address does not coincide with the IP
broadcast destination of the received datagram. In this
case, discard the received datagram.
References:
CFS.34509
ECO F 20-SEP-1996 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12F (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12F
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12F
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12F
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12F
UCX$INETACP.EXE UCX V4.1-12F
Problems:
1. On 32-bit systems (i.e., VAX and Alpha before OpenVMS
V7.0), systems running UCX V4.1 crash when DCE is
started.
2. On-64 bit systems, DCE gather writes do not work
properly.
Solution:
Both problems are due to errors in a routine that only
deals with scatter/gather I/O. The routine is
BUILD_MULTI_BUFFER_VECTOR.
For problem 1, there was an incorrect reference to R3
that should have been to R6. The result was that a
counter whose value should have been less than a maximum
of 200 was being loaded with arbitrary information. The
counter was then used to modify an array in memory. When
the counter contained large numbers, massive memory
corruption occurred.
For problem 2, the error was in code that prepared 32-
bit style descriptors for the 64-bit environment. The
result was that in a gather operation that specified 3
buffers, the descriptors for the first buffer were
replicated 3 times, rather than each of the three
individual buffers being replicated once.
ECO G 26-SEP-1996 Alpha and VAX
Image:
1. UCX$TRACE.EXE UCX V4.1-12G
2. UCX$BGDRIVER.EXE UCX V4.1-12G (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12G
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12G
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12G
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12G
UCX$INETACP.EXE UCX V4.1-12G
Problems:
1. The TCPIPTRACE command intermittently caused access violations.
2. POP users notice occasional data duplication.
The problem that POP sees is actually more general.
The problem may occur on any non-blocking socket.
The problem arises when data is sent, the current
socket send quota is less than the amount of data to be
sent, and there is more additional room in the current
mbuf in the send socket buffer than the amount of
remaining quota. In this infrequent case, incorrect
I/O status is returned to the user. It does not
reflect that data was actually written to the socket.
The result is that the user will resend data that has
already been sent.
Solutions:
1. The alignment problem on Alpha platform has been corrected.
2. The partial send count is now properly updated after some data
has been transferred.
References:
1. Internal report
2. CFS.44891
ECO 2 updates:
--------------
ECO H 30-SEP-1996 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12H (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12H
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12H
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12H
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12H
UCX$INETACP.EXE UCX V4.1-12H
Problem:
Multiple ACCEPTs done to the same socket may cause an
I/O request to be lost. This situation results in a process
hanging in RWAST. This can occur with a multi-process
World-Wide Web (WWW) server.
Solution:
The cause of this problem is that a particular UCX-specific
field in the INET_SOACCEPT code flow in the IRP is being
used without being initialized. The result is that the
IRP$x_BG_OOB bit, in the IRP$L_FLAGS field, is possibly
being interpreted incorrectly. The solution is to introduce
an instruction that initializes the field to zero at the
start of an ACCEPT operation.
ECO J 4-OCT-1996 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12J (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12J
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12J
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12J
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12J
UCX$INETACP.EXE UCX V4.1-12J
Problem:
1. The UCX SHOW DEVICE command sometimes hangs. As a
result, the customer shut down UCX and brought it up
again. Upon doing this once, the system crashed.
2. At setup, select() should properly sense and return if
the socket has OOB data pending. While reception of OOB
data causes an active select() to terminate, active
OOB data does not cause a new select() to terminate.
Solution:
1. The cause of the hang is most likely that the UCX$BGDRIVER,
in responding to the UCX SHOW DEVICE command, is perusing
the I/O database without holding the I/O database MUTEX.
As a result, there is a remote possibility that the I/O
database might change while it is being searched. This
could have unpredictable results. The way to resolve
this problem is to simply request this MUTEX before the
operation begins, then release it when the search
is finished. This solution should relieve the user's need to
shutdown UCX in similar circumstances.
The crash that occurred after bringing up UCX was the
result of a resource problem in OpenVMS that left UCX
in an inconsistent state. A correction for this problem
requires a major rework of UCX initialization and is
planned for a future release. For the present, it is
recommended that frequent stopping and starting of UCX
be avoided.
2. OOB data does not appear as data queued to the socket's
MBUFs, and the read() code fails to clear the RCVATMARK
condition when the OOB data is returned to the user.
Hence, the check added in ECO C is not correct and the
previous code, while it will cause the select() to return,
may not have an OOB present.
The change will actually check the TCP context to see if
an OOB is present instead of trusting RCVATMARK. This is
a correction at one place in the driver, and the correction
to the read() code will be made for V4.1 and beyond.
References:
1. CFS.43985
2. CFS.44644
ECO K 22-OCT-1996 Alpha and VAX
Retrofit forward from ECO AJ V3.3.
Image:
UCX$BGDRIVER.EXE UCX V4.1-12K (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12K
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12K
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12K
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12K
UCX$INETACP.EXE UCX V4.1-12K
Problem:
A crash can occur in the IN_CKSUM routine with an access
violation. This problem is triggered by the receipt of a
technically illegal, highly fragmented ping request datagram,
probably from a Windows NT or a Windows 95 system. The
problem with the datagram is that when it is reassembled
with its IP header, it is longer than 65535 bytes -- the
longest length expressable in the 16 bits of the length
field of the IP header.
Solution:
In the ip_reass routine, fragmented packets are reassembled
without looking at the total length of the datagram.
To resolve the problem, if this length exceeds 65535,
the datagram will be discarded after incrementing the
ips_fragdropped counter by the number of fragments in the
datagram.
ECO L 25-Oct-1996 Alpha and VAX
Partial retrofit forward from ECO Z V4.0.
Image:
UCX$BGDRIVER.EXE UCX V4.1-12L (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12L
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12L
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12L
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12L
UCX$INETACP.EXE UCX V4.1-12L
Problem:
Incoming RSH connections sometimes hang.
Solution:
In the INETACP_GET_USER_INFO routine, the data from
the incoming RSH connection is parsed for information as to
the error port, the user name, command to execute, and so on.
If enough data has not yet arrived, a READATTN AST is set
to send a wake-up notification when new data arrives and then
causes the process to go into sleep. An error in setting up
the AST request created a timing window wherein the process
might go to sleep forever.
References:
Several reports.
ECO M 8-Nov-1996 Alpha and VAX
Image:
UCX$INETACP.EXE UCX V4.1-12M
Problem:
The correction in ECO D, above, was incomplete. Although it
prevented the service counter from growing when active
services were disabled, it also led in some cases to the
counter being decremented past zero. For example, disabling
the FTP service while one FTP connection was the only
activity on the system would result in the service counter
showing up as 65535 (-1, formatted as an unsigned word).
Following such underflow, no further connections for any
service are accepted.
Solution:
When decrementing the global service counter at service
disable time, set a flag in the BG UCB so that the counter
will not be decremented again later, when the device-socket
is deleted. To provide additional protection against any
such problems, always check that the value of the
service counter is non-zero before decrementing it.
Reference:
Internal report.
ECO N 12-Nov-1996 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12N (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12N
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12N
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12N
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12N
UCX$INETACP.EXE UCX V4.1-12N
Problems:
1. The UCX$INETACP process slowly loses AST count.
2. A system crash can occur in INET_GET_IRP with the INETCB
pointer as zero.
Solutions:
1. The cause of problem is that if an incoming RSH
connection specifies an error connection, and during
the processing of the specified RSH command data is
written over the error connection, the ACP loses track
of a READ ATTN AST that it had requested on the error
connection. The solution is to provide cleanup in
the INET_SELECT_REMOVE_UCB routine. This routine looks
at every UCB that is about to disappear. If it sees a
dangling READATTN AST on the socket associated with the UCB,
the routine removes it and returns the AST quota to its owner.
2. This is a synchronization problem in that UCX is being
brought down and residual PWIP activity results in a call
to INET_GET_IRP. The solution is to include a test for the
existence of the INETCB before using a pointer to it and
have the routine return an error if the test fails.
References:
1. CFS.46398
2. CFS.44492
ECO 3 updates:
--------------
ECO O 14-Nov-1996 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12O (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12O
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12O
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12O
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12O
UCX$INETACP.EXE UCX V4.1-12O
Problems:
1. A system crash (VAX only) may occur with a Reserved
Operand Fault during the execution of a CMPD
(Compare D_Floating) instruction.
2. A system crash may occur in the arpioctl routine
during reference to the variable arpoint, which is zero.
Solutions:
1. In INET_IN_OUT.MAR, there are two CMPD instructions
that, depending on the data they are comparing, might
cause a system crash. To resolve the problem, substitute
2 CMPL instructions for the offending instruction.
2. The arptable is allocated and the variable arpoint is
set to point to the arptable when the first external
interface is configured. If UCX is started and the
configuration database has no interfaces defined, it
may enter code that assumes that arpoint contains a
valid value. To resolve this problem, the code explicitly
tests for the possibility of a zero arpoint wherever that
is possible, and exits gracefully in that case.
References:
1. CFS.46437
2. CFS.46434
ECO P 27-Nov-1996 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12P (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12P
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12P
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12P
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12P
UCX$INETACP.EXE UCX V4.1-12P
Problem:
IP datagram fragments that have the DF bit set are
being ignored.
Solutions:
An IP datagram that has the DF bit set is incorrectly
assumed to NOT be a fragment. Instead, it was dropped
because no attempt was made to reassemble it and its
associated fragments into a complete datagram. The
assumption that the DF bit implies that a datagram is
not a fragment is no longer made.
References:
Internal reports.
ECO 5 updates:
--------------
ECO Q 6-DEC-1996 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12Q (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12Q
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12Q
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12Q
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12Q
UCX$INETACP.EXE UCX V4.1-12Q
Problem:
System crash, INVEXCEPTN, reassembling a fragmented
UDP datagram directed to a PATHWORKS socket.
Solution:
This problem is most likely due to a PWIP
problem, although the exact cause has not been found.
However, the crash is triggered by the receipt of a
fragmented UDP datagram, a rare event in normal
circumstances, that is then passed up to PWIP where
some data is being corrupted.
A change was made to eliminate the possibility
of passing fragmented datagrams to PWIP. This was done
by allocating adequate space to accommodate the
fragmented datagram and then copying the fragments
into a contiguous datagram.
References:
CFS.42878.
ECO R 16-DEC-1996 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12R (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12R
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12R
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12R
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12R
UCX$INETACP.EXE UCX V4.1-12R
Problem:
Invoking TRACEROUTE.EXE from UCX$EXAMPLES
may lead to a crash.
Solutions:
Corrected.
References:
CFS.46521.
ECO S 3-JAN-1997 Alpha and VAX
Image:
UCX$INETACP.EXE UCX V4.1-12S
UCX$BGDRIVER.EXE UCX V4.1-12S
UCX$INTERNET_SERVICES.EXE UCX V4.1-12S (VAX)
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12S
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12S
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12S
Problems:
On a system using FDDI, configuring an
illegally large value for the minimum number
of large buffers causes a system crash.
Solutions:
This problem was introduced in ECO A, when
the new mechanism to dynamically calculate
limits on cluster sizes was added.
The solution is to recalculate the limit at
the time FDDI-sized buffers are selected,
later in the startup process.
References:
CFS.47489.
ECO T 13-JAN-1997 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12T (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12T
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12T
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12T
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12T
UCX$INETACP.EXE UCX V4.1-12T
Problem:
SSRVEXCEPT, on OpenVMS V7.x, when
receiving OOB data.
Solution:
The problem was a failure to take 64-bit
addresses into account when returning the
user data to the user buffer. For 64-bit
systems, all data buffer descriptors are
normal to 64 bits.
However, in routine, INET_SORECEIVE_IMMEDIATE,
the descriptor was treated as if it were a 32-bit
descriptor. As a result, the high 32 bits
of the length were picked up and used it as if
they were the address of the user buffer.
References:
Internal report.
ECO U 16-JAN-1997 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12U (Alpha)
UCX$INTERNET_SERVICES.EXE UCX V4.1-12U (VAX)
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12U
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12U
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12U
Problem:
A memory leak occured when receiving small,
fragmented ICMP messages. This problem was
visible with the SDA command SHOW
POOL /NONPAGE /SUMMARY as an unusually large
number of VCRPs consuming most of nonpaged pool.
Solution:
Deallocate the VCRP(s) containing the ICMP
message, once the size check shows that the
first fragment is too small.
Reference:
Internal report.
Problem:
The getpeername() operation succeeds on a
socket that is not yet connected. DIGITAL
UNIX returns ENOTCONN in that case.
Solution:
Check for a TCP socket that is not connected;
return an error.
Reference:
CFS.47513.
Problem:
ICMP Timestamp Reply messages are sent using
a non-standard time value, but it is not marked
as such by setting the high-order bit.
Solution:
Set the high-order bit in the time value. It is
not possible at this time to send a standard value,
because the UCX kernel has no knowledge of Universal
Time, nor does it know the local timezone (which
would be required to calculate Universal Time).
Also correct the algorithm that was producing
a number of seconds 10 times too high.
References:
CFS.45971.
Problem:
The system crashed when issuing UCX SET NOINTER on
a system that had no physical interface attached
but had one configured.
Solution:
Crash occurred in shutting VCI ports but at the
time there was no VCIB for ARP, yet it was assumed
that there would be one. The correction was to explicitly
test for the existence of the ARP VCIB before using
its supposed address.
References:
Internal report.
ECO V 24-JAN-1997 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12V
UCX$INTERNET_SERVICES.EXE UCX V4.1-12V (VAX)
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12V
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12V
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12V
Problem:
A remote note connected to a UCX node by a
serial line, where the UCX node considers the
serial line to be a SLIP interface, can cause
the UCX node to overwrite memory. This can be
accomplished by the remote node sending certain
character particular strings on the serial line.
Solution:
Check for this condition before adding data to the VCR.
Reference:
Internal report.
Problem:
A crash occurred while processing a RARP request on VAX received
via the ARP VCI port.
Solution:
Routine ARPINPUT was returning a bad value. This return
was the result of a quirk in the compiler. However, UCX should
never process RARP requests received via the ARP VCI port.
To resolve the partial RARP support, IF_ETHER_VMS.C has been
disabled.
Reference:
CFS.48299.
Problem:
Timestamps used in timestamp option neglected
to set non-standard bit.
Solution:
Set the non-standard bit.
Reference:
Internal testing.
ECO W 4-MAR-1997
Image:
UCX$BGDRIVER.EXE UCX V4.1-12W
UCX$INTERNET_SERVICES.EXE UCX V4.1-12W (VAX)
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12W (VAX)
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12W (VAX)
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12W (VAX)
Problem:
System hangs when running an application that
"peeks" at data in a TCP socket.
Solution:
A bug in routine INET_SORECEIVE_STREAM caused an infinite loop
if while "peeking" at data, data arrived for the socket. The
solution is to re-work the routine.
References:
CFS.49095, CFS.49054.
ECO X 12-MAR-1997 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12X
UCX$INTERNET_SERVICES.EXE UCX V4.1-12X (VAX)
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12X (VAX)
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12X (VAX)
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12X (VAX)
Problem:
Multicast applications do not receive copies
of messages transmitted by other applications
on the same host.
Solution:
Treat multicast messages like broadcast messages, which
were already being looped back for receive processing.
Reference:
CFS.48879.
ECO Y 2-APR-1997 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12Y
UCX$INTERNET_SERVICES.EXE UCX V4.1-12Y (VAX)
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12Y (VAX)
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12Y (VAX)
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12Y (VAX)
UCX$INETACP.EXE UCX V4.1-12Y
Problems:
1. System crashed on a write to a BG device when P2 parameter
(user buffer length) specified a negative value.
2. When loading a proxy database of over 2048 entries,
certain entries became disabled.
Solutions:
1. Lengths of user buffers were not being properly
validated and as a result, the negative value length
was misinterpreted as a large positive number.
The correction was to properly validate this length,
limiting lengths to 64K-1 bytes.
Lengths greater than this and lengths less than zero
now cause the I/O request to be terminated with
an SS$_IVBUFLEN status.
2. An error in the definition of the MOVCL3 macro, which
did not properly account for overlapped moves, led to
corruption of the proxy database. The macro was modified
(INET_MACROS.MAR) and INETACP_CREPROC.MAR, where the macro
is invoked, was modified to correct branch destination problems
that arose with the new larger macro.
References:
1. Internal testing.
2. CFS.49264.
ECO Z 8-APR-1997 Alpha and VAX
Image:
UCX$INETACP.MAR UCX V4.1-12Z
Problem:
Port numbers on incoming RLOGIN connections were
not properly parsed.
Solution:
Correct port number parsing.
Reference:
Internal testing.
ECO AA 9-APR-1997 Alpha and VAX
Images:
UCX$BGDRIVER.EXE UCX V4.1-12AA
UCX$INTERNET_SERVICES.EXE UCX V4.1-12AA (VAX)
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12AA (VAX)
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12AA (VAX)
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12AA (VAX)
UCX$INETACP.EXE UCX V4.1-12AA
Problem:
1. System crashed; call to panic from SBDROP when
inconsistent data is left in the receive socket
buffer.
2. System crashed soon after boot on OpenVMS V7.1 Alpha
with per thread code.
Solution:
1. The problem arose in routine INET_SORECEIVE_ATOMIC,
when: a) data arrives on a UDP or raw IP socket while
un-synchronized in INET_MOVIO_TO_USER, and b)
the user buffer is smaller than the datagram, which
implies that the software does not consume the entire received
datagram and calls SBDROPRECORD. The correction
is to refresh R7, the pointer to the next datagram,
after resynchronizing.
2. UCX was inadvertently clearing an IRP field via a
CLRQ IRP$L_ACTION instruction, assuming (without
an explicit ASSUME invocation) that IRP$L_ARG1 was
in the next longword. For V7.0 of OpenVMS Alpha, this
assumption is no longer true, and the per thread
code uses this field that was being cleared. The
solution was to replace all instances of the CLRQ
IRP$L_ACTION instruction with the sequence:
CLRL IRP$L_ACTION
CLRL IRP$L_ARG1
References:
1. CFS.47490.
2. Internal report.
ECO AB 23-APR-1997 Alpha and VAX
Images:
UCX$BGDRIVER.EXE UCX V4.1-12AB
UCX$INTERNET_SERVICES.EXE UCX V4.1-12AB (VAX)
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12AB (VAX)
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12AB (VAX)
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12AB (VAX)
UCX$INETACP.EXE UCX V4.1-12AB
Problem:
VCRP leak over time on a SLIP interface.
Solution:
In routine PROCESS_SLIP_MSG, the call INET_DECOMPRESS_PACKET
expands the received packet. That routine returns an error
when the packet cannot be decompressed due to noise on the
line. When this situation occurred, the VCRP that contained the
packet was lost. The correction was to deallocate the VCRP when
the situationn occurs.
Reference:
CFS.47496
ECO 8 updates:
--------------
ECO AD 03-NOV-1997 Alpha and VAX
Images:
UCX$BGDRIVER.EXE UCX V4.1-12AD
UCX$INTERNET_SERVICES.EXE UCX V4.1-12AD (VAX)
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12AD (VAX)
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12AD (VAX)
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12AD (VAX)
UCX$INETACP.EXE UCX V4.1-12AD
Problem:
Dynamically decreasing the maximum number of large
or small buffers can result in a system crash.
Solution:
Refuse to lower the maximum number of buffers below
the current value.
Problem:
Non-privileged users were able to create a SLIP
interface.
Solution:
For the Create SLIP ACP function, the user's
privileges were checked before creation.
References:
Internal report.
ECO 9 updates:
--------------
ECO AE 15-JAN-1998 Alpha and VAX
Images:
UCX$BGDRIVER.EXE UCX V4.1-12AE
UCX$INTERNET_SERVICES.EXE UCX V4.1-12AE (VAX)
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12AE (VAX)
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12AE (VAX)
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12AE (VAX)
UCX$INETACP.EXE UCX V4.1-12AE
Problem:
Deassigning one channel to a particular device caused
any pending attention ASTs to be canceled, even
those of other channels.
Solution:
Only flush attention ASTs upon the final channel
deassign operation, when the reference count drops to
zero.
References:
CFS.52150.
ECO AF 23-JAN-1998 Alpha and VAX
Images:
UCX$BGDRIVER.EXE UCX V4.1-12AF
UCX$INTERNET_SERVICES.EXE UCX V4.1-12AF (VAX)
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12AF (VAX)
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12AF (VAX)
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12AF (VAX)
UCX$INETACP.EXE UCX V4.1-12AF
Problem:
IP multicast support was compromised in ECO W.
IGMP messages were no longer being sent, and the
SO_BROADCAST option was required in order to send
multicast datagrams.
Solution:
Skip several broadcast-related checks in the case
of multicast data. Ensure that IGMP messages are sent
and that other Multicast packets are looped back upon
transmit for other sockets on the local host.
Note that packets larger than the MTU are still not
looped back, but this should be a highly unusual case.
References:
CFS.53405.
ECO AG 2-Feb-1998 Alpha and VAX
Image:
UCX$BGDRIVER.EXE UCX V4.1-12AG
UCX$INTERNET_SERVICES.EXE UCX V4.1-12AG (VAX)
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12AG (VAX)
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12AG (VAX)
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12AG (VAX)
UCX$INETACP.EXE UCX V4.1-12AG
Problems:
1. System crash in sbappend, called from
SOSEND_LOOPBACK.
2. Large mbufs leak.
Solution:
1. The cause of the crash is an apparent timing window.
In the recent past, the socket, for which we are
processing a transmit request, was paired with
another socket on this host. It was determined that it
was going to use optimized "loopback" logic at that
time. However, before it used the optimized "loopback"
logic, it gave up synchronization (i.e. lowered IPL) and
copied data from the user space into system buffers.
By the time it regained synchronization (raised IPL), the
paired socket was gone along with a pointer to it. The
socket used this now zero pointer and crashed.
The solution was to test for the existence of this
pointer after we re-synchronize. If it is no longer
there, then we simply deallocated the buffer chain that
we allocated to hold the user data, then returned.
This correction went into routine SOSEND_LOOPBACK.
2. In both INET_SOSEND_ATOMIC and INET_SOSEND_STREAM, error
paths were found that did not deallocate partial
allocations of mbufs. As a result, over time, it was
possible to lose mbufs. The solution was to add cleanup
code to these error paths.
References:
1. CFS.55795.
2. CFS.57212.
ECO 10 updates:
----------------
ECO AH 25-FEB-1998 Alpha and VAX
Images:
UCX$BGDRIVER.EXE UCX V4.1-12AH
UCX$INTERNET_SERVICES.EXE UCX V4.1-12AH (VAX)
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12AH (VAX)
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12AH (VAX)
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12AH (VAX)
UCX$INETACP.EXE UCX V4.1-12AH
Problem:
In some circumstances, the active service counter was decremented
past zero, resulting in an inability to accept further connections.
Solution:
Test to avoid decrementing this counter past zero.
Reference:
None.
ECO AI 14-MAR-1988 Alpha and VAX
Images:
UCX$BGDRIVER.EXE UCX V4.1-12AI
UCX$INTERNET_SERVICES.EXE UCX V4.1-12AI (VAX)
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12AI (VAX)
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12AI (VAX)
UCX$INTERNET_SERVICES_SEC_V6.EXE UCX V4.1-12AI (VAX)
UCX$INETACP.EXE UCX V4.1-12AI
Problem:
Termination AST's for created server processes were being missed,
leading to inaccurate service counts and occasional RWMBX hangs.
Solution:
Rather than queueing an AST each time a server process is started,
queue only one. When it triggers, queue another.
Reference:
CFS.56956 from Computershare PTY
ECO AK 10-APR-1998 Alpha and VAX
Images:
UCX$BGDRIVER.EXE UCX V4.1-12AK
UCX$INTERNET_SERVICES.EXE UCX V4.1-12AK (VAX)
UCX$INTERNET_SERVICES_SEC.EXE UCX V4.1-12AK (VAX)
UCX$INTERNET_SERVICES_V6.EXE UCX V4.1-12AK (VAX)
UCX$INTERNET_SERVICES_V6_SEC.EXE UCX V4.1-12AK (VAX)
UCX$INETACP.EXE UCX V4.1-12AK
Problem:
SW "LAND ATTACK" hangs VMS on Alpha and VAX (also called Denial
of Service Attacks)
Solution:
Fixed.
Reference:
PTR 30-1-635
ECO AL 17-JUN-1998 Alpha and VAX
Images:
UCX$BGDRIVER.EXE UCX V4.1 12AL
Problem:
A UCX program sends UDP packets to the limited broadcast
address 255.255.255.255, incorrectly sends to
{, 255}
Solution:
Enhance UCX to behave similarly to Digital Unix, that is, the
conditions for broadcasting to the limited broadcast address
are the same two that apply to Digital Unix:
(1) The socket must be bound to a local interface, and
(2) The SO_DONTROUTE socket option must be set.
In an emergency the fix can be disabled by clearing the
limited_bcast longword.
Reference:
PTR 30-1-440
ECO AM 27-JUL-1998 Alpha and VAX
Images:
UCX$BGDRIVER.EXE UCX V4.1-12AM
UCX$INETACP.EXE UCX V4.1-12AM
Problem:
VMS 6.2 w/ UCX 4.1 Unable to make contact with cluster alias
Solution:
The solution was to update the cluster lock name before
requesting it, in case multiple ARP-based cluster aliases
are in simultaneous use.
Reference:
PTR 70-5-773
ECO AN 31-AUG-1998 Alpha and VAX
Images:
UCX$BGDRIVER.EXE UCX V4.1-12AN
UCX$INETACP.EXE UCX V4.1-12AN
Problem:
UCX 4.1 ECO8 VMS 7.1 MBUF Large Buffer leak; around 180 DATA
type buffers are lost each day. Same IPMT as CFS.55196 case.
Solution:
Free the mbuf chain in the paths in tcp_usrreq() that were found
which could allow mbufs to leak.
Reference:
PTR 70-5-668
ECO AO 9-NOV-1998 Alpha V7.1 only
Images:
UCX$BGDRIVER_SEC.EXE UCX V4.1-12AO
Problem:
Errors occur when building the security driver,
UCX$BGDRIVER_SEC.EXE. Need a procedure and/or
fix to avoid these errors.
Solution:
Problem was found in UCX$BGDRIVER_PA_V70_SEC.OPT
This file was modified to correct the problem.
Reference:
PTR 70-5-246
ECO AP 1-DEC-1998 Alpha and VAX
Sources:
--None--
Images:
UCX$BGDRIVER_SEC.EXE UCX V4.1-12AP
Problem:
Errors still occur when building the security
driver, UCX$BGDRIVER_SEC.EXE. Need a procedure
and/or fix to avoid these errors.
Solution:
Changed ipforward_rt and iproute to IPFORWARD_RT
and IPROUTE (lower case to upper case) in the
second location of UCX$BGDRIVER_PA_V70_SEC.OPT.
The first attempt at this fix (70-5-246) only
changed the first location to upper case.
Reference:
PTR 30-2-564
PTR 70-5-246
ECO AQ 3-DEC-1998 Alpha and VAX
Images:
UCX$INETACP.EXE UCX V4.1-12AQ
Problem:
When a node is configured as a cluster alias, UCX$FTPD server
process does not shut down as it should after some specified
period of idleness. This results in very large UCX$FTPD.LOG
log files.
Solution:
Make timer identifiers non-zero, and unique, so that
cancelling one timer will not cancel all timers.
Reference:
PTR 70-5-901 (CFS.63677, TKTBA4813)
ECO AR 11-DEC-1998 Alpha and VAX
Sources:
-NONE-
Images:
UCX$BGDRIVER.EXE UCX V4.1-12AR
Problem:
Frequent system crashes with heap corruption due to bad
handling of ip fragments that are received with partial tcp
headers.
Solution:
Correctly handle these types of fragments.
Reference:
PTR 70-5-908 (CFS.63957, BCSMB0MQT)
PTR 30-2-566
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 INETDRIVER Images
---------------------------------------------------------------------------
ECO 5 updates:
--------------
ECO A 21-APR-1997 Alpha and VAX
Image:
UCX$INETDRIVER.EXE UCX V4.1-12A
Problem:
Multiprocessor performance problems.
Solution:
Implement a stack lookaside list to reduce variable
pool allocations.
References:
CFS.50024.
ECO 7 updates:
--------------
ECO B 16-Sep-1997 Alpha and VAX
Images:
UCX$INETDRIVER.EXE UCX V4.1-12B
Problem:
Recent versions of the INETDRIVER would not load
on the Alpha platform.
Solution:
Modify a PSECT as well as the Linker .OPT file.
References:
CFS.52874
ECO 9 updates:
--------------
ECO C 09-FEB-1998 Alpha and VAX
Image:
UCX$INETDRIVER.EXE UCX V4.1-12C
Problem:
I/O cancel does not return the OpenVMS error
SS$_CANCEL as does the TGV INETDRIVER.
Solution:
Added a macro to all return code translations to check
for a valid UNIX exit code and, in the absence of one,
return the OpenVMS error code. This code should
address any problems with unusual exit codes.
References:
None.
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 IPC Images
---------------------------------------------------------------------------
ECO 5 updates:
--------------
ECO A 1-JAN-1997 Alpha and VAX
Image:
UCX$IPC_SHR.EXE UCX V4.1-12A
Problem:
Socket library routines used event flags
allocated by LIB$GET_EF to someone else.
Solution:
This problem resulted from a build problem
wherein LIB$GET_EF was being included in object
form rather than being called in LIBRTL.
Corrected the options file.
Reference:
CFS.47810
ECO 10 updates:
---------------
ECO B 28-MAY-1998 Alpha only
Images:
UCX$IPC_SHR.EXE UCX V4.1-12B
Problem:
gethostbyname() incorrectly errors when AFR is enabled.
Alignment faults appear from inside gethostbyname.
Solution:
Fixing the source of the alignment faults would likely
require modifying the database format, which is not feasible
to do in an ECO and could be very risky. (Alignment faults
are only a performance issue, their occurrence should not
break any functionality.) Rather, we corrected the malformed
code to properly revert the LIB$SIG_TO_RET exception handler
in ucx$gethostbyname() prior to its calling into the
UCX$ACCESS_SHR.EXE library where the alignment faults
occur.
Reference:
PTR 30-1-672, PTR 30-1-245
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 Telnet Images
---------------------------------------------------------------------------
ECO 2 updates:
--------------
ECO A 16-AUG-1996 Alpha and VAX
Image:
UCX$TNDRIVER.EXE UCX V4.1-12A
UCX$TELNET.EXE UCX V4.1-12A
Problem:
An outbound TELNET device stoped working if unsolicited
input was received from the network.
Solution:
Set UCB$M_TT_NOLOGINS in UCB$W_DEVSTS to dismiss
unsolicited terminal input, leaving the device in a useful
state. Sense UCB$V_TEL_OUTBOUND in TN$RLOGIN_TIMER and
dismiss the disconnect.
Reference:
CFS.42083
Problem:
Output escape sequences are incorrect when function keys
are held down.
Solution:
Limit the number of outstanding characters in the local
buffer to half the buffer's size. This solution prevents local
overflow and limits the number of outstanding bytes against
the remote host.
Reference:
CFS.3895
Problem:
Applications performing I/O against an outbound TELNET UCB
did not know that the connection was lost.
Solution:
After connection loss, outbound TELNET sessions are still
capable of processing I/O operations even though nothing
happens. When the connection is broken, the application
is notified with SS$_HANGUP *if and only if* there are IRPs
pending against the UCB. If no IRPs are queued, the
application is not notified. In addition, any applications
that begin I/O after the connection is broken do not get
any error even though their data goes unprocessed.
To solve this problem, the device is turned OFFLINE after
the class driver is notified of a disconnection from the
network. This action will reject any I/O operations that occur
after the connection has been broken.
Reference:
CFS.42083
Problem:
Line mode does not work properly; the sessions appear to hang.
Solution:
The previously applied optimization has been conditionalized so
as to be used only when in character mode.
Reference:
CFS.43831, CFS.44575, CFS.45061, CFS.45329
ECO 3 updates:
--------------
ECO B 07-NOV-1996 Alpha and VAX
Images:
UCX$TELNET.EXE UCX V4.1-12B
Problem:
In character mode, certain escape character sequences are
not passed through the connection unless it is in PASTHRU
(old style) mode.
Solution:
Clearing the terminal characteristic TT2$M_EDITING when in
character input mode allows the various special escape
sequences to be read instead of being translated into their
character equivalent.
References:
CFS.45350
ECO C 04-DEC-1996 Alpha and VAX
Images:
UCX$TELNET.EXE UCX V4.1-12C
UCX$TNDRIVER.EXE UCX V4.1-12C
Problems:
1. TN devices remain because of ECO A.
2. F6 and F10 keys are not passed through TELNET client.
3. Problems with the client's keystrokes and line mode.
4. Problem restoring appropriate settings after spawning.
5. Problem resuming *busy* sessions after escaping TELNET
client.
Solutions:
1. Clear ONLINE only for OUTBOUND connections. This is not
a problem because the only option available at that time
is to DELETE the session.
2. Turn off TT2$M_EDITING in the terminal settings.
3. Turn off ESCAPE mode and remove the multicharacter optimization.
4. Limit the changes through SMG to only those settings that
are changed by the client.
5. If the pending output buffer exceeds the saved prompt buffer
size, do not save the output.
References:
1. CFS.46472, CFS.46478, CFS.46574, CFS.46666, CFS.46930
2. CFS.45350, CFS.45574
3. CFS.45329, CFS.45662
4. CFS.45372
5. CFS.45372
ECO D 04-DEC-1996 Alpha and VAX
Image:
UCX$TNDRIVER.EXE UCX V4.1-12D
Problem:
A proxy login could be circumvented by sending unsolicited
data through the socket before LOGINOUT had a chance to
run. All logins are expected to be under the control of
the TNDRIVER but did not appear to be.
Solution:
When creating the TN device, set UCB$M_JOB in UCB$x_DEVSTS.
This makes the terminal driver believe that a login is in
progress so it discards the data and echoes a BELL. When
RLOGIN PROXY succeeds in the INETACP, the appropriate
automatic login occurs as expected. If the proxy check
fails (i.e., there is no valid proxy for this connection),
the normal login mechanism clears UCB$M_JOB before telling the
terminal driver to start the login.
Reference:
CFS.46504
ECO 6 updates:
--------------
ECO E 16-Apr-1997 Alpha and VAX
Images:
UCX$TNDRIVER.EXE UCX V4.1-12E
Problem:
VAX System crash in OpenVMS routine
IOC_STD$SEVER_UCB called from IOC_STD$DELETE_UCB.
At the time of crash, the queue of TN UCBs, headed at
UCX$TNDRIVER static queuehead, TN$L_FLNK_UCB is corrupt.
Solution:
Introduced code prior to the INSQUE to verify that the
given element is not already on the queue. If it is,
the INSQUE becomes a NOP.
References:
CFS.50220
ECO 9 updates:
--------------
ECO F 29-JAN-1998 Alpha and VAX
Image:
UCX$TNDRIVER.EXE UCX V4.1-12F
Problem:
System crashed in OpenVMS routine EXE$TIMEOUT
while servicing a corrupt fork and wait queue.
Solution:
The problem occurred because of several factors, the most
important of which is that OpenVMS changed the value of the
name of a bit position in a TTY UCB (such as a TNDRIVER UCB)
in OpenVMS V6.2.
In particular, symbol TTY$V_FD_BUSY was defined as bit
8 in OpenVMS versions prior to V6.2, and it was
re-defined to be bit 10 in V6.2.
The TNDRIVER distributed for all VAX platforms uses the
old definition. For Alpha platforms running OpenVMS V6.2,
the TNDRIVER built for V6.1 uses the old definition.
The result is that the wrong bit is being tested on systems
where the definitions are not synchronized.
The solution was to devise a new test of the condition
that works on all platforms.
References:
CFS.52568.
ECO 10 updates:
---------------
ECO G 5-MAY-1998 Alpha and VAX
Images:
UCX$TELNET.EXE UCX V4.1-12G
Problem:
OpenVMS Operating Sy V6.2 UCX V PRIORITY 3 REFER Q15732
SECURITY PROBLEM
Using the FIND key in TN3270 after connecting to an IBM
system will grant the user OPER privilege in DCL subprocess
back on the VMS host.)
Solution:
Change STESCRKBD.B32::SPAWN(), wrapping its LIB$SPAWN() call
with calls to the reset_privs() routine introduced in 1995,
similar to how TELNET$SPAWN() now works.
Reference:
None.
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 SNMP Images
---------------------------------------------------------------------------
ECO 5 updates:
--------------
ECO A 3-MAR-1997 Alpha and VAX
Image:
UCX$OS_MIBS.EXE UCX V4.1-12A
Problem:
The SNMP Master Agent failed and exited with an access violation.
Solution:
Disabled approprite conditionalized code.
Reference:
CFS.44123
Problem:
The OS_MIBS subagent was generating some unknown adapter
type errors when used in a system that has a DEFQA FDDI
board.
Solution:
Added the DEFQA adapter to the list of supported adapters.
Reference:
CFS.49549.
ECO 7 Updates
-------------
ECO B 19-AUG-1997 VAX and Alpha
Image:
UCX$MOSY.EXE UCX V4.1-12B
Problem:
Mosy would not allow a source file with extension
other than .MY.
Solution:
Remove the extension and replace with .DEFS for any
extension.
Image:
UCX$MIBCOMP.EXE UCX V4.1-12B
Problem:
MIBCOMP would not preserve case of object name
when passing to Mosy.
Solution:
Quote object name in system call to Mosy.
Reference:
CFS.51627.
Images:
UCX$SNMP_SERVER.EXE UCX V4.1-12B
UCX$ESNMP_SHR.EXE UCX V4.1-12B
Problem:
User found 10-second maximum timeout to be too short.
Solution:
Increase maximum to 60 seconds.
References:
CFS.52680.
Image:
UCX$ESNMP_SERVER.EXE UCX V4.1-12B
Problem:
Master was not sending traps.
Solution:
Corrected a bug that was causing authentication failure.
References:
CFS.51266, CFS.52682, CFS.51842.
ECO 9 updates:
--------------
ECO C 22-JAN-1998 Alpha and VAX
Images:
UCX$SNMPIVP.EXE UCX V4.1-12C
Problem:
Non-initialization of status variable for
snmp_request() routine.
Solution:
Corrected.
Reference:
PTR 30-3-77.
Images:
UCX$OS_MIBS.EXE UCX V4.1-12C
Problem:
The display of physical address for interface group
(OID 1.3.6.1.2.1.2.2.1.6) was incorrect:
- First two bytes incorrect, correct bytes start
at third position, then last 2 are not displayed.
- Wrong address for display, either mismatched,
or in case of LO0, address displayed when none
should be (exact problem depended on number of
interfaces).
Solution:
Correction to string cmp routines that determined match of
address to interface name in table read. Also copy of physical
address from QIO data structure to application structure.
Reference:
PTR 30-1-571
Problem:
Display of incorrect next hop
(OID 1.3.6.1.2.14.21.1.7), often as 0.0.0.0.
Solution:
Change to copy correct data from QIO data structure.
Reference:
PTR 30-2-509.
Problem:
In-code documentation added for unfinished
CIDR change.
Solution:
Corrected.
Reference:
None.
Image:
UCX$ESNMP_SHR.EXE UCX V4.1-12C
Problem:
The shridmismat error for applications linked with
previous version ofthe ucx$esnmp_shr.exe.
Solution:
Inserted GSMATCH=lequal,a,b into options file, where
a,b match the values inserted by the linker for the
base version of UCX V4.1.
Reference:
None.
Images:
UCX$ESNMP_SHR.EXE UCX V4.1-12C
Problem:
Function missing from shareable image for API: inst2ip().
Solution:
For Alpha: Add SYMBOL_VECTOR to link options file.
For VAX: Add VECTOR to macro file.
Reference:
None.
ECO D 17-FEB-1998 Alpha and VAX
Image:
UCX$ESNMP_SERVER.EXE UCX V4.1-12D
SYS$SYSTEM:UCX$OS_MIBS.EXE UCX V4.1-12D
SYS$SYSTEM:UCX$HR_MIB.EXE UCX V4.1-12D
Problem:
Incorrect MIB variable reporting, counts for if group.
Solution:
Needed alignment in header file.
Reference:
PTR 30-2-377
ECO 10 updates:
---------------
ECO E 21-MAY-1998 Alpha and VAX
Images:
SYS$SYSTEM:UCX$CHESS_SUBAGENT.EXE UCX V4.1-12E
Problem:
Chess sub-agent example is linked unnecessarily against
ucx$access_shr.exe and ucx$ipc_shr.exe. No effect on UCX V4.2
but good to send out an updated example for users to test
interoperability against V5.0.
Solution:
Remove link of those shareables in the .opt files for Chess
example.
Reference:
None
ECO F 27-MAY-1998 Alpha and VAX
Images:
UCX$OS_MIBS.EXE UCX V4.1-12F
Problem:
Inaccurate counts for ifTable data elements.
Solution:
Use values from qio call adapted from lancp code (VMS V7.1)
(DCL command: mcr lancp show device/counters)
Reference:
PTR 30-1-789
Problem:
MIB-II subagent aborts if system has pseudo-interface
configured.
Solution:
Correct clearing out of buffer area. Also, include
interface name in error message for easier debugging.
Reference:
PTR 30-1-688.
ECO G 7-OCT-1998 Alpha and VAX
Images:
SYS$SYSTEM:UCX$HR_MIB.EXE UCX V4.1-12G
SYS$SYSTEM:UCX$OS_MIBS.EXE UCX V4.1-12G
Problem:
Code for consistency with V5.
Checking 64-bit counters; likely never implemented unless
4.x build to be done on 7.2 Alpha (otherwise #ifdef'ed out)
Solution:
For 64-bit counts, check architecture and VMS version,
adjust qiow parameter accordingly. Add routine to check VMS
version at run-time.
Reference:
PTR 30-3-127
Images:
SYS$SYSTEM:UCX$CHESS_SUBAGENT.EXE UCX V4.1-12G
SYS$SYSTEM:UCX$HR_MIB.EXE UCX V4.1-12G
SYS$SYSTEM:UCX$OS_MIBS.EXE UCX V4.1-12G
Problem:
Fix for ECO C 19-May "robustness". After unsuccessful close
was still just trying to re-open, got dupl...
Solution:
See under ECO C 19-MAY-1998 for more details.
Reference:
PTR 30-2-534
Images:
SYS$SYSTEM:UCX$HR_MIB.EXE UCX V4.1-12G
SYS$SYSTEM:UCX$OS_MIBS.EXE UCX V4.1-12G
Problem:
SNMP cannot handle display of large number (>700) sockets...
Solution:
Change data structure to QIO.
Reference:
UCX note #6390
Images:
SYS$SYSTEM:UCX$CHESS_SUBAGENT.EXE UCX V4.1-12G
SYS$SYSTEM:UCX$HR_MIB.EXE UCX V4.1-12G
SYS$SYSTEM:UCX$OS_MIBS.EXE UCX V4.1-12G
Sources:
SYS$COMMON:[SYSHLP.EXAMPLES.UCX]CHESS_METHOD.C
Problem:
Chess sub-agent aborts on SET of OID
1.3.6.1.4.1.36.2.15.2.99.4.1.4.4 to 3 (delete);
this was on VMS 6.2, DEC C 5.7-004, link with UCX$SNMP:ESNMP.OLB
Solution:
An element of "method" data structure was not getting initialized
within the calling code in esnmp_poll.c. Both the calling code
and the example were fixed. Error showed up only on certain plat-
forms and in link with .olb, not shareable; could be that under
certain conditions the problem struct element was getting
initialized to 0 by chance or because of architecture, DEC C
version, etc.
Reference:
UCX note #6453
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 SDA Images
---------------------------------------------------------------------------
ECO 9 updates:
--------------
ECO A 25-APR-1997 Alpha and VAX
Image:
UCX$SDA.EXE UCX V4.1-12A
Problem:
The memory display for large, dynamic buffers
is incorrect.
Solution:
The information shown was for the last small,
dynamic buffer that was displayed.
Reference:
Internal report.
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 Finger Images
---------------------------------------------------------------------------
ECO 2 updates:
--------------
ECO A 6-SEP-1996 Alpha and VAX
Image:
UCX$FINGER.EXE UCX V4.1-12A
Problem:
The Finger client passed an uppercase query instead of
lowercase and did not remove quotation marks around the query.
Solution:
Unless quotation marks are used, DCL always converts values to
uppercase. Now it checks for the presence of quotes and if
they exist, they are removed. If the query does not contain
quotation marks, it is converted to lower case.
Reference:
Internal report.
ECO B 18-SEP-1996 Alpha and VAX
Image:
UCX$FINGER.EXE UCX V4.1-12B
UCX$FINGER_SERVER.EXE UCX V4.1-12B
Problem:
Finger stops looking at system processes once it sees
a suspended process.
Solution:
Delete the lib$signal call via loop_error in the
SYS$GETJPIW loop.
ECO 5 updates:
--------------
ECO C 20-FEB-1997 Alpha and VAX
Images:
UCX$FINGER.EXE UCX V4.1-12C
UCX$FINGER_SERVER.EXE UCX V4.1-12C
Problem:
Finger was not handling set/restore
privileges correctly.
Solution:
Save original privileges then restore them.
Reference:
Internal report.
ECO D 14-APR-1997
Images:
UCX$FINGER.EXE UCX V4.1-12D
UCX$FINGER_SERVER.EXE UCX V4.1-12D
Problem:
The Finger client was exiting with an access violation on the
following syntax: "FINGER USERNAME /QUALIFIER".
Solution:
Improper check added nonexistent users to the tree.
ECO 6 updates:
--------------
ECO E 19-JUN-1997 Alpha and VAX
Images:
UCX$FINGER_SERVER.EXE
Problem:
The Finger server would not exit after handling a request.
Solution:
After request is handled, the socket is closed and the
descriptor set to -1. The code then checked for
a -1 and fell into a loop waiting for requests (as
though we were started without a socket). Changed
check for socketdesc == -1.
Reference:
None.
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 BIND Images
---------------------------------------------------------------------------
ECO 3 updates:
--------------
ECO A 27-NOV-1996 Alpha and VAX
Images:
UCX$ACCESS_SHR.EXE UCX V4.1-12A
Problem:
If one of the records that a given MX record points
to cannot be resolved, a UCX$ACCESS_GET_MX call
failed to return the rest of the list of records.
Solution:
The UCX$GET_MX code that insists on trying to resolve
a record has been changed. If ucx$get_hostbyname()
returns SS$_TIMEOUT, that record is skipped and the
code continues.
Reference:
CFS.33206, CFS.41627
ECO 5 updates:
--------------
ECO B 9-JAN-1997 Alpha and VAX
Image:
UCX$ACCESS_SHR.EXE UCX V4.1-12B
Problem:
Attempting to resolve a null (zero-length) hostname caused
an access violation because of a DEC C problem with generated
Alpha code overflowing into the 33rd bit when referencing
index =1 of an array. When done from the kernel, this can
lead to a loop or a lingering resource lock on the
UCX$HOST.DAT file.
Solution:
Make sure the length is greater than zero before
attempting to access the character at [length-1].
Reference:
CFS.45918
ECO C 17-JAN-1996 Alpha and VAX
Image:
UCX$METRIC.EXE UCX V4.1-12C
Problem:
The METRIC daemon process would hang after the first
load report.
Solution:
Eliminate a sleep(0) from the main loop.
This apparently can cause the process to sleep
forever in some cases.
Reference:
CFS.47535.
ECO 9 updates:
--------------
ECO E 19-DEC-1997 Alpha and VAX
Images:
UCX$ACCESS_SHR.EXE UCX V4.1-12C
Problem:
Absolete IQUERY calls need to be removed for
compatibility with other implementations.
Solution:
Replace the call to FindHostInfo that uses
IQUERY with GetHostByAddr().
Reference:
None.
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 BIND_SERVER Images
---------------------------------------------------------------------------
ECO 5 updates:
--------------
ECO A 23-DEC1996 Alpha and VAX
Image:
UCX$BIND_SERVER.EXE
Problem:
If RR ttl is set to less than 5 minutes, the server
reset the ttl of cached RR to 5 minutes.
Solution:
Change the min_cache_ttl to 0.
Reference:
CFS.47406
ECO B 17-FEB-1997 Alpha and VAX
Image:
UCX$BIND_SERVER.EXE UCX V4.1-12B
Problem:
Sometimes incorrect root nameservers on the list
prevented the resolution of nonauthoritative
names from working correctly.
Solution:
Check for incorrect root NS records.
Also update the NAMED.CA file in UCX$CONFIG.COM.
Reference:
Internal report.
ECO 9 updates:
--------------
ECO D 19-DEC-1997 Alpha and VAX
Images:
UCX$BIND_SERVER.EXE
Problem:
DNS fails to check for hostnames that contain spaces.
Solution:
Correct the dn_expand() to do some validation on the host
name.
Reference:
PTR 30-1-525.
ECO 10 updates:
--------------
ECO E 12-Mar-1998 Alpha and VAX
Images:
UCX$BIND_SERVER.EXE UCX V4.1-12E
Problem:
The name server sorts the response based on the subnet locale.
It shouldn't do that for cluster names.
Solution:
Fix ns_req() routine.
References:
PTR 30-1-694
PTR 70-5-694
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 PWIP Images
---------------------------------------------------------------------------
ECO 5 updates:
--------------
ECO A 16-JAN-1997 Alpha and VAX
Image:
UCX$PWIPACP.EXE UCX V4.1-12A
UCX$PWIPDRIVER.EXE UCX V4.1-12A
Problem:
UDP was allowed only on ports 137 and 138.
Solution:
In order to allow UDP over all
port numbers, several things were done including
simplifying special case of port specific code that
retrieves the peer IP address from either the
global name_server_sockaddr_in or the global
datagram_server_sockaddr_in, to instead obtain the
information from the new passed parameter,
and simplifying UDP special case port specific code that
passed either name_server_sockaddr_in or
name_server_sockaddr_in in IRP$L_ARG4 to now
always pass server_sockaddr_in.
Reference:
Internal development request.
Problem:
Multiple chained UDP datagrams were passed back to
the user collectively rather than one by one.
Solution:
To force individual UDP datagrams to be sent to the
user level, one at a time, the interface to pwip_read
was changed and it no longer passes back any value.
Instead, it calls msgToUser itself each time it
develops an mblk_t that describes a single UDP datagram.
Reference:
CFS.42878.
ECO B 28-JAN-1997 Alpha and VAX
Image:
UCX$PWIPACP.EXE UCX V4.1-12B
Problem:
Unnecessary error messages in PWIP log caused
user concern.
Solution:
Removed generation of messages added in V4.0
that contain "IO$M_SHUTDOWN error" string.
These messages were included at the same time that
corrective code was added to deal with synchronization
problems. The appearance of the messages in the log file
document when the corrective code was invoked
redundantly and do not really indicate an error.
Therefore, they were removed.
Reference:
CFS.47933.
ECO C 30-MAY-1997 Alpha and VAX
Images:
UCX$PWIPACP.EXE UCX V4.1-12C
UCX$PWIPDRIVER.EXE UCX V4.1-12C
Problem:
ECO B was discovered to have problems interacting
with some releases of PATHWORKS. Symptoms included
network freezes and system lockups.
Solution:
For this release, the PWIP component has been rolled
back to base level for 4.1. A more complete solution
incorporating the changes of the previous ECOs should
be forthcoming.
Reference:
Internal reports.
ECO 6 updates:
-------------
ECO D 20-JUN-1997 Alpha and VAX
Images:
UCX$PWIPACP.EXE UCX V4.1-12D
UCX$PWIPDRIVER.EXE UCX V4.1-12D
UCX$PWIPSHUT.EXE UCX V4.1-12D
Problem:
A more complete solution for problems discovered
in the ECO B release was needed, which also
included the added features of ECOs A and B.
Solution:
Selected portions of previous changes were backed
out. A hybrid approach has been used to maintain
compatibility with earlier implementations while
adding newer desired functionality.
Problem:
Some memory leakage was detected under error
conditions.
Solution:
Deallocate mblk as appropriate in error path.
Reference:
None.
ECO 9 updates:
--------------
ECO E 22-JAN-1998 Alpha and VAX
Image:
UCX$PWIPACP.EXE UCX V4.1-12E
Problem:
Several different symptoms, including crashes,
memory corruption, loss of PWIP connections, and so on.
Solution:
A variable in routine getChan() was incorrectly
declared to be static. The result was that
if the routine was ever entered simultaneously
(such as in normal mode and in an AST), data could be
corrupted. This problem went undetected until the
latest release of PATHWORKS. With older versions,
conditions were such that the routine was never entered
simultaneously. However, the new release of PATHWORKS
has a different set of calls into PWIP and the problem was
uncovered. The solution was to make the variable a normal
automatic variable.
Reference:
Many reports.
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 UCP Images
---------------------------------------------------------------------------
ECO 3 updates:
--------------
ECO A 20-NOV-1996 Alpha and VAX
Image:
UCX$UCP.EXE UCX V4.1-12A
Problem:
The /REJECT and /ACCEPT lists from communication
configuration were not taken upon startup.
Solution:
In the START COMM/INIT action routine, set dynamic
communication options AFTER the communication
has been started instead of before.
Reference:
Internal report.
ECO 7 Updates
-------------
ECO B 19-JUN-1997 Alpha and VAX
Images:
UCX$UCP.EXE UCX V4.1-12B
Problem:
If the user does not have SYSLCK privilege,
REMOVE PROXY command removes the permanent proxy
but fails to modify active client proxy.
In both ADD and REMOVE, there were several iterations
of the problem.
Solution:
Check for SYSLCK privileges before adding or deleting
any proxy information. If the user does not have all the
required privileges, do not modify anything but display
the appropriate error message(s).
References:
CFS.46875, CFS.46875
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 BOOTP and TFTP Images
---------------------------------------------------------------------------
ECO 3 updates:
--------------
ECO A 23-OCT-1996 Alpha and VAX
Image:
UCX$TFTP.EXE UCX V4.1-12A
Problem:
The TFTP server pads the last 512 byte record with nulls on
octet-mode transfers when the source file has a short
(< 512 bytes) last record.
Solution:
When the file is opened, read the file size in bytes and
calculate the EOF byte. Check for EOF when reading the file,
and ask only for partial last block.
Reference:
CFS.44865.
ECO C 10-SEP-1996 Alpha and VAX
Image:
UCX$BOOTP.EXE UCX V4.1-12C
Problems:
BOOTP responded with incorrect IP address in the case of
more than 1 Ethernet systems.
Solutions:
Modified get_iproute() function. Pass network mask
of the iptarget to get_iproute(). Isolate subnet
of the iptarget by Anding iptarget with it's network
mask. Scan the routing table for a routing record
that matches subnet. Check for default route. If
it is not a default route, check to determine if it is a
host route. If not, check to see if it is
a network route.
References:
CFS.42642
ECO 5 updates:
--------------
ECO E 11-APR-1997 Alpha and VAX
Image:
UCX$TFTP.EXE UCX V4.1-12E
Problems:
1. Concurrent downloads do not work.
2. Concurrent transfers did not work correctly.
3. On slower systems, the TFTP would not work
correctly when it initially starts up.
Solutions:
1. FileByteCount updates have been corrected.
2. The loop that does the concurrent transfers was
missing a statement to go to the next transfer.
Once corrected, everything started working.
3. Change the scheduling mechanism. Now new tasks are
appended to the list so that they are served FIFO.
The algorithm checks the timeout and if less than
minimum, it doesn't start another transfer to the same
client.
References:
CFS.49535, CFS.49605.
ECO 9 updates:
--------------
ECO F 04-FEB-1998 Alpha and VAX
Image:
UCX$BOOTP.EXE UCX V4.1-12F
Problems:
BOOTP replies with the wrong server address on a
multiple interface host.
Solutions:
Correct a problem in the subnet_match() routine. Pass subnet
mask of the BOOTP client to subnet_match(). The responding
interface must be in the same subnet as the BOOTP client.
References:
CFS.54174.
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 FTP Images
---------------------------------------------------------------------------
ECO 5 updates:
--------------
ECO A 10-OCT-1996 Alpha and VAX
Image:
UCX$FTP.EXE
Problem:
When wild cards are used to specify the file name
for an mget command, the local file specification
was missing the extension.
Solution:
Corrected.
Reference:
CFS.45570
ECO B 20-JAN-1997 Alpha and VAX
Image:
UCX$FTP.EXE UCX V4.1-12B
Problem:
The default directory cannot include a network access
string.
Solution:
Allow client to include quotes in the default string.
Modify the server to make NAS part of the device string.
References:
CFS.46497.
ECO C 10-APR-1997
ECO D 24-APR-1997 Alpha and VAX
Image:
UCX$FTP.EXE UCX V4.1-12D
Problems:
1. Commands read from the file specified with the
/INPUT qualifier were not treated as "batch mode"
commands.
2. Wildcarded PUTs did not pass the target specification.
3. The PUT/FDL command failed if the filename included
a version (such is the case with PUT/FDL *.*;*).
4. Verbose messages were displayed by COPY/FTP when not
asked for.
5. Multiline responses could hang the client.
6. Improper handling of the target specification occurred
when wildcarding files.
7. RECV creates files named ".;".
Solutions:
1. Treat all commands that are not read from the
terminal as "batch mode" commands.
2. Add another parameter to wldcrd_put_process() to pass
the information.
3. Merge the "fdl" name modification into the type field
of the file specification; don't just append it to
the name.
4. Remove the unconditional display of the reply status.
5. Ensure that FTP client adheres to RFC 959's definition
of multiline response mode.
6. Treat the target specification has the directory specification
(only) when the input is wildcarded.
7. When receiving files, merge the local name into the
string or the file received appears as ".;".
References:
CFS.44662, CFS.49881, CFS.47027, CFS.49553, CFS.50890.
ECO E 28-May-1997 VAX and Alpha
Image:
UCX$FTP.EXE UCX V4.1-12E
Problems:
1. Prompting was not working when mget-ing or mput-ing
files; e.g. answering 'y' caused all subsequent files
to be copied without any further prompting. When
multicharacter replies (e.g.: "Yes"") were typed in,
each character was interpreted as a separate answer.
2. "Literal" wildcard characters and multiple dots in
remote file specs did not work correctly when GETing
and PUTing files.
3. Wildcard substitution in target specification did not work as
intended (problems with get and copy /FTP).
4. Copy /FTP caused an access violation by performing an unnecessary
CWD /.
5. /INPUT files were opened with write access, as shown
by a privilege error generated when the protection code
of the file did not allow write access.
6. There were a number of reported problems with processing
remote and local OpenVMS logical names in file specifications when
PUT/GETing files or using copy /FTP.
7. In non-VMS-Plus mode, parseable remote names resulted in
incorrect local file names (e.g.: the name of the temp
file used to store the NLST results).
Solutions:
1. Changed wildcard_[get,put]_process() to use a local copy
of cnfrmflg (tcnfrm), rather than permanently altering
the global. Increased the buffer size used for prompting.
This corrects reading 'extra' reply characters if multiple
character answers are typed in.
2. Corrected recv_data() to always call ConvertFilenameToVMS().
Corrected a number of subtle problems in
ConvertFilenameToVMS(). Added new macro ftp_isvalidfnamec_().
- Changed FTP$GET() in ftp$client_cmds.c to call
wldcrd_get_process() only if "wild chars" found,
_and_ (parse) [i.e., globbing].
- Changed FTP$PUT() in ftp$client_cmds.c to allow
wildcard characters in the remote filename, if globbing
(i.e. wildcard expansion) is off.
3. Corrected wildcard expansion in wldcrd_get_process(). If
the local file spec contained a wild card, the entire
remote specification, including the node, device, and directory
was substituted from the wildcard onward. Now every remote
file specification is SYS$PARSED with syntax check option, and
only the file extension and revision number are used as
substitutes for the wild card(s).
4. In the DCL_Copy_Command() function, checking [length-1]
on a zero length string resulted in checking the byte
BEFORE the char string's starting address. About 10
lines of code was rewritten.
5. Corrected freopen() on /input file to use "r" instead
of "r+".
6. Changed FTP$GET() to always SYS$PARSE() with syntax check
only.
7. In wldcrd_get_process() use the RMS 'name' block attached
to file_fab when SYS$PARSE -ing NOT the one attached to
the local fab. Corrected bug in same where remote file names
containing wildcard characters caused subsequent files
to get an incorrect name. Corrected problem where the
user could not specify the target name of files containing
wild card characters.
References:
CFS.47029, CFS.44883, CFS.48738, CFS.47246, CFS.48680,
CFS.49553, CFS.51498, CFS.50203.
ECO 6 updates:
-------------
ECO F 18-JUN-1997 VAX and ALPHA
Image:
UCX$FTP.EXE UCX V4.1-12F
Problems:
1. COPY/FTP could not handle non-OpenVMS directory path formats.
2. Double /incorrect messages observed when PUTing a local,
locked file.
3. USER xxx yyy (where xxx is username and yyy is password) no longer
worked in /input command files.
Solutions:
1. Reworked the DCL_Copy_Command() function to enable
the use FTP/copy with non-Open VMS servers. Note that
non-OpenVMS directory specifications do have to be enclosed
in double quotation marks.
2. Added an extra SYS$PARSE in wldcrd_get_process() when
parsing remote to local file spec. Made minor changes to
getreply() to ensure the software always returns a status.
Added an 'early' sys$open attempt in wldcrd_put_process(), and
FTP$PUT() to do an early open of the local file so that
locked file is detected, prevents the sending of the
STOR command, opening a data channel, etc. on such files.
3. Enhanced login_prompt() so that it can deal with USER
xxx yyy passed on the same line in an /input file, while
preserving all conceivable other legacy behaviors (with
or without the USER keyword, username / password on the
same, or separate lines).
References:
CFS.48680, CFS.44943, CFS.51434.
ECO 7 Updates
-------------
ECO H 18-SEP-1997 Alpha and VAX
Images:
UCX$FTP.EXE UCX V4.1-12H
UCX$FTPC.EXE UCX V4.1-12H
UCX$FTPD.EXE UCX V4.1-12H
Problem:
The "Get node::file" does not work.
Solution:
Use SYS$OPEN instead.
Reference:
CFS.52398.
Problem:
PUT/FDL does not work to another UCX system.
Code to switch out of VMS-Plus mode had been removed.
Solution:
The code was replaced.
Reference:
CFS.52822.
Problem:
MRS field not sent in .FDL file. A previous change
caused LRL to be sent instead of MRS.
Solution:
The change has been removed.
Reference:
CFS.52822.
Problem:
It was possible to simultaneously be in VMS and VMS
Plus modes. This caused the "DIR" command to be
equivalent to "DIR/FULL." The correction for this
problem is what caused PUT/FDL to break.
Solution:
Do not allow the two to be set at once.
Reference:
CFS.52822.
Problem:
PUT/FDL file.typ;ver fails with incorrect filespec
when strncpy does not null-terminate the output
string.
Solution:
Explicitly null-terminate the output string.
Reference:
CFS.52822.
Problem:
PUT/FDL puts incorrect name in FDL file. In the case
of "PUT/FDL a.b c.d", "c.d" was inserted as the
filename.
Solution:
Distinguish between VMS-Plus mode and PUT/FDL. In
the former case, the output file should be the
name. In the latter case, the input file.
Reference:
CFS.52822.
Problem:
Get from magtape with large blocksize breaks. Code
used wndsiz as FAB$W_USZ. When the blocksize was
larger than wndsiz, a data overrun occurred.
Solution:
Use the entire buffer size, which is now fixed at 64k.
Reference:
CFS.52862.
ECO 8 Updates
-------------
ECO I 31-OCT-1997 Alpha and VAX
IMAGES:
UCX$FTP.EXE UCX V4.1-12I
Problem:
The loop which parsed the list of filenames
would return a CLI$_ABSENT. This status is a
warning and since the default ERRORLEVEL is
SUCCESS, FTP would exit when a PUT or GET was
performed if the command came from a command
procedure or batch job.
Solution:
Return FTP$_NORMAL from these routines.
Reference:
None.
ECO 9 updates:
--------------
ECO K 05-FEB-1998 Alpha and VAX
Image:
UCX$FTP.EXE UCX V4.1-12K
Problem:
The FTP initialization file FTPINIT.INI is not used
when FTP executes in batch mode.
Solution:
Correct the code path to place the FTP initialization
into the common path independent of whether the FTP
client is executing on a DC$_TERM.
Reference:
PTR 30-1-605, CFS.55947.
ECO L 05-FEB-1998 Alpha and VAX
Image:
UCX$FTP.EXE UCX V4.1-12L
Problem:
Internal problems caused by the presence of the
FTPINIT.INI file. The DCL command line is lost
if the file exists.
Solution:
Process the initialization file only after having
parsed the command line.
Reference:
Internal testing.
ECO M 05-FEB-1998 Alpha and VAX
Image:
UCX$FTP.EXE UCX V4.1-1M
Problem:
If the local source file of the COPY/FTP command
does not exist (or an error signaled), that error
is not returned to DCL for examination of $STATUS.
Solution:
Examination of the code revealed that the status
FTP$_NORMAL is always being returned by the central
FTP PUT routine, even after it signals the error.
In addition, it does not signal the error in typical
FTP fashion.
The code has been modified to signal an appropriate
error and to return an error indication to DCL.
Reference:
PTR 30-1-618, CFS.56104.
ECO 10 updates:
---------------
ECO N 09-FEB-1998 Alpha and VAX
Image:
UCX$FTP.EXE UCX V4.1-12N
Problem:
The PUT command send an unwildcarded file in its
uppercase OpenVMS format, which is not acceptable for UNIX
systems.
Solution:
When the responsibility for uppercasing moved to the
caller of the common 'put' routine, the appropriate
code needed in the unwildcarded put routine was
never implemented. The file's name from the NAM
block is now lowercased if the connection is not in
VMS-Plus mode and uppercase enforcement is disabled.
Reference:
CFS.55993 (PTR 30-1-609).
ECO O 25-JUN-1998 Alpha and VAX
Images:
UCX$FTP.EXE UCX V4.1-12O
Problem:
FTP will not allow one to output results from DIR/OUT to a
directory owned by an identifier when DISKQUOTAs are enabled
on the volume.
Solution:
In dir_lst_rqst(), do not use FAB$M_TMP flag when creating
user-specified DIR/OUT file, and no longer SYS$ENTER() it.
Reference:
PTR 30-1-733
ECO P 10-AUG-1998 Alpha and VAX
Images:
UCX$FTP.EXE UCX V4.1-12P
Problem:
FTP: 'Directory/FTP' output wrongly displayed when filename
sizes are 20 characters (names are concatenated)
Solution:
Add one space to enforce at least one blank between columns.
Reference:
PTR 70-5-756
ECO Q 11-AUG-98 Alpha and VAX
Images:
UCX$FTP.EXE UCX V4.1-12Q
Problem:
FTP: Client command 'user username password' no longer works
in a DCL procedure file.
FTP: user xxx yyyy (xxx is username, yyy is password) is not
working in FTP command procedure.
Solution:
The fix was ported from a V5 fix.
Change ftp$prompt() to check the variable fromatty rather than
stdin_specified to determine when to use C I/O and when to
use SMG. Modified login_prompt() to accept input that is not
from a proper terminal by testing both stdin_specified and
fromatty.
Reference:
PTR 70-5-531, PTR 70-5-775
ECO R 25-AUG-98 Alpha and VAX
Images:
UCX$FTP.EXE UCX V4.1-12R
Problem:
FTP: in batch mode fails to set $status to error
Solution:
Port from 5.0. Change in ftpget and ftpput.
Reference:
PTR 70-5-689
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 FTPD Images
---------------------------------------------------------------------------
ECO 5 updates:
--------------
ECO A 04-OCT-1996 Alpha and VAX
Image:
UCX$FTPC.EXE UCX V4.1-12A
Problem:
Memory creep occurred when ls and dir commands were issued.
Repeated FTP ls and dir commands used virtual memory
and did not return it until the FTP connection was
broken and the server child process exited.
Solution:
Ensure LIB$FREE_VM is called with the same memory
address as LIB$GET_VM.
Remove some calls to malloc() and alloc() that lead
to large memory creep.
Reference:
CFS.45158.
ECO B 07-NOV-1996 Alpha and VAX
Image:
UCX$FTPC.EXE UCX V4.1-12B
Problem:
Structure record is not supported in image mode.
Solution:
Added the support for File type Image and
Structure Record to send_normal_bin().
Also added support function doubleFF().
Reference:
CFS.29927.
ECO C 10-APR-1997
ECO D 24-APR-1997 Alpha and VAX
Images:
UCX$FTPC.EXE UCX V4.1-12D
UCX$FTPD.EXE UCX V4.1-12D
Problems:
1. The CWD command does not accept a network access
string.
2. Lines in directory listings are terminated
incorrectly.
3. UNIX-formatted specifications are not translated
correctly.
4. Latent problem with anonymous access determined
from code review.
5. Auditing does not show actual file specifications;
it shows only what the user specified.
6. Problems with rmd() [delete directory]
specifications.
7. Problems with mkd() [create directory]
specifications.
8. Correct misspellings.
9. Several operations return errors but do not tell
why the operation failed.
10. STOU (store unique) creates bizarre file names
that are not unique for the given time period.
11. Loss of channels and mishandling of file
specifications.
12. The "SITE HELP" command generates a multiline
response even if disabled.
13. When wildcarding against the server and either a
different directory or a search list or rooted
directory is used, operations fail.
14. Possible stack corruption caused by an
asynchronous QIO with an IOSB on the routine
stack; the routine has exited.
15. Peculiar handling of the directory specified to
CWD.
16. File type checks can fail for unknown reasons.
17. Non-OpenVMS directory listings should appear in
lowercase.
18. Various DELETE deficiencies.
19. Correct login failures with certain passwords.
20. Sites that have a large number of FTPC processes
experience FTPD hangs.
21. Problems with exitmsg().
Solutions:
1. Add support for a network access string.
2. Terminate output lines with NVT (),
not just \n ().
3. Replace the broken UnixToVms() routine and include
a status return.
4. Change `AnonymousUser' flag to be an int instead
of a short; the handling was incorrect.
5. Move auditing into lower level routines where the
information is now available.
6. Change rmd() to use RMS to perform the operations;
RMS specs are now fully supported.
7. Change mkd() to use RMS to perform the operations;
RMS specs are now fully supported.
8. Corrected spelling of several messages.
9. Implement RFC 959 multiline responses. This can
be defeated by either specifying a hyphen (`-')
as the first character of the password (per RFC
959) or setting the logical name
UCX$FTPD_MULTILINE_DISABLE.
10. Use the RMS maximize version flag.
11. Perform the RMS $PARSE and $SEARCH operations and
pass a FAB around, instead of a name. FTPC now
has three FABS and uses a maximum of three
channels.
12. Correct the "SITE HELP" command, which violates
RFC 959's definition of multiline responses
concerning if they are enabled or disabled.
13. Expand the file names properly to ensure that
the files are accessible once their names have
been returned. Rooted directories, search lists,
and third-party node, device and directory
strings now work properly.
14. Remove the IOSB because the code does not check it.
15. Change CWD to use RMS to $PARSE and establish
the default directory properly.
16. Change routine check_filetype() to return an
exit status.
17. Perform the conversion properly, paying close
attention to the quoted areas of the file
specification strings.
18. Allow DELETE to use the multiline response
formats. Show what you deleted and what you
could not delete and why (if multiline enabled).
19. The password and password2 buffers were being
mistreated and any that contained a null byte
caused password verification to fail.
20. Increase the MAX_SESSIONS to produce a larger
table.
21. The structure was handled as an array when the
structure definition is available.
References:
Internal and external reports.
ECO E 30-MAY-1997 Alpha and VAX
Images:
UCX$FTPC.EXE UCX V4.1-12E
UCX$FTPD.EXE UCX V4.1-12E
Problems :
1. Entering a user name such as "ANONYMOUS "
(with an extra space) would bypass anonymous logging.
2. Code review spotted a problem with reading the
extended logging logical name.
3. There was a quota problem with passive sockets.
4. Error code 550 was sent to the client when
reporting a successful file deletion.
5. Deleting a locked file caused the UCX$FTPC
process to crash.
6. A number of problems were observed with logging
errors. Extra characters at the end of the message
and missing separators were seen. Some errors were
not logged.
7. Deleting multiple (wildcard-selected) files caused
the client to hang if multiline responses were
disabled. In such case, the server would not send
any status or error messages to the client,
and the client would wait for a reply until it
timed out.
8. A code review uncovered several errors in
ftp$server_ftpc.
9. An access violation occurred when 'mput'ing a locked file.
This error was traced to attempting to clean up a resource
that had not been allocated.
Solutions:
1. Changed function user() to be less sensitive to
spaces surrounding the user name when comparing
to ANONYMOUS.
2. Corrected reading of extlog in main(). The pointer
was not de-referenced after reading the logical name.
3. In createpasvsock(), the socket receive quota
was not set, so a socket QIO would block forever
when done with IO$M_LOCKBUF. A setsockopt() call,
to set the quota like it is done in createdatasock().
For easier maintenance, a new function
ftp_setwindowsize() was created to perform this,
called from both create*sock() functions.
4. In function dele(), code 250 was substituted for
the 550.
5. In function dele(), error_text is now used instead
of the uninitialized global ErrorMessage.
6. LogErrorBuffer is now properly initialized,
and errors are always logged.
- Multiple exit paths in dele() were eliminated from
the while(TRUE) loop.
- The software no longer uses ReplyBuffer for building
status/error messages.
- Included a period (.) in sendermsg() after the last
item on the format list of sprintf when composing
the mailbox message. UCX$FTPD was looking for this
terminating period when parsing the message, and
messages ended up improperly terminated if the period
was omitted at the end of the message.
- Ensured that messages never send blank strings by setting
any blank strings to "-". This solution prevents the UCX$FTPD's
sscanf() reading message components into the wrong variable.
The software checks for NULL pointers passed in, sending
a dash "-" instead. Replaced all " "-s with NULL -s in
sendermsg() calls.
7. New logic was added in dele() to trace if
any messages were sent. If not, the final (summary)
message is forced.
8. In SetupAnonymousDirectories, GetErrorMessage() now
assigns the return value to ErrorMessage.
- In translate_error_message() the format string
%X08X" was replaced by the correct ""%.8X".
- Eliminated all malloc() and calloc() calls inside
functions, as recommended before, EXCEPT the
VMS-Plus /Linked List related ones. Instead of
allocating memory inside functions, the softrware uses
static var-s.
- In sendermsg() and postrply(), changed QIO to QIOW.
It seemed dangerous to use a local buffer with
asynch IO.
- In appe_vms_plus_bin changed QIO to QIOW, where the
software was executing a SYS$WRITE of the buffer just
read, without synchronization.
- In appe_normal_bin changed QIO to QIOW, where the software
was executing a SYS$PUT of the buffer just read,
without synchronization.
9. In all appe*, send* and recv* file functions, added
flags to prevent de-allocating/cleaning
up a resource if it has not been successfully allocated.
References:
CFS.51498, CFS.44943, CFS.49461, CFS.49842.
ECO 6 updates:
--------------
ECO F 18-JUN-1997 Alpha and VAX
Images:
UCX$FTPC.EXE UCX V4.1-12F
UCX$FTPD.EXE UCX V4.1-12F
Problems:
1. Several reported problems when attempting to read
read-only files.
2. Problems and access violations with anonymous FTP logging.
3. Random access violations when 'GET'ing files with
insufficient privileges.
4. When listing directories, a cr-lf is inserted
after the file name if it is a long name. This
confuses some 'automated' clients.
5. Code review discovered several problems in
ftp$server_ftpd.c.
Solutions:
1. Changed check_filetype() to use SYS$ASSIGN as it
did several versions ago. The combination of flags
used with SYS$OPEN had an unexpected side effect of
an implied 'write' privilege. This caused 'get'
attempts to fail when the user had read-only privileges
on the file.
2. In a number of places, corrected the
write_anonymous_log() call, where an incorrect
argument number was specified and /or parameters
were passed in the wrong order. This was causing
failures in logging some anonymous transactions
such as get and put and apparent access violations.
Wherever write_anonymous_log() is called, a
distinct status variable tracks logging
related errors, and an error is not returned from
the function that called it if the log call fails.
3. In send_vms_plus_bin(), after the
fdlgenerate_in_mem() call, the translate_error_code()
call was made with error_text instead of &error_text.
4. Added a new variable 'glo_lineup_dir' and /sys logical name
UCX$FTPD_DIR_CR_DISABLED to govern the insertion
of cr-lf -s in directory listings where the name of
the file is too long.
5. Changed QIO to QIOW wherever a local iosb was used.
Changed name of global variable 'status' to
'glo_status'. In some functions, where a local
'status' was not declared, the global variable was
used, resulting in side effects.
Declared local 'status' variables in functions that did
not have one.
In pass(), took out the extraneous/unnecessary
FAILURE(status) processing in the initial
user_anonymous processing.
References:
CFS.50890, CFS.51487, CFS.51803.
ECO 7 Updates
-------------
ECO H 18-SEP-1997 Alpha and VAX
Images:
UCX$FTPC.EXE UCX V4.1-12H
Problem:
The "Get node::file" is not functioning.
Solution:
Use SYS$OPEN instead. Note that you still cannot get
the dir flag of a remote file as of V7.1, making it
possible to copy a remote directory.
Reference:
CFS.52398.
Problem:
PUT/FDL does not function when issuing with another UCX system.
The code to switch out of VMS-Plus mode had been removed.
Solution:
The code was replaced.
Reference:
CFS.52822.
Problem:
MRS field not sent in .FDL file. A previous change
caused LRL to be sent instead of MRS.
Solution:
The change has been removed.
Reference:
CFS.52822.
Problem:
It was possible to simultaneously be in OpenVMS and VMS
Plus modes. This condition causes the "DIR" command to be
equivalent to "DIR/FULL." The correction for this
problem is what caused PUT/FDL to break.
Solution:
Do not allow the two modes to be set at once.
Reference:
CFS.52822.
Problem:
PUT/FDL file.typ;ver fails with incorrect filespec
when strncpy does not null-terminate the output
string.
Solution:
Explicitly null-terminate the output string.
Reference:
CFS.52822.
Problem:
PUT/FDL puts wrong name in FDL file. In the case
of "PUT/FDL a.b c.d", "c.d" was inserted as the
filename.
Solution:
Distinguish between VMS-Plus mode and PUT/FDL. In
the former case, you want the output file as the
name. In the latter case, you want the input file
as the name.
Reference:
CFS.52822.
Problem:
A 'get' from magtape with large blocksize breaks. Code
used wndsiz as FAB$W_USZ. When the blocksize was
larger than wndsiz, a data overrun occurred.
Solution:
Use the entire buffer size, which is now fixed at 64k.
Reference:
CFS.52862.
Distinguish between VMS-Plus mode and PUT/FDL. In
the former case, you want the output file as the
name. In the latter case, you want the input file
as the name.
Reference:
CFS.52822.
Problem:
Get from magtape with large blocksize breaks. Code
used wndsiz as FAB$W_USZ. When the blocksize was
larger than wndsiz, a data overrun occurred.
Solution:
Use the entire buffer size, which is now fixed at 64k.
Reference:
CFS.52862.
ECO 8 Updates
-------------
ECO I 31-OCT-1997 Alpha and VAX
IMAGES:
UCX$FTPC.EXE UCX V4.1-12I
UCX$FTPD.EXE UCX V4.1-12I
Problem:
The code was changed to use a fixed value of
32767 for FAB$W_USZ in send_normal_bin() and
send_vms_plus_bin(). In cases where block I/O
was being performed (all VMS-Plus cases, and
IMAGE non-VMS Plus), this caused bytes to be
lost, since block I/O is always performed on
a block boundary. In particular, with 32767,
the last byte of the 32K was lost, every 32K.
Solution:
The code was changed to use 32768 instead. This
has been written as 64*512 to emphasize the fact
that it should be a multiple of 512 bytes.
References:
CFS.54689, CFS 55083, CFS.55256.
ECO 9 updates:
--------------
ECO K 29-JAN-1998 Alpha and VAX
Image:
UCX$FTPC.EXE UCX V4.1-12K
Problem:
CWD only reports syntax errors when attempting to
establish a new default directory even though the
device and/or directory strings might be invalid.
Solution:
The $PARSE SYNCHK option was being used when parsing
the new default directory. Turning this off allowed
the device and directory strings to be checked for
validity and existence.
Reference:
PTR 30-1-549.
ECO L 30-JAN-1998 Alpha and VAX
Image:
UCX$FTPC.EXE UCX V4.1-12L
Problem:
The command `CWD /' returns an error.
Solution:
Treat `CWD /' as synonymous with `CWD ~' and `CWD':
set the default to SYS$LOGIN:
Reference:
CFS.56290.
ECO M 05-FEB-1998 Alpha and VAX
Image:
UCX$FTPC.EXE UCX V4.1-12M
Problem:
RENAME does not handle wildcard characters as it
used to.
Solution:
Recode RNTO action routine to handle wildcards
as well as multiline output.
Problem:
CWD does not handle logical names properly when they
are expressed without a colon (:) at the end.
Solution:
Add a check for a logical name when deciding if the
string needs to be translated from UNIX to OpenVMS format.
Reference:
CFS.54606, PTR 30-1-523.
ECO 10 updates:
--------------
ECO N 28-MAY-1998 Alpha and VAX
Images:
UCX$FTPD.EXE UCX V4.1-12N
Problem:
When a communication number of several ftp clients and ftp
server exceeded 1000000 times, an ftpc process of UCX isn't
made.
Solution:
Reset the session_sequence counter when it exceeds 999999.
ECO O 20-AUG-1998 Alpha and VAX
Images:
UCX$FTPD.EXE UCX V4.1-12O
Problem:
FTPD: Server hangs in LEF state after getpeername() failure.
Solution:
Reenable ASTs before returning in all cases. Always return a
value when returning from startup_session().
Reference:
PTR 70-5-827
ECO P 10-SEP-1998 Alpha and VAX
Images:
UCX$FTPC.EXE UCX V4.1-12P
Problem:
FTP 'put' of file named 'TT' may overwrite UCX$FTPSERVER.COM
Solution:
Fixed.
Reference:
PTR 70-5-765
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 CFS_SHR Images
---------------------------------------------------------------------------
ECO 5 updates:
--------------
ECO A 9-SEP-1996 Alpha and VAX
Image:
UCX$CFS_SHR.EXE
Problems:
When the NFS server does data conversion, the apparent size of
the file changes. Some clients, including DIGITAL UNIX,
use their cached unconverted size instead of the more
recently supplied converted size. Thus the file appears
to be missing its tail or have extra bytes at the end.
Solution:
If enabled by modus_operandi bit ppda$v_fake_mtime,
deduct a microsecond from mtime of unconverted files.
This solution provokes clients sensitive to unstable file size
(such as DUNIX) to invalidate the data cache on a subsequent
getattr. The unconverted size is then replaced with the
converted size on the reread.
Reference:
CFS.37489.
ECO B 06-NOV-1996 Alpha and VAX
Image:
UCX$CFS_SHR.EXE
Problem:
Memory is misallocated on Alpha systems, causing
a reduction in performance and the possibility
of an allocation failure.
Solution:
When allocating RDCBs, be sure to use the RETADR
array to determine how many RDCBs to place onto
the lookaside list.
Reference:
CFS.45010.
ECO C 13-FEB-1997 Alpha and VAX
Image:
UCX$CFS_SHR.EXE
Problem:
With the Alpha architecture, one of the routines
called within BFS$$SIGNAL() siezes the hardware
console window (instead of putting a message out
to OPCOM). This behavior is annoying for the
user.
Solution:
Remove stale file handle message and recover from this
condition so the message has minimal utility.
Reference:
CFS.41421.
Problem:
When name conversion is enabled for a non-OpenVMS
client, the server confuses regular files and
directories when they have the same name (except
.ext) and the file is multi-versioned.
Solution:
One of the checks for OpenVMS client was changed
to check for name conversion.
Reference:
CFS.46887, CFS.48850.
ECO D 4-MAR-1997 Alpha and VAX
Image:
UCX$CFS_SHR.EXE UCX V4.1-12D
Problem:
Filename extensions for regular files may
be stripped for bound volume sets. The directory
record has a null FIB$B_FID_RVN if the file is on
the same member volume as the directory.
Solution:
If FIB$B_FID_RVN is null, replace it with the
one from the filehandle.
Reference:
CFS.49421, CFS.35040.
ECO 9 updates:
--------------
ECO E 30-MAY-1997 Alpha and VAX
Image:
UCX$CFS_SHR.EXE UCX V4.1-12E
Problem:
8-bit filename support with /name_conversion does not
work correctly. The 8-bit hexidecimal value was not being
converted to the octal string correctly.
Solution:
Corrected missing information in $FAO call.
Reference:
CFS.50214.
16-Feb-1998 Alpha only
Images:
UCX$CFS_SHR.EXE UCX V4.1-12E
Problem:
On Alpha, if two threads enter the BFS$$SIGNAL routine,
they can be combined. This situation can lead to an
assortment of symptoms, including access violation,
corrupted stack, SS$_OPCDEC, and looping on thread
rundown trying to unlock an RDCB not owned by this thread.
Solution:
Initialize the stored ATCB pointer for
Alpha-conditionalized code, not just for VAX.
Reference:
CFS.45425, CFS.50080.
ECO 10 updates:
----------------
ECO F 21-SEP-1998 Alpha and VAX
Sources:
CCF.H
CFS.H
CFS_BM.C
CFS_DESCRIP.MMS
CFS_MISC.C
Images:
No image was built for release.
Problem:
CFS does not compile in debug mode.
Solution:
Port fixes from 5.0.
References:
PTR 30-2-547
ECO G 23-Jul-1998 Alpha and VAX
Images:
UCX$CFS_SHR.EXE UCX V4.1-12G
Problem:
Under extremely heavy usage, the system could crash in
SSRVEXCEPT.
Solution:
Remove fix that caused the problem.
Reference:
PTR 30-1-760
ECO H 28-SEP-1998 Alpha and VAX
Images:
UCX$CFS_SHR.EXE UCX V4.1-12H
Problem:
Analyze Container/Repair fails on a saved backup/noimage
from a 20GB disk.
Solution:
Increase the length of the structure element to a long.
Remove the reserved word that was used for alignment purposes.
Rename the variable to nbit$l_size to avoid confusion about
its size. Fix format statements that assumed that nbit$w_size
was a word.
Reference:
PTR 70-5-849.
ECO I 5-OCT-1998 Alpha and VAX
Images:
UCX$CFS_SHR.EXE UCX V4.1-12I
Problem:
NFSserver consumes 100% CPU time.
1. 100% cpu time in CUR state. This problem showed as a loop
in BFS$CLOSE, an EXEC AST is queued when an RDCB is marked for
delletion.
2. NFS$SERVER process hangs in LEF state. This problem showed
an ACCVIO doing an INSQUE in BFS$$CACHE module.
3. NFS$SERVER process hangs in LEF state.
Solution:
Rewrite the thread AST enable and disable code.
$$RESUME will always disable ASTs.
$$WAIT will only enable ASTs if not returning to a thread.
$$STARTUP will only enable ASTs if not returning to a thread.
BFS$$AST_ENABLE will always enable ASTs.
BFS$$AST_DISABLE will always disable ASTs.
$$AST_ENABLE will always enable ASTs.
$$AST_DISABLE will always disable ASTs.
Used a BFS$$SLEEP(500) instead of scheduling another EXEC AST
and waiting.
Fixed the code in BFS$$CACHE that kept the state of the RDCB
after forcing other threads to run.
Added checking for a RDCB that could be removed from the LRU
cache before attempting to lock it.
Fixed the code in BFS$$CACHE_CHECK that kept state about the
LRU cache after forcing other threads to run.
Made the $UNLOCK_RDCB in BFS$WRITE for changing the size of a
file to be unconditional.
Made the $LOCK_RDCB in BFS$WRITE and BFS$READ conditional based
on the passed in channel.
Added conditional code based on building a debug version. Also
added a stack trace which gets generated on exceptions.
References:
PTR 70-5-774
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 DNFS Images
---------------------------------------------------------------------------
ECO 5 updates:
--------------
ECO A 24-SEP-1996 Alpha and VAX
Image:
UCX$DNFSACP.EXE V4.1-12A
Problem:
UCX 4.0/4.1 clients can not operate with
TCPware server.
Solution:
Delete code that prevented the interoperation.
Reference:
CFS.40279, CFS.42359.
28-FEB-1997 Alpha and VAX
Image:
UCX$DNFSACP*.EXE V4.1-12A
Problem:
MOUNT does not require Portmapper if the
server's MOUNT port has gone bad because of a
reboot. Also, two other PSC cumulative corrections
not yet reported against UCX.
Solution:
After one attempt with the cached mount port,
zero the mount port and force a Portmapper call.
Reference:
CFS.48976.
ECO 9 updates:
--------------
ECO A 15-JUL-1997 Alpha and VAX
Images:
UCX$DNFSDRIVER*.EXE UCX V4.1-12A
Problem:
4-digit unit devices cannot be dismounted without
the /ALL qualifier for systems with 6-character
host names. The actual device name
_HOST6C$DNFSnnnn is 16 characters long, and the
RMS NAM block field NAM$T_DVI limits device names
to 15 characters. RMS SYS$PARSE and SYS$SEARCH
yield an incorrect device name of _HOST6C$DNFSnnn.
Solution:
Changed the NFS driver to not prepend the host name
to the device name.
Reference:
CFS.50985.
ECO 10 updates:
---------------
ECO B 16-APR-1998 Alpha and VAX
Images:
UCX$DNFSACP.EXE UCX V4.1-12B
UCX$DNFSDISMOUNT.EXE UCX V4.1-12B
UCX$DNFSDRIVER.EXE UCX V4.1-12B
UCX$DNFSMOUNT.EXE UCX V4.1-12B
Problem:
NFSclient does not handle 4-digit DNFS Device Numbers
correctly.
Solution:
Port the fix from 4.2 which increases the space in
devname[] to allow for a 4th (and even 5th digit).
Reference:
PTR 30-1-685
ECO C 21-APR-1998 Alpha and VAX
Images:
UCX$DNFSACP.EXE UCX V4.1-12C
UCX$DNFSDISMOUNT.EXE UCX V4.1-12C
UCX$DNFSDRIVER.EXE UCX V4.1-12C
UCX$DNFSMOUNT.EXE UCX V4.1-12C
Problem:
NFS VMS to VMS sets wrong protection (full access).
Solution:
Port the fix from 4.2.
Save the protection information from the lower version of the
file so that it gets propagated to the new version.
Reference:
PTR 30-1-687
ECO D 2-JUN-1998 Alpha and VAX
Problem:
The system crashes with a PGFLIPLHI; the current process is
the NFS client ACP process ( DNFS1ACP )
Images:
UCX$DNFSACP.EXE UCX V4.1-12D
Solution:
The solution was to correctly define $LLINK_START and
$LLINK_END to be linkage addresses. Due to a "BUG" in the
linker, the addresses need to have storage defined to get the
correct address assigned.
Reference:
PTR 30-1-746
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 LPD Images
---------------------------------------------------------------------------
ECO 3 updates:
--------------
ECO A 20-SEP-1996 Alpha and VAX
Image:
UCX$TELNETSYM.EXE
Problems:
1. When an attempt is made to create a temporary relay
file with a NULL byte, everything after the NULL
byte in one of the data records is ignored. The NULL
byte is being interpreted by fprintf as EOR. By
changing from fprintf to fwrite, a specified buffer
length can be written to the temporary file.
2. All threads being handled by the TNS hangs when one
thread is waiting for a connection to a remote printer.
When an attempt is made to connect to the remote printer
and the connection cannot be established (i.e., the
printer is turned off), all queues being handled by
that TNS process will hang. The connection attempt
was made with a sync Q but has now been changed to
make the connection attempt with an async QIO with
an AST.
Solutions:
1. Use fwrite() instead of fprintf() when writing to the
relay temporary file.
2. In open_socket, issue a non-blocking QIO specifying AST
open_socket_ast().
References:
1.CFS.41468
2.CFS.42955
ECO B 24-SEP-1996 Alpha and VAX
Image:
UCX$LPD_SHR.EXE
Problem:
With UCX as the LPD client, a problem exists when large
jobs are printed:
1. UCX-LPD-client opens the TCP-connection (to port 515)
to the LPD server.
2. UCX-LPD-client sends /02/0A.
3. UCX-LPD-client does a complete read of the print file
(on its own disk) to get the file size (and probably to
copy it to the spool area).
4. UCX-LPD-client sends a /03 filesize filename/0A.
5. UCX-LPD-client sends the contents of the data file and
the control file.
Step 3 consumes a large amount of time in the case of large files.
Some LPD server implementations (e.g., LEXmark printer)
cannot live with this long pause in an open TCP-connection and
they disconnect due to an idle timeout. Sometimes this value
can be configured. In an installation with many LEXmark
printers, the value of 10 seconds cannot be changed.
Solution:
The order of handling has been changed. Connection to the
LPD server (when file size is available) is not made until
after the file is read.
Reference:
CFS.44328
Problem:
When a 0 block job is submitted in an outbound bound LPD queue
(ACCHPL5S), the above error occurs and the LPD retry mechanism
requeues the job.
Solution:
Do not allow the LPD retry mechanism to requeue the job.
Reference:
CFS.45415
Problem:
LPD printing: leftover and reused DFA and CFA files.
Solution:
Always create a new version of the DFA/CFA file.
Reference:
CFS.44820
Problem:
A job stays in the "processing" state in the
UCX$LPD_QUEUE, and successive jobs for other printers
cannot be printed.
Solution:
An approximated simulation showed that the symbiont is
trying to read data from the socket using recv(). If
no data is available at the socket, the receive call
waits for data to arrive and will wait forever. To
solve the problem, a select() is used to check if the
socket is ready to be read. The timeout value is taken
from the logical name UCX$LPD_RETRY_INTERVAL.
Reference:
CFS.43801
ECO C 25-NOV-1996 Alpha and VAX
Image:
UCX$LPD_SHR.EXE UCX V4.1-12C
Problem:
A print job that is sent from one UNIX system through
an OpenVMS system to another UNIX system will not print.
Solution:
The receive job subcommand 'receive data file'
is constructed by using the file name that is the result
of FIND_FILE on the spool directory. The file name is a
valid OpenVMS name that does not match the file name
specified in the control file. The solution is
to open the control file, extract the parameter of the
'H' card, and use it to construct the file name.
Reference:
CFS.40779
Problem:
PCL files cannot be printed without adding LF after the
setup module.
Solution:
Support has been added for the use of the qualifier
/PASSALL with the PRINT command to suppress the addition
of LF to the setup module.
Reference:
CFS.45573
ECO 4 updates:
--------------
ECO D 8-JAN-1997 Alpha and VAX
Image:
UCX$LPD_SHR.EXE UCX V4.1-12D
Problem:
Unexpected timeouts occur on queues assigned to
regular printers. The timeouts cause the current
job to be aborted and placed in holding for a later
retry.
Solution:
The function noresponse() has been modified so that
select() (and thus the timeouts) will be applied
only when the queue is UCX$LPD_QUEUE.
References:
CFS.43801, CFS 45791
ECO E 3-JAN-1997 Alpha and VAX
Images:
UCX$TELNETSYM.EXE UCX V4.1-12E
Problem:
If the UCX$TELNETSYM_IDLE_TIMEOUT logical name is defined,
the first job goes through successfully but the
next one hangs and the queue stalls. This problem
was introduced in ECO 3.
Solution:
Corrected.
References:
CFS.47807, CFS.47987
ECO 5 updates:
--------------
ECO F 30-MAR-1997 Alpha and VAX
Images:
UCX$LPD_SHR.EXE UCX V4.1-12F
Problem:
LPD opens multiple links with BG devices and fails to
close them. This problem was inserted with the ECO B
correction.
Solution:
Corrected.
Reference:
CFS.45791
ECO 8 Updates
-------------
ECO G 29-AUG-1997 Alpha and VAX
Image:
UCX$TELNETSYM.EXE UCX V4.1-12G
Problem:
An access violation could occasionally occur in the TELNETSYM
for files containing certain control sequences.
Solution:
Corrected.
Reference:
CFS.51104.
ECO 9 updates:
--------------
ECO H 22-JAN-1998 Alpha and VAX
Images:
UCX$LPD_SHR.EXE UCX V4.1-12H
Problem:
Unable to print 700 small or medium ANSI or
binary files at once.
Solution:
Modified card_RMS() function, which on buffer
overflow calls flush_card() rather than signaling
RMS$_RTB.
Reference:
CFS.52472.
Problem:
Unable to stop and delete queues in a processing state.
It appears this issue is one of not recognizing and
closing damaged connections that remain in the driver,
unable to respond to SMB messages and so on.
Solution:
Added code in rresvport() to use system logical names
UCX$LPD_KEEPALIVE (y/n), UCX$LPD_PROBETIME (1..64k) and
UCX$LPD_DROPTIME (1..64k).
Reference:
CFS.51291.
ECO 10 updates:
--------------
ECO I 10-JUN-1998 Alpha and VAX
Images:
UCX$LPD_RCV.EXE UCX V4.1-12I
UCX$LPD_SHR.EXE UCX V4.1-12I
UCX$LPD_SMB.EXE UCX V4.1-12I
UCX$LPQ.EXE UCX V4.1-12I
UCX$LPRM.EXE UCX V4.1-12I
UCX$LPRSETUP.EXE UCX V4.1-12I
UCX$TELNETSYM.EXE UCX V4.1-12I
Problem:
When printing several files which share the same setup
module from different queues, the second print is retained
on error with rms-e-flk. This problem occurs on Alpha
UCX 4.0. When testing with UCX 4.1 Alpha the two
symbionts loop.
Solution:
Segment large buffers ( > 32K ) into 32K byte lengths.
Log only the first and last 32 bytes of buffers that are >= 32K.
Now that large buffers have been segmented to never exceed 32K,
we can safely use the TCP send() function on each segment.
Reference:
None.
ECO K 28-SEP-1998 Alpha and VAX
Images:
UCX$LPRSETUP.EXE UCX V4.1-12K
Problem:
LPD spool file not created since upgrade to 7.1 and ucx 4.1
eco 4.
UCX$LPRSETUP V4.1 ECO 2 to ECO 6 DOES NOT create the
spool directof a remote printer on aan OpenVMS/Alpha V7.1 system.
UCX$LPRSETUP dosn't create spool directory on Alpha running
OpenVMS V7.1 and UCX V4.2.
Solution:
The mkdir() 3rd uic arg bug in VMS 7.x has been reported to
the DECC folks (DECC Notes Conference #2659).
In the interim, it seems viable to workaround the mkdir() by
changing UCX$LPRSETUP to use the standard 2-arg mkdir() call
and to properly report any problems in doing so. Since most
users of UCX$LPRSETUP would be privileged (System
Administrators), they would likely have one of the GRPPRV,
SYSPRV, or BYPASS privileges which forces even the standard
2-arg mkdir() to create spool directories owned by the
parent [UCX$AUX,UCX_LPD]. (The SYSTEM account is typically
configured with such privileges.) Unprivileged users are
not able to create spool directories due to insufficient
permissions anyway. With this code in place, sufficiently
privileged users can create spool directories via
UCX$LPRSETUP regardless of whether the release of OpenVMS
contains the mkdir() bug or not.
WriteEntry() was also changed to only call MakeSpool() when
writing the entry to the PRINTCAP file, and not when writing
it to the LOG file. This change seems prudent -- now that
the user is informed of mkdir() errors, the directory should
only be created once!
Reference:
PTR 70-5-248, PTR 70-5-541, PTR 70-5-846.
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 POP Images
---------------------------------------------------------------------------
ECO 3 updates:
--------------
ECO A 27-NOV-1996 Alpha and VAX
Images:
UCX$POP_SERVER.EXE UCX V4.1-12A
Problem:
It is very difficult to isolate mail content problems
(e.g., MIME mail decoding problems) due to insufficient
diagnostics.
Solution:
The new UCX$POP_TRACE logical name has been added, which
causes everything the POP server sends to and
receives from the client to be logged.
To enable the new logical name, issue the following DCL
commands:
$ DEFINE/SYSTEM UCX$POP_TRACE 1
$ @SYS$MANAGER:UCX$POP_SHUTDOWN
$ @SYS$MANAGER:UCX$POP_STARTUP
Problem:
Upgrading to patched OpenVMS V7.1 and higher that has
callable mail causes the POP server to fail with an access
violation. Return length parameters from callable mail that were
formerly longwords are now words. The POP server is passing
the address of the uninitialized longword. Incorrect information
in the upper order word is no longer being cleared by
callable mail, causeing the access violation.
Solution:
Initialize the return length longwords before calling
callable mail.
ECO 5 updates:
--------------
ECO B 3-MAR-1997 Alpha and VAX
Image:
UCX$POP_SERVER.EXE UCX V4.1-12B
Problem:
Routine to convert OpenVMS date to UNIX date had
century hardwired as 19. This is a Year 2000 bug.
Solution:
Corrected.
Reference:
None.
ECO C 7-APR-1997 Alpha and VAX
Images:
UCX$POP_SERVER.EXE UCX V4.1-12C
Problem:
If not instructed to delete a mail message that
has been read by the POP client, the POP server
always copies it to the MAIL folder. For some uses
of POP it would be better to simply leave mail that
has been read by a POP client, but not deleted, in
the NEWMAIL folder.
Solution:
UCX POP can now be configured to leave mail that
has been read but not deleted by the POP client
in the NEWMAIL folder or to move it to the MAIL
folder. This is done with the "Leave in NEWMAIL"
configuration option. The "Leave in NEWMAIL"
option is useful in a situation like this:
Users at XYZCorp have PCs at home with which they
dial in to the office. They also have PCs in their
offices. The office PCs are to be the users
authoritative mail reposistory where they keep
mail in various folders. However, the users still
want to read mail on their home PCs. To do this,
they configure their home PC's POP client with the
"Leave on server" option so that the POP client does not
delete the mail from the server. They configure the
office PC's POP client with "Delete from server".
Finally, the POP server itself is configured with
"Leave in NEWMAIL". Now, when mail is read from
home, it is left on the server in the NEWMAIL folder.
When mail is next read from the PC at the office it
is picked up from the NEWMAIL folder (including any
messages already read at home since they were left
in the NEWMAIL folder), and the mail is deleted.
Note that the Netscape POP client, when configured
to "Leave on server", uses the UIDL command to keep
track of which mail it has already fetched from the
POP server. This has the benefit of not fetching
the same mail more than once when mail is left in
the NEWMAIL folder.
To configure this option do:
$ DEFINE/SYSTEM UCX$POP_LEAVE_IN_NEWMAIL 1
Note that at this time, the "Leave in NEWMAIL"
feature is not configurable on a user-by-user basis.
Reference:
Suggestion from NSI crew.
ECO 7 Updates
--------------
ECO D 6-AUG-1997 Alpha and VAX
Images:
UCX$POP_SERVER.EXE UCX V4.1-12D
Problem:
No time zone information when converting OpenVMS date
to UNIX date.
Solution:
Made changes to date_vms2unix to add timezone information.
Call UCX SMTP's arpadate() function to convert
UNIX date to "arpa" (ie. RFC 1123) date.
Problem:
The Pop server fails with an access violation when it tries
to "byte stuff" a line that contains more than 255 characters.
Solution:
Increase the buffer size in function bcopy to
contain TXTBUFSIZE+1.
ECO 9 updates:
--------------
ECO E 26-JAN-1998 Alpha and VAX
Images:
UCX$POP_SERVER.EXE UCX V4.1-12E
Problem:
POP server cannot process mail messages with more
than 255 bytes in a line.
Solution:
Change code to look at OpenVMS callable mail's
internal buffer for the message, thereby avoiding
the 255-byte limit.
Problem:
When trying to read large mail messages, the POP
server hangs and issues a MAIL-W-NOMOREREC error
message to the log file.
Solution:
OpenVMS callable mail reads the entire mail message.
If the process does not have enough memory, OpenVMS
callable mail returns MAIL-W-NOMOREREC.
The solution was to detect this condition and
send a mail message back to the recipient with instructions
to ask the system administrator to increase the
server account's page file quota.
Reference:
PTR 30-1-600, 30-1-614.
ECO 10 updates:
---------------
ECO F 22-APR-1998 Alpha and VAX
Images:
UCX$POP_SERVER.EXE UCX V4.1-12E
Problem:
VMSmail API was returning an incorrect number of records
for a mail message that was in it's NEWMAIL folder. The POP sever
uses this number to loop thru calls to mail$message_get() to get
each line record) of the message. Because the length of the
message was incorrectly given as one more than the actual length,
the call to mail$message_get() to get the last message line
resulted in the MAIL-W-NOMOREREC error.
Solution:
Documents a situation where VMSmail reported 120-
record message, but the actual external mail file contained only
119 records as read thru the MAIL$M_RECMODE (record-at-a-time)
method. Tolerate this offf-by-one accounting assuming it's
identical to the prior HACK ALERT, which handles a similar
situation with messages read via the MAIL$_MESSAGE_BUFFER method.
Reference:
PTR 30-1-700
ECO G 5-MAY-1998 Alpha and VAX
Images:
UCX$POP_SERVER.EXE UCX V4.1-12G
Problem:
PMDF (another vendor's) mail client was translating
single-quote (') characters in From: addresses into "\s" before
wrapping them with SMTP%"...". This renders the address as
illegal from RFC822 standpoint, so SMTP and POP did not recognize
this as a proper "SMTP" From address, failing one of the three
conditions necessary for ignore_mail11_headers operation. While
single-quote is a legal character for an SMTP address, embedded
backslashes are not.
Solution:
If POP's patch_from_line() call to SMTP's build_path_from()
routine fails with UCX$_SMTP_PARSERR, and the From: address begins
with the SMTP%" jacket, then relax the ignore_mail11_headers
constraint that the VMS mail From: address must be RFC822 and
treat it as if it really was RFC822/SMTP compliant. Customer is
expected to notify the third party vendor to get the root cause
problem in the mail client fixed.
Reference:
PTR 30-1-616
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 SMTP Images
---------------------------------------------------------------------------
ECO 3 updates:
--------------
ECO A 27-NOV-1996 Alpha and VAX
Image:
UCX$SMTP_MAILSHR.EXE UCX V4.1-12A
UCX$SMTP_RECEIVER.EXE UCX V4.1-12A
UCX$SMTP_SYMBIONT.EXE UCX V4.1-12A
UCX$SMTP_PARSESHR.EXE (VAX) UCX V4.1-12A
UCX$SMTP_PARSESHR_TV.EXE (Alpha) UCX V4.1-12A
UCX$UUENCODE.EXE UCX V4.1-12A
UCX$UUDECODE.EXE UCX V4.1-12A
Problem:
Symbiont processes sometime leave stray BG devices.
Solution:
Corrected.
Reference:
CFS.42659
Problem:
The SMTP receiver fails with an access violation if mail comes
from a host that has more than 20 IP addresses.
Solution:
Increase the size of the buffer and add bounds checking.
Problem:
Inbound mail from SMTP being delivered to users with
their mail forwarded to another foreign transport
(e.g., xyz%) is returned.
Solution:
Corrected.
Problem:
An access violation might occur during delivery of local
mail on certain later versions of OpenVMS.
Solution:
Corrected.
ECO 5 updates:
--------------
ECO B 3-MAR-1997 Alpha and VAX
Image:
UCX$SMTP_MAILSHR.EXE UCX V4.1-12B
UCX$SMTP_RECEIVER.EXE UCX V4.1-12B
UCX$SMTP_SYMBIONT.EXE UCX V4.1-12B
UCX$SMTP_PARSESHR.EXE (VAX) UCX V4.1-12B
UCX$SMTP_PARSESHR_TV.EXE (Alpha) UCX V4.1-12B
UCX$UUENCODE.EXE UCX V4.1-12B
UCX$UUDECODE.EXE UCX V4.1-12B
Problem:
If UCX$SMTP_RECV_SNAPSHOT_BLOCKS is defined,
SMTP receiver would dump snapshot buffer even
if no error occurred.
Solution:
Corrected.
Reference:
CFS.49010.
Problem:
Delivering local mail where local part is DSN
address appears to function (based on the log file)
but never arrives at the DSN mail queue.
(Example address is "DSN%blah"@name.of.my.system)
Solution:
Corrected.
Reference:
CFS.47537.
ECO C 7-APR-1997 Alpha and VAX
Images:
UCX$SMTP_MAILSHR.EXE UCX V4.1-12C
UCX$SMTP_RECEIVER.EXE UCX V4.1-12C
UCX$SMTP_SYMBIONT.EXE UCX V4.1-12C
UCX$SMTP_PARSESHR.EXE (VAX) UCX V4.1-12C
UCX$SMTP_PARSESHR_TV.EXE (Alpha) UCX V4.1-12C
UCX$UUENCODE.EXE UCX V4.1-12C
UCX$UUDECODE.EXE UCX V4.1-12C
Problem:
The symbiont process leaks large amounts of memory
each time a mail message is bounced.
Solution:
Corrected.
Reference:
CFS.48831.
Problem:
Mail message text hidden inside a binary control
file makes the code more complicated, is prone to
bugs, and makes problem solving more difficult.
Solution:
UCX SMTP no longer stores the text of the
message in the control file itself. It will
always store the text in a separate *.*_TEXT file.
Reference:
none.
ECO 6 updates:
--------------
ECO D 13-June-1997 ECO D 13-June-1997
Images:
UCX$SMTP_MAILSHR.EXE UCX V4.1-12D
UCX$SMTP_RECEIVER.EXE UCX V4.1-12D
UCX$SMTP_SYMBIONT.EXE UCX V4.1-12D
UCX$SMTP_PARSESHR.EXE (VAX) UCX V4.1-12D
UCX$SMTP_PARSESHR_TV.EXE (Alpha) UCX V4.1-12D
UCX$UUENCODE.EXE UCX V4.1-12D
UCX$UUDECODE.EXE UCX V4.1-12D
Problem:
UCX$SMTP_MAILSHR.EXE fails with an access violaiton
when sending a mail message with a record greater than 1000
bytes.
Solution:
When reading a record from the mail file, determine
the longest record length in the file and read in
that length. If record length exceeds 1000 bytes, write
out multiple 1000 byte lines in the outgoing mail
message. Also inform the user that this is happening
with the following message:
%UCX-I-SMTP_LINEWRAP, Line contains more then 1000
bytes, splitting into multiple lines.
This change requires a change to UCX$MSG.EXE to
display the SMTP_LINEWRAP information code.
Problem:
The command ANALYZE MAIL/REPAIR results in -JBC-F-MISREQPAR
following by -SYSTEM-F_SSFAIL errors.
Upon detecting that a job in the SMTP queue does not
have a file associated with the job, SMTP tries to
delete the job from the SMTP queue. However, the item
list to the SNDJBCW was not set up correctly.
Solution:
Define the item list to the SNDJBCW system service
locally within the function that deletes the job
from the SMTP queue. Also, set up the item list
correctly.
ECO 7 Updates
-------------
ECO E 24-JUL-1997 Alpha and VAX
Images:
UCX$SMTP_MAILSHR.EXE UCX V4.1-12E
UCX$SMTP_RECEIVER.EXE UCX V4.1-12E
UCX$SMTP_SYMBIONT.EXE UCX V4.1-12E
UCX$SMTP_PARSESHR.EXE (VAX) UCX V4.1-12E
UCX$SMTP_PARSESHR_TV.EXE (Alpha) UCX V4.1-12E
UCX$UUENCODE.EXE UCX V4.1-12E
UCX$UUDECODE.EXE UCX V4.1-12E
Problem:
In ECO 6, $mail /sub="test" NL:
"smtp%""username@host""" results in RMS-F-USZ
error and access violation.
Solution:
Previous edit to handle 1000 byte did not take
into account the zero byte length in file.( NL:).
Add a check for zero longest byte length and
default to 1000 if so.
Reference:
CFS.52901, CFS.52901.
ECO 9 update:
-------------
ECO F 18-NOV-1997 Alpha and VAX
Images:
UCX$SMTP_SFF.EXE UCX V4.1-12F
Problem:
Mailing list handler.
Solution:
Corrected.
Reference:
PTR 30-3-108.
ECO G 25-JAN--1998 Alpha and VAX
Images:
UCX$SMTP_MAILSHR.EXE UCX V4.1-12G
UCX$SMTP_RECEIVER.EXE UCX V4.1-12G
UCX$SMTP_SYMBIONT.EXE UCX V4.1-12G
UCX$SMTP_PARSESHR.EXE (VAX) UCX V4.1-12G
UCX$SMTP_PARSESHR_TV.EXE (Alpha) UCX V4.1-12G
UCX$UUENCODE.EXE UCX V4.1-12G
UCX$UUDECODE.EXE UCX V4.1-12G
UCX$SMTP_SFF.EXE UCX V4.1-12G
Problem:
Customer tried to send file that had fixed
length records, causing various problems.
Solution:
This capability is not supported. Print a warning when
action is attempted.
Reference:
PTR: 30-1-529, CFS.54722.
Problem:
Comments in the README.TXT for ECO F incorrectly stated
that the SFF image changes were incorporated.
Solution:
To keep the V4.1 and V4.2 streams the same, folded
in the SFF build changes to the V4.1 stream.
Images will be put into EXE$ and kitd$ but will not
be copied to the SYS$SYSTEM directory at install
time because the last bits of changes needed in the
kitting procedure were not made for V4.1 but for
a common source stream only.
Reference:
None.
ECO 10 updates:
--------------
ECO H 8-JUN-1998 Alpha and VAX
Images:
UCX$SMTP_RECEIVER.EXE UCX V4.1-12H
Problem:
SMTP receiver is not including any 'From' DOMAIN header
information.
Solution:
Retro fit change from the v5/v6 code:
smtp_reecv_serv.c :
Add "from domain" clause into the Received: header we tack
onto incoming messages.
Reference:
PTR 30-1-625
ECO I 20-JUL-1998 Alpha and VAX
Images:
UCX$SMTP_MAILSHR.EXE UCX V4.1-12I
UCX$SMTP_PARSESHR_TV.EXE UCX V4.1-12I
UCX$SMTP_RECEIVER.EXE UCX V4.1-12I
UCX$SMTP_SYMBIONT.EXE UCX V4.1-12I
Problem:
When the customer starts UCX, it always displays the following
error in the UCX$SMTP_LOGFILE.LOG:
smtp_parse_init 2nd QIO() failed, ISOB status = 844
Error building list of IP addresses for the local host,
status = 844
UCX V4.1 E8 SMTP, Inbound mail causing a %SYSTEM-F-ACCVIO on
the UCX$SMTP_RECEIVER server, which does not deliver the mail.
Solution:
The correction is add logic to fetch the MAXIMUM NUBER OF
INTERFACES and to use that value in the buffer size
calculation. The definition of INET$C_MAX_IFNETS was added to
inetdef.h. Delete the "comment" part of the from address.
Reference:
PTR 70-5-659, PTR 70-5-674
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 RSH Images
---------------------------------------------------------------------------
ECO 5 updates:
--------------
ECO A 19-NOV-1996 Alpha and VAX
Image:
UCX$RSH.EXE UCX V4.1-12A
Problem:
Because of misordered images in the link option file,
the UCX$RSH image was being linked in such a way as to
include a large, version-specific object library.
This caused access violations to occur when using the RSH
command on an OpenVMS Alpha V7.1 system.
Solution:
Correct the link option file. This produces an image
that is only about 130 blocks, rather than over 1000,
and is more portable.
Reference:
Internal report.
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 RLOGIN Images
---------------------------------------------------------------------------
ECO 5 updates:
--------------
ECO A 19-NOV-1996 Alpha and VAX
Image:
UCX$RLOGIN.EXE UCX V4.1-12A
Problem:
Because of misordered images in the link option file,
the UCX$RLOGIN image was being linked in such a way
as to include a large, version-specific object library.
This could cause access violations to occur when using the
RLOGIN command on certain OpenVMS Alpha systems.
Solution:
Correct the link option file. This produces an image
which is only about 170 blocks, rather than over 1000,
and is more portable.
Reference:
Internal report.
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 RPC Images
---------------------------------------------------------------------------
ECO 5 updates:
--------------
ECO A 15-AUG-1996 Alpha and VAX
Image:
UCX$RPCGEN.EXE UCX V4.1-12A
Problem:
RPCGEN /DEFINE qualifier causes an access violation.
Solution:
Modify parseargs() to not uppercase the /DEFINE string
(which was the wrong buffer, causing the access violation).
Also change CLI_GET_VALUE() to require starting
and ending quotes for quoted string status.
If quoted string status, restore the stripped quotes
in the define string.
References:
CFS.43990.
ECO 9 updates:
--------------
ECO B 29-JAN-1998 Alpha and VAX
Images:
UCX$RPCXDR_SHR.EXE UCX V4.1-12B
Problem:
IEEE double precision results in the message `Server can't
decode argument' from a UCX client.
Solution:
The RPC message appears to be short by four bytes.
Checking the source revealed that if the first four
bytes encode properly, the second four bytes will not
be encoded because the || condition was being used
instead of an && condition.
References:
PTR 30-1-629.
ECO 10 updates:
---------------
ECO B 27-MAY-1998 Alpha and VAX
Sources:
[RPCXDR]types.h
Images:
None. (actually most all of the .exe files change, but the types.h
file is all that will be patched.)
The file types.h belongs in the system directory:
SYS$SYSROOT:[000000.SYSCOMMON.UCX$LIB.RPC]
Problem:
DECC compiler on Alpha fails with "%CC-E-NOLINKAGE"
errors on typedefs: int32, uint32, int64 & uint64
Solution:
Use the INTS.H definitions for int32, uint32, int64 and
uint64. This prevents the %CC-E-NOLINKAGE errors that were
generated at compile time if both RPC.H and PTHREAD.H were
included. INTS.H properly defines int32 and uint32 for both
current platforms and properly defines int64 and uint64 for the
Alpha platform. However, if the platform is VAX, INTS.H does
not define either int64 or uint64. This is an acceptible
solution because none of the provided source code in either
RPCXDR or PCNFSD uses either int64 or unit664. Therefore, these
typedefs are only used in customer applications. If a customer
application is currently using the miss-defined 32-bit typedefs
int64 and/or uint64 on either platform, the solution would be
to modify the source code of the application to use int32 and/or
uint32 and recompile.
Reference:
PTR 30-1-242
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 RCP Images
---------------------------------------------------------------------------
ECO 5 updates:
--------------
ECO A 27-SEP-1996 Alpha and VAX
Image:
UCX$RCP.EXE UCX V4.1-12A
Problem:
RCP did not handle user names 12 bytes in length.
Solution:
Corrected.
Reference:
CFS.45129.
ECO B 30-OCT-1996 Alpha and VAX
Image:
UCX$RCP.EXE UCX V4.1-12B
Problem:
Concurrent RCP commands return the wrong file content.
With two 'get' operations, the first copy obtains the second
file and the second copy obtains the first file.
Solution:
To solve the problem, remove the stack local variable
and allow the global variable to be used.
References:
CFS.43410.
ECO C 29-APR-1997
Image:
UCX$RCP.EXE UCX V4.1-12C
Problem:
COPY/RCP command did not parse quoted filenames
properly.
Solution:
If quoted filename is detected, save it in an
appropriate place.
References:
CFS.48551.
ECO 6 Updates:
--------------
ECO D 05-JUN-1997 Alpha and VAX
Images:
UCX$RCP.EXE UCX V4.1-1D
Problem:
Explicit copies from addresses of the form
xx.xx.xx.128 (and above) would always return
RCP-CONHST. In routine rcp$get_rsocket, the
address or hostname is passed to ucx$inet_addr,
which tries to make it a network value or
returns -1 on error. The code checked for <0
rather than -1 explicitly. Since the ipaddr
variable was declared as an int, anything of
the form xx.xx.xx.128 or above would be returned
as a negative number.
Solution:
Declare ipaddr as unsigned long, and compare it
to (unsigned long) -1 to see if ucx$inet_addr
failed.
References:
CFS.51680
---------------------------------------------------------------------------
Corrections for DIGITAL TCP/IP Services V4.1 NTP Image
---------------------------------------------------------------------------
ECO 6 updates:
-------------
ECO A 30-MAY-1997 Alpha and VAX
Image:
UCX$NTPD.EXE UCX V4.1-12A
Problems:
1. Exclamation mark (!) could not be used in the
configuration file.
2. Problems with synchronization to master clock
and local master.
3. Maximum timezone differential did not account
for daylight saving time.
4. Problems selecting peer is based on distance.
5. Peer polling needs to comply with RFC 1305.
6. Problem with NTP when there are two master
servers on the local network or when
synchronization sources are close.
Solutions:
1. An exclamation point can now be used as a comment
character in the configuration file.
2. Synchronization to master clock and local master
is improved.
3. A maximum timezone differential of 13 hours is
allowed, instead of 12.
4. A bug in selecting peers based on distance is corrected.
5. The minimum and maximum peer polling intervals are
changed to comply with RFC 1305.
6. NTP no longer flip-flops between two master
servers when two of them exist on the local network
with the same precision and stratum, or in certain
cases where the synchronization sources are close.
Reference:
Internal development request.
Problem:
NTP continually resets the clock by 7 minutes.
Solution:
Corrected.
Reference:
CFS.50430.
ECO B 2-JUN-1997 Alpha and VAX
Image:
UCX$NTPD.EXE UCX V4.1-12B
Problem:
NTP sometimes fails to find local timezone information.
Solution:
Corrected.
Reference:
CFS.46468.
ECO C 4-JUN-1997 Alpha and VAX
Image:
UCX$NTPD.EXE UCX V4.1-12C
Problem:
When stepping time, NTP may reset time to GMT,
ignoring the local timezone.
Solution:
Corrected.
Reference:
CFS.50272.
ECO 7 updates:
-------------
ECO D 30-AUG-1997 VAX and Alpha
Images:
UCX$NTPD.EXE UCX V4.1-12D
Problem:
This corrected a problem with a 7-minute, 9-second
incorrect offset bug. This bug was assumed to be
corrected in an earlier patch (and ECO6), but one
occurrence of the bug still existed at that time.
Solution:
There was an area of manually doing 64-bit OpenVMS
time arithmetic that had a problem with the carry bit.
The UCX team originally corrected this through casting the
variables involved, but unfortunately also included a
correction for this same area when porting over new code from
elsewhere. So it was corrected twice, which resulted in
recreating the bug. The casting change was removed, so
that the change of subtracting the carry bit when
required still exists.
Reference:
CFS.54260.
ECO 10 updates:
---------------
ECO E 10-SEP-1998 Alpha and VAX
Images:
UCX$NTPD.EXE UCX V4.1-12E
Problem:
NTP: times not adjusted in 5 node mixed cluster.
Solution:
Added an option similar to unix NTP which allows the correction
of any time difference, including times greater than the
maximum aperture. The flag is not set by default, which means
that if the time difference is too large (around 5.3 hours or
so) then the following message will appear in the log
file: seconds is too large (set clock manually or set correct-
any) To set the option, CORRECT-ANY is added to the UCX$NTP.CONF
file which after doing the filtering and finding the
difference to be too large, it will reset the time.
Reference:
PTR 70-5-799
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.
The DEC-AXPVMS-UCXECO_41_10-V1000--4.PCSI kit is installed using the
PCSI utility.
$PRODUCT INSTALL UCXECO_41_10 /SOURCE=device-name
The ECO kit checks to ensure that a valid license is installed before
proceeding. If one is not found, the installation aborts. Restart the
installation after a valid license is installed.
This DEC-AXPVMS-UCXECO_41_10-V1000--4 kit will install on the Alpha VMS
V6.1 and higher.
A system reboot is required after the installation of this update.
To complete the installation please do the following:
1. Copy SYS$COMMON:[SYSMGR]UCX$SNMP_SHUTDOWN.COM
to SYS$SYSDEVICE:[UCX$SNMP]UCX$SNMP_SHUTDOWN.COM,
2. Copy SYS$COMMON:[SYSMGR]UCX$SNMP_STARTUP.COM
to SYS$SYSDEVICE:[UCX$SNMP]UCX$SNMP_STARTUP.COM.
This patch can be found at any of these sites:
Colorado Site
Georgia Site
Files on this server are as follows:
dec-axpvms-ucxeco_41_10-v1000--4.README
dec-axpvms-ucxeco_41_10-v1000--4.CHKSUM
dec-axpvms-ucxeco_41_10-v1000--4.pcsi-dcx_axpexe
ucxalp_e10041.CVRLET_TXT
|