T10 and T20 we can fix/updated to whatever we chose as the "long term solution",
and if we are "useful to the society" we document how the "next
generation" should
solve the problem. I suggest a 100-Year vision here, and with the current format of 16
bits
SOMEONE has to make another fix within the 100 years, most likely after I'm gone.....
Or can we document "today's fix" and the "next fix"?
--P
From: "John Forecast" <john at
forecast.name>
To: "hecnet" <hecnet at Update.UU.SE>
Sent: Wednesday, December 30, 2020 7:17:59 PM
Subject: Re: [HECnet] DECnet-10 doesn't work past Nov 9 2021?
> On Dec 30, 2020, at 5:11 PM, Johnny Billquist <
[ mailto:bqt at softjar.se |
> bqt at softjar.se ] > wrote:
> Well, for another year from now, this isn't
even being tested. Only on Nov 9,
> 2021 will the value exceed 32767, at which point things could potentially
> become funny.
> VMS apparently seems to just truncate at 15 bits, so it reports dates back in
> 1977 again after that time. But we don't know if that truncation happens at
> sender or receiver...
> RSX should continue to show correct dates on
events up until 2065, treating the
> value as an unsigned 16 bit value.
> Since any kind of fixing will require changes in
the code anyway, I do think the
> least intrusive change is to just adopt what RSX did, and use all 16 bits as an
> unsigned value, which means nothing really changes beyond that we continue as
> things are.
> If I got things right, VMS might show and/or
report dates back in 1977 again.
> Annoying, but nothing worse than that.
> Tops-10 seems to currently do a BUGHLT, so that
really needs fixing.
> TOPS-20 is a bit unknown, but it might just report
wrong dates.
> RSTS/E? Paul, could you check? I would hope that
maybe the last release/patches
> would make RSTS/E do the same thing as RSX.
> I have no idea about Ultrix or any other
implementation. Anyone else who can
> complement this information with more details?
It?s pretty painful to test this on Ultrix. The latest
version I have a DECnet
release for is 4.0 which does not include Y2K patches. In particular, date
cannot accept a year past 1999 so you have to keep setting the date/time to
12312359.59, let it roll over the date to the following year and repeat until
you get to the desired year. That said, it doesn?t crash but it does generate
some strange dates - probably because it?s expecting to display the year in 2
digits:
Event type 4.15, Adjacency up
Occurred 18-Sep-212 12:00:13.0 on node 63.223
Circuit QNA-0
Adjacent node = 63.2
date
Sun Jan 1 00:00:35 EST 2023
John.
> We could perhaps create a page with a summary of
what we know.
> Johnny
> On 2020-12-30 23:00, Thomas DeBellis wrote:
>> Ah, I got it; I was counting and thinking the
wrong way.
>> If RSX is using unsigned and hasn't blown up, then I don't see why
anybody else
>> shouldn't at least have a look. I'll have to check further into the
Tops-20
>> conditional to see what it's all about; the code is completely different
from
>> Tops-10. The question is where else it might be being handled.
>> I have sources to everything except the Tops-20 NICE process; NMLT20, so if I
>> have to fix something there... That's a bummer; we were a source site and
asked
>> for years (particularly for early versions which would crash if you looked at
>> them wrong). I don't suppose anybody having ever heard of this; it appears
to
>> have been write in some variant of BLISS.
>> Meanwhile, if anybody wants to try my trivial patch to D36COM, I'd like to
hear
>> about it. I'm pretty sure it will keep your Tops-10 machine from crashing...
>> On 12/28/20 11:20 PM, Johnny Billquist wrote:
>>> Argh. 32766 would be 77776 of course, and
so on... But I hope people get the
>>> idea. I see no reason why not just treat it as an unsigned 16 bit value for
>>> now.
>>> And as Peter suggest, if we want to extend
things further, we can change the
>>> base. But simply going unsigned already gives us 44 more years to think
about
>>> it. And at least RSX have already done this since 20 years ago.
>>
> Johnny
>>> On 2020-12-29 05:18, Johnny Billquist
wrote:
>>>> 16363 days, means 32766 half days,
which is octal 77777, which is 7FFF hex. 16
>>>> bits can hold up to 65535, which is 177777 octal, or FFFF hex, if
treated
>>>> unsigned. Which with the current encoding will cover up to the year 2065.
>>>
> Johnny
>>>> On 2020-12-29 05:06, Thomas DeBellis
wrote:
>>>>> I did some date arithmetic; there
are 16,383 days between 1/1/1977 and
>>>>> 11/9/2021.
>>>>> Since Tops-10 is calculating by
half days, that's why I clamp it to the unsigned
>>>>> octal value of 177777 (3FFF hex).
>>>>> Would a later version of NICE have
expanded this to four bytes? That seems like
>>>>> the thing to do.
>>>>> On 12/28/20 11:00 PM, Johnny
Billquist wrote:
>>>>>> Uh? It seemed VMS is treating
it as signed, and/or wrapping at 15 bits, so it
>>>>>> fails after Nov 9, 2021.
>>>>>> Why not just do as RSX, and
treat it as unsigned 16 bits. Which leaves it
>>>>>> working correct until 2065.
>>>>>> If we, at some point, want to
change things after that, we can either change the
>>>>>> format, or change the base year.
>>>>>
> Johnny
>>>>>> On 2020-12-29 04:52, Thomas
DeBellis wrote:
>>>>>>> So it appears that NICE
wants the Julian half day count in an unsigned short, or
>>>>>>> 16 bits; that seems obvious enough.
>>>>>>> I wrote a Tops-10 patch to
have it wrap like what appears to be happening on
>>>>>>> OpenVMS.
>>>>>>> In D36COM.MAC at NMXTIM+9,
change the following two lines (which skip or fall
>>>>>>> into the COM911 BUGHLT),
>>>>>>> SKIPL T2 ;MAKE SURE WE
HAVE A POSITIVE NUMBER OF SECONDS
>>>>>>> TDNE T1,[XWD -1,600000] ;MAKE SURE NO DATE OVERFLOW
>>>>>>> to
>>>>>>> SKIPGE T2 ;Do WE HAVE A
POSITIVE NUMBER OF SECONDS?
>>>>>>> MOVMS T2 ; No. Fine, now we're plenty positive
>>>>>>> TDZA T1,[XWD -1,600000] ;MAKE SURE never any DATE OVERFLOW
ever
>>>>>>> However, I don't run
any Tops-10 systems, so if anybody wants to try this and
>>>>>>> let me know, that would be appreciated. Better to wrap the
count than to just
>>>>>>> stop code. At WPI, we would have considered that
'rude'.
>>>>>>>
------------------------------------------------------------------------
>>>>>>> On 12/28/20 10:08 PM, Thomas DeBellis wrote:
>>>>>>>> If I'm
understanding this correctly, it would seem to indicate that there is no
>>>>>>>> reason for Tops-10 to crash because of a Julian half day
roll over. I had
>>>>>>>> verified that there is no problem with the internal time
for system logging
>>>>>>>> (I.E., the records that SPEAR gets out of ERROR.SYS).
>>>>>>>> Tops-10 and Tops-20
share the same internal time format (a significant
>>>>>>>> difference between Tops-20 and TENEX), even if Tops-10
doesn't handle it
>>>>>>>> properly as an unsigned word, it will still handle events
up to 27-Sep-2217.
>>>>>>>> Since that's over 196 years from now, I would assume
this is adequate time to
>>>>>>>> really address the problem.
>>>>>>>> I'll take another
look at the code and see if I can't come up with a workaround.
>>>>>>>> Meanwhile, I wanted to
make sure I understood what was going on where with the
>>>>>>>> output below. Which OPCOM is running where? Is this only
OPCOM output from
>>>>>>>> APOLLO as HERMES comes up and sends a circuit up message?
The START /NETWORK
>>>>>>>> DECNET is issued on HERMES?
>>>>>>>> On 12/27/20 8:17 PM,
Jason Brady wrote:
>>>>>>>>> Ah...here are the
test system (HERMES) operator log messages (notice the
>>>>>>>>> 31-JAN-1977 00:00:06.21 timestamp):
>>>>>>>>> $ START /NETWORK
DECNET
>>>>>>>>> %%%%%%%%%%% OPCOM 27-DEC-2022 16:41:31.22
%%%%%%%%%%%
>>>>>>>>> Message from user DECNET on HERMES
>>>>>>>>> DECnet starting
>>>>>>>>> %RUN-S-PROC_ID,
identification of created process is 00000125
>>>>>>>>> %DCL-I-SUPERSEDE, previous value of MOM$SYSTEM has
been superseded
>>>>>>>>> %DCL-I-SUPERSEDE, previous value of
MOM$SYSTEM_NOSOFTID has been superseded
>>>>>>>>> %DCL-I-SUPERSEDE, previous value of MOM$SYSTEM_SOFTID
has been superseded
>>>>>>>>> %NCP-I-NOINFO, No information in database
>>>>>>>>> %RUN-S-PROC_ID, identification of created process is
00000127
>>>>>>>>> $
>>>>>>>>> %%%%%%%%%%% OPCOM 27-DEC-2022 16:41:36.76
%%%%%%%%%%%
>>>>>>>>> Message from user DECNET on HERMES
>>>>>>>>> DECnet event 4.10, circuit up
>>>>>>>>> From node 2.404 (HERMES), 31-JAN-1977 00:00:06.21
>>>>>>>>> Circuit EWA-0
>>>>>>>>> $
>>>>>>>>> %%%%%%%%%%% OPCOM 27-DEC-2022 16:41:41.87
%%%%%%%%%%%
>>>>>>>>> Message from user DECNET on HERMES
>>>>>>>>> DECnet event 4.15, adjacency up
>>>>>>>>> From node 2.404 (HERMES), 31-JAN-1977 00:00:06.21
>>>>>>>>> Circuit EWA-0, Adjacent node = 2.400 (APOLLO)
>>>>>>>>> And from APOLLO
adjacent node (down/up when DECnet cycled):
>>>>>>>>> APOLLO->
>>>>>>>>> %%%%%%%%%%% OPCOM 27-DEC-2020 16:31:27.60
%%%%%%%%%%%
>>>>>>>>> Message from user DECNET on APOLLO
>>>>>>>>> DECnet event 4.18, adjacency down
>>>>>>>>> From node 2.400 (APOLLO), 27-DEC-2020 16:31:27.59
>>>>>>>>> Circuit EWA-0, Adjacent node listener receive
timeout
>>>>>>>>> Adjacent node = 2.404 (HERMES)
>>>>>>>>> APOLLO->
>>>>>>>>> %%%%%%%%%%% OPCOM 27-DEC-2020 16:42:33.54
%%%%%%%%%%%
>>>>>>>>> Message from user DECNET on APOLLO
>>>>>>>>> DECnet event 4.15, adjacency up
>>>>>>>>> From node 2.400 (APOLLO), 27-DEC-2020 16:42:33.54
>>>>>>>>> Circuit EWA-0, Adjacent node = 2.404 (HERMES)
>>>>>>>>> On Sun, Dec 27,
2020, at 5:03 PM, Paul Koning wrote:
>>>>>>>>>> That
doesn't fully answer the question. What you see is the system log, which
>>>>>>>>>> presumably uses VMS time stamps. Those have a
wide range. The question is what
>>>>>>>>>> the DECnet events would show, when encoded in the
NICE protocol. If you
>>>>>>>>>> configure it to send events (like node reachable
or circuit up) to another
>>>>>>>>>> node, what do the timestamps look like on that
other node?
>>>>>>>>>> paul
>>>>>>>>>>> On Dec 27,
2020, at 7:42 PM, Jason Brady < [ mailto:jr_brady at
fastmail.com |
>>>>>>>>>>> jr_brady at
fastmail.com ] < [
mailto:jr_brady at
fastmail.com |
>>>>>>>>>>> mailto:jr_brady at
fastmail.com ] >>
wrote:
>>>>>>>>>>> Booted
test Alpha system running OpenVMS 8.4 and set the date to 27-DEC-2022.
>>>>>>>>>>> Started DECnet Phase IV. No errors.
>>>>>>>>>>> From node
APOLLO, no problem transferring files from the test system and
>>>>>>>>>>> displaying network info (TELL ... SHOW EXEC,
etc.).
>>>>>>>>>>> Snippet
from test system NML$SERVER.LOG:
>>>>>>>>>>>
--------------------------------------------------------
>>>>>>>>>>> Connect request received at 27-DEC-2022
16:29:25.54
>>>>>>>>>>> from remote process
APOLLO::"0=JASON"
>>>>>>>>>>> for object
"SYS$COMMON:[SYSEXE]NML.EXE"
>>>>>>>>>>>
--------------------------------------------------------
>>>>>>>>>>> Snippet
from test system FAL$SERVER.LOG:
>>>>>>>>>>>
--------------------------------------------------------
>>>>>>>>>>> Connect request received at 27-DEC-2022
16:26:56.85
>>>>>>>>>>> from remote process
APOLLO::"0=JASON"
>>>>>>>>>>> for object
"SYS$COMMON:[SYSEXE]FAL.EXE"
>>>>>>>>>>>
--------------------------------------------------------
>>>>>>>>>>> Is the
above satisfactory, at least for OpenVMS Alpha?
>>>>>>>>>>> Regards,
>>>>>>>>>>> Jason
>>>>>>>>>>> On Sun,
Dec 27, 2020, at 10:06 AM, Robert Armstrong wrote:
>>>>>>>>>>>> >
John Forecast wrote:
>>>>>>>>>>>> >DECnet event logging for any system
may fail after Nov 9th 2021.
>>>>>>>>>>>> Oh,
that's a much bigger deal! Do you happen to know if VMS handles this field
>>>>>>>>>>>> as unsigned?? A lot of people here are
going to be bummed if VMS quits working
>>>>>>>>>>>> next fall...
>>>>>>>>>>>> Bob
> --
> Johnny Billquist || "I'm on a bus
> || on a psychedelic trip
> [ mailto:bqt at softjar.se | email: bqt at softjar.se ] || Reading murder books
> pdp is alive! || tryin' to stay hip" - B. Idol