| From: STAR::AVERY "Sue Avery ** DTN 381-0163 04-Mar-1997 0753 -0500"
4-MAR-1997 08:12:45.93
To: @LP_CONTACTS
CC: VMSSPT::MICHAUD,PLAISTED,EVMS::KAUFFMAN,AVERY
Subj: A: OpenVMS Delta Time Limit BLITZ and Cover Letter
Hi,
I've attached 2 pieces of mail (a Digital Internal BLITZ and a Customer Letter)
that describe a delta-time restriction with the OpenVMS operating system that
may cause a serious error in some applications and OpenVMS components
beginning on or around 19-MAY-1997. DIGITAL has provided ECOs (Engineering
Change Orders) that remove the delta-time limit.
Please read the attached messages (note that they're lengthy!) and make sure
that your group thoroughly understands the impact it might have on your
product. The OpenVMS Delta Time Limit Customer Letter is being sent to
OpenVMS VAX SPL customers and OpenVMS MDDS Service Customers. Customer
mailings are scheduled to start on 3/12/97.
If you have questions about this mail, please contact any of the following
folks:
Engineering contact: Grahame Plaisted (STAR::PLAISTED)
Engineering contact: Jim Kauffman (EVMS::KAUFFMAN)
Product Management contact: Mary Jane Vazquez (STAR::VAZQUEZ)
thanks,
- Sue
+---------------------------+TM
d i g i t a l TIME DEPENDENT BLITZ
+---------------------------+
OpenVMS Delta-Time Restrictions and 19-May-1997
AUTHOR: Grahame Plaisted DATE: 28-Feb-1997
DTN: 381-0910 TD #:
ENET: SPSEG::PLAISTED REFERENCE #'s: UTO101272, SSRT0450V
DEPARTMENT: OpenVMS RTL Support Eng. (PRISM/TIME/CLD#'s) HPAQA23C1,
INTENDED AUDIENCE: All HPXQ10TSV, EVMS-GRYPHON QAR 1490
(U.S./EUROPE/GIA) PRIORITY LEVEL: 1
1 EXECUTIVE SUMMARY
The OpenVMS operating system has a documented delta-time
restriction that may cause a serious error in some applications
and OpenVMS components beginning on or around 19-MAY-1997.
DIGITAL has provided ECOs (Engineering Change Orders) that
remove the delta-time limit.
DIGITAL strongly recommends that all customers running the
affected versions of OpenVMS install the appropriate ECO.
DIGITAL will proactively communicate this problem and solution
to the OpenVMS user community. These measures are documented
in this article.
The remainder of this article explains the problem in detail.
An example C program is attached that illustrates the problem.
2 PROBLEM
OpenVMS customers may experience errors in some applications
and OpenVMS components when dates are specified on or around
19-MAY-1997.
Applications and OpenVMS components most likely to experience
errors are those that pass delta-time arguments with values
exceeding 9999 days on system-supplied date routines. The most
likely date that these errors will occur is 19-MAY-1997:00:00,
which is 10,000 days after the common UNIX time origin of
1-JAN-1970. The errors take various forms, and affect
applications that are both non-threaded and multi-threaded.
(Applications can also encounter errors before the system
clock reaches 19-MAY-1997 if an application uses future dates
and specifies a date of 19-MAY-1997 or later.) See the DESCRIPTION
section for more information.
The versions of OpenVMS that are affected by the 10,000 day
delta-time restriction are:
o OpenVMS Alpha Version 6.1 through Version 7.0 (inclusive):
OpenVMS Alpha V6.1, V6.1-1H1, V6.1-1H2, V6.2, V6.2-1H1, V6.2-
1H2, V6.2-1H3, V7.0
o OpenVMS VAX Version 5.5 through Version 7.0 (inclusive):
OpenVMS VAX V5.5, V5.5-1, V5.5-2, V5.5-2HW, V5.5-2H4,
V5.5-2HF, OpenVMS VAX V6.0, OpenVMS VAX V6.1,
OpenVMS VAX V6.2, OpenVMS VAX V7.0
Systems running OpenVMS VAX Version 7.1 or OpenVMS Alpha Version
7.1 are not impacted and do not need to install the ECO.
The following OpenVMS components and software products are known
to be affected by the delta-time limit. The ECOs correct the
problems observed in these products.
________________________________________________________________
Product_____________________________OpenVMS_Version_____________
OpenVMS SECURITY Server OpenVMS Alpha V7.0 only
DECwindows Motif for OpenVMS OpenVMS Alpha V7.0 only
Distributed Computing Environment OpenVMS Alpha V6.2 only
(DCE) for OpenVMS
OpenVMS DECthreads OpenVMS Alpha and OpenVMS VAX
V5.5 through V7.0
(OSU) DECthreads HTTP Server OpenVMS Alpha and OpenVMS VAX
(freeware provided with the V5.5 through V7.0
OpenVMS Internet Product Suite)
________________________________________________________________
Other software products running on OpenVMS might also experi-
ence errors stemming from this delta-time limit. Contact the
appropriate software vendor for more information.
3 SOLUTION
The following ECOs resolve all known instances of this error
in OpenVMS.
OpenVMS Alpha: ALPLIBR05_070
OpenVMS VAX: VAXLIBR05_070
It is essential that DIGITAL customers are aware of this issue.
DIGITAL will take the following proactive measures:
o Send a letter to current OpenVMS MDDS service customers
o Include a letter in the March 1997 OpenVMS VAX Software
Layered Products Library
o Work with FIRST and other Internet notification groups to
provide additional coverage/notice to customers
o Post information in USENET newsgroup comp.os.vms
o Distribute ECOs through:
- DIGITAL Electronic Service Delivery Tools (such as DSNlink,
Web Information and Support Service (WIS), and DIGITAL
Dial-In Access (DIA))
- the World Wide Web at:
http://www.service.digital.com/html/patch_main.html
- the following FTP address:
ftp://ftp.service.digital.com/public/vms/
For further information, DIGITAL customers can contact their
normal DIGITAL support channel.
4 SYMPTOMS/IMPACT
The following sections describe specific errors encountered
on OpenVMS Alpha Version 7.0 and OpenVMS Alpha Version 6.2.
These or similar errors may be encountered on other versions of
OpenVMS affected by the 10,000 day delta-time restriction.
For OpenVMS Alpha Version 7.0 systems:
The following error may be displayed on the console which will
cause the security server to hang.
%CMA-F_EXCCOPLOS, exception raised: some information lost
-CMA-F-BADPARAM, parameter to DECthreads operation is invalid
%ADA-I-TASTERUNH, Task with ID %TASK 9 of type
Verify_Dependant_Tasks_type has terminated due to unhandled exception
The above messages stem from the SECURITY_SERVER. Service is not
denied, but security event messages are not recorded.
On OpenVMS Alpha Version 7.0 systems, DECWindows Motif will
cease to function on or around 19-MAY-1997. This will prohibit
users from logging into their workstations or from starting any
new applications.
For OpenVMS Alpha Version 6.2 systems:
The OpenVMS DCE RPC Daemon (DCE$RPCD) fails to start on sys-
tems with the 10,000 day delta-time restriction. In the files
DCE$RPCD.ERR and DCE$RPCD.OUT, the DCE$RPCD process logs the
following error:
%CMA-F-BADPARAM, parameter to DECthreads operation is invalid
This error is identical to the console scenario in the previ-
ous section. There may be additional products or scenarios that
yield this same result for the 10,000 day delta-time restric-
tion.
5 DESCRIPTION
With the increasing number of UNIX applications that have been
ported to OpenVMS, the 10,000 day delta-time restriction has
become an important issue. This restriction has been removed
from OpenVMS RTL Library (LIB$) routines and the $NUMTIM system
service. However, LIB$SYS_ASCTIM and the $ASCTIM system service
continue to have a 10,000 day delta-time restriction.
The original implementation of the 10,000 day limit was inten-
tional, is currently documented and was intended to bound the
length of the string returned from $ASCTIM. ($ASCTIM is the only
routine that requires the restriction.) The risk in removing the
restriction from the $ASCTIM system service is that there may be
decades worth of programs and DCL command procedures that depend
on a maximum of four digits in the ASCII string returned.
The most serious error is the DECthreads error that occurs when
the OpenVMS Alpha SECURITY_SERVER attempts to log a message on
the console. The date/time is handled as part of an exception
that is initially managed by the DEC ADA Run-Time Library and is
subsequently passed to DECthreads. DECthreads converts UNIX time
to OpenVMS time by calling LIB$CVT_TO_INTERNAL_TIME, specifying
the 10,000 day delta time. LIB$CVT_TO_INTERNAL_TIME returns an
error to DECthreads on dates beginning on or around 19-MAY-1997
(10,000 days after the UNIX time origin) which results in the
console errors.
For threaded applications:
The 10,000 day issue only arises in cases where a UNIX time is
converted to an OpenVMS time. The original implementation of the
DECthreads interface did not involve any UNIX time specifica-
tions on OpenVMS. These were introduced with the implementation
of the draft POSIX interface, which was layered on top of the
original, proprietary (CMA) interface. Therefore, prior to Ver-
sion 7.0, only software that uses the draft POSIX interface (and
which makes use of timed waits) is affected.
In OpenVMS Version 7.0 DECthreads provided an implementation of
the newly accepted POSIX standard interface for threading ser-
vices. The POSIX standard interface became the core interface
and the other interfaces were reimplemented on top of it. Begin-
ning in OpenVMS Version 7.0, all software that uses timed thread
waits may encounter the 10,000 day delta-time errors.
DECthreads source code is identical for OpenVMS VAX Version 7.0
and OpenVMS Alpha Version 7.0.
For all applications:
If your application calls the following OpenVMS RTL Library
(LIB$) routines, you may encounter the 10,000 day delta-time
errors.
LIB$CVT_TO_INTERNAL_TIME LIB$ADD_TIMES
LIB$CVT_FROM_INTERNAL_TIME LIB$SUB_TIMES
LIB$CVTF_TO_INTERNAL_TIME LIB$MULT_DELTA_TIME
LIB$CVTF_FROM_INTERNAL_TIME LIB$MULTF_DELTA_TIME
LIB$CVT_VECTIM LIB$CONVERT_DATE_STRING
Applications that are written in DEC C and contain portable code
that calls only ANSI time functions are not impacted. This is
because the DEC C Run Time Library calculates time locally and
does not call OpenVMS RTL Library (LIB$) time routines. These
ANSI time functions are as follows:
ctime ftime
mktime strftime
fstat gmtime
stat time
The one exception to this list is the ANSI time function sleep.
The DEC C Run Time Library continues to enforce the 9999 day
delta-time restriction on sleep.
6 IMPACT ON APPLICATION DEVELOPERS
Attached to this BLITZ is a short C program that demonstrates
the current 10,000 day delta-time restriction to application
developers. In all cases, application developers and their
customers must install the ECO.
If an application developer uses OpenVMS shareable images,
there is no required code change and relinking is not necessary;
installing the ECO on the customer system corrects the problem.
If an application developer does not use OpenVMS shareable im-
ages (that is, links using STARLET) and the application is
subject to the 10,000 day restriction, no code change is required,
but the developer must relink the application after installing
the ECO and might need to redistribute the software. The appli-
cation developer's customers must also install the ECO on
their systems.
There are two possible methods of redistributing the software:
o Distribute full executable without shareable images
After installing the ECO and relinking the application,
the application developer redistributes the product to all
customers.
o Link on target system
After installing the ECO, the application developer ships
the object files/libraries they require to the customer. The
application developer's customers must install the ECO and
relink the application.
7 RESOLUTION
If OpenVMS components hang with a message on the console (DEC-
netPlus Phase V, OSI, and DTSS are most likely to hang), you
must set the time ahead. To do so, enter the following
commands:
$ MCR SYSMAN
SYSMAN> SET ENVIRONMENT/CLUSTER
SYSMAN> DO MCR NCL DISABLE NODE 0 DTSS
SYSMAN> DO MCR NCL DELETE NODE 0 DTSS
SYSMAN> SET TIME=20-MAY-1997:01:00
SYSMAN> EXIT
At this point, install the appropriate ECO and perform a system
reboot.
8 C PROGRAM ATTACHMENT
ATTACHMENT: (Show10K.C)
/*
** Program to illustrate 10K day delta time limit
**
**
** Compilation instructions for DEC C compiler:
**
** Compile: CC/DECC Show10K
** Link:
** Using shareable images/IMAGELIB: LINK Show10K
** Using STARLET: LINK Show10K/NOSYSSHR
**
**
** Compilation instructions for VAX C compiler:
**
** Compile: CC/VAXC Show10K
** or
** CC Show10K
** Link:
** Using shareable images:
** LINK Show10K,SYS$INPUT/OPTION
** SYS$SHARE:VAXCRTL.EXE/SHARE
** Using VAX C RTL object library:
** LINK Show10K,SYS$SHARE:VAXCRTL/LIBRARY
** Using STARLET and VAX C RTL object library:
** LINK Show10K/NOSYSSHR,SYS$SHARE:VAXCRTL/LIBRARY,SYS$INPUT/OPTION
** SYS$SHARE:CMA$TIS_SHR.EXE/SHARE
**
**
** Execute: RUN Show10K
**
** Results:
**
** If you receive the following errors during LINK (/NOSYSSHR), then
** somehow DEC C RTL routines are no longer in STARLET. This is
** easily resolved by first installing any DEC C RTL ECO.
**
** %LINK-W-NUDFSYMS, 3 undefined symbols:
** %LINK-I-UDFSYM, DECC$DPRINTF
** %LINK-I-UDFSYM, DECC$EXIT
** %LINK-I-UDFSYM, DECC$MAIN
** %LINK-W-USEUNDEF, undefined symbol DECC$MAIN referenced
** in psect $CODE offset %X0000004E
** in module SHOW10K file FOO$:[USER]SHOW10K.OBJ;1
** %LINK-W-USEUNDEF, undefined symbol DECC$DPRINTF referenced
** in psect $CODE offset %X0000009E
** in module SHOW10K file FOO$:[USER]SHOW10K.OBJ;1
** %LINK-W-USEUNDEF, undefined symbol DECC$DPRINTF referenced
** in psect $CODE offset %X000000B1
** in module SHOW10K file FOO$:[USER]SHOW10K.OBJ;1
** %LINK-W-USEUNDEF, undefined symbol DECC$EXIT referenced
** in psect $CODE offset %X000000C9
** in module SHOW10K file FOO$:[USER]SHOW10K.OBJ;1
**
**
**
** If the restriction is present:
**
** OpenVMS ALPHA: You must install ECO ALPLIBR05_070.
** OpenVMS VAX: You must install ECO VAXLIBR05_070.
**
**
** If ECO applied and restriction removed:
**
** You do not require the ECO.
**
*/
#include <stdio.h>
#include <string.h>
#include <lib$routines.h> /* LIBRTL routine prototypes */
#include <libdef.h> /* return codes */
#include <libdtdef.h> /* operation code for date/time routines */
#ifdef __ALPHA
#define KITNAME "ALPLIBR05_070"
#else
#define KITNAME "VAXLIBR05_070"
#endif
main()
{
long int K_10K = 10000 ; /* 10000 days in future */
unsigned
long int operation = LIB$K_DELTA_DAYS , /* Operation */
status ; /* return status */
unsigned
char ResultTime[ 8 ] ; /* Quadword for time */
char ECOname[ 14 ] = KITNAME ;
/*
** Illustrate what happens
**
** If LIB$_IVTIME is returned, then you will require
** the ECO [ALP|VAX]LIBR05_070.
*/
status = lib$cvt_to_internal_time( &operation ,
&K_10K ,
&ResultTime
);
/*
** This "catch all" for those systems that might have
** ALPLIBR04_070 or VAXLIBR02_070 installed.
*/
if (status == LIB$_NORMAL)
status = lib$cvt_from_internal_time( &operation,
&K_10K,
&ResultTime
);
switch (status) {
case LIB$_NORMAL:
printf( "You do not require the ECO.\n" );
break;
case LIB$_IVTIME:
printf( "You must install ECO %s.\n", ECOname );
break;
default: /* unknown error -- signal it */
lib$signal(status);
}
}
DIGITAL
OpenVMS[TM] Delta-Time Limit Notification Cover Letter
AV-R4Y1A-TE
February 1997
Dear OpenVMS Customer,
The OpenVMS operating system has a documented delta-time limit
that may cause a serious error in some applications and OpenVMS
components beginning on or around 19-MAY-1997. DIGITAL has
provided ECOs (Engineering Change Orders) that remove the delta-
time limit.
Applications and OpenVMS components most likely to experience
errors are those that pass delta-time arguments with values
exceeding 9999 days on system-supplied date routines. The most
likely date that these errors will occur is 19-MAY-1997:00:00,
which is 10,000 days after the common UNIX time origin of 1-JAN-
1970.
DIGITAL strongly recommends that all customers running the
affected versions of OpenVMS install the appropriate ECO, as
follows:
For OpenVMS Alpha Version 6.1 through Version 7.0: ALPLIBR05_070
For OpenVMS VAX Version 5.5 through Version 7.0: VAXLIBR05_070
Systems running OpenVMS Alpha Version 7.1 and OpenVMS VAX Ver-
sion 7.1 are not affected and do not need to install the ECO.
The following OpenVMS components and software products are known
to be affected by the delta-time limit. The ECOs correct the
problems observed in these products.
________________________________________________________________
Product________________________________OpenVMS_Version__________
OpenVMS SECURITY Server OpenVMS Alpha V7.0 only
DECwindows Motif for OpenVMS OpenVMS Alpha V7.0 only
Distributed Computing Environment OpenVMS Alpha V6.2 only
(DCE) for OpenVMS
OpenVMS DECthreads OpenVMS Alpha and OpenVMS
VAX V5.5 through V7.0
(OSU) DECthreads HTTP Server (free- OpenVMS Alpha and OpenVMS
ware provided with the OpenVMS VAX V5.5 through V7.0
Internet_Product_Suite)_________________________________________
Other software products running on OpenVMS might also experi-
ence errors stemming from this delta-time limit. Contact the
appropriate software vendor for more information.
Impact on Application Developers
Application developers and their customers must install the
appropriate ECO.
If an application developer uses OpenVMS shareable images,
there is no required code change and relinking is not necessary;
installing the ECO on the customer system corrects the problem.
If an application developer does not use OpenVMS shareable
images (that is, links using STARLET) and the application is
subject to the 10,000 day restriction, no code change is re-
quired. However, the developer must relink the application after
installing the ECO and might need to redistribute the software.
The application developer's customers must also install the ECO
on their systems.
If your application calls the following OpenVMS RTL Library
(LIB$) routines, you may encounter errors due to the 10,000 day
delta-time limit.
LIB$CVT_TO_INTERNAL_TIME LIB$SUB_TIMES
LIB$CVT_FROM_INTERNAL_TIME LIB$MULT_DELTA_TIME
LIB$CVTF_TO_INTERNAL_TIME LIB$MULTF_DELTA_TIME
LIB$CVTF_FROM_INTERNAL_TIME LIB$CONVERT_DATE_STRING
LIB$CVT_VECTIM LIB$ADD_TIMES
Applications that are written in DEC C and contain portable code
that calls only ANSI time functions are not impacted.
Distribution Channels
DIGITAL is distributing the ECOs only through the following
channels. Customers should obtain the ECOs from:
o DIGITAL Electronic Service Delivery Tools (such as DSNlink,
Web Information and Support Service (WIS), and DIGITAL Dial-
In Access (DIA))
o the World Wide Web at:
http://www.service.digital.com/html/patch_main.html
o the following FTP address:
ftp://ftp.service.digital.com/public/vms/
If you need further information, please contact your normal
DIGITAL support channel.
DIGITAL appreciates your cooperation and patience. We regret any
inconvenience applying this update may cause.
�Digital Equipment Corporation. 1997. All rights reserved.
___________________
[TM] The following are trademarks of Digital Equipment Corporation:
OpenVMS, VAX, VMS, and the DIGITAL logo.
2
|