I discovered a pernicious boot race condition in FAL. Early in system
start up, only the boot structure (which may not be the login
structure), is recognized by Tops-20. MOUNTR has to start and identify
those other structures which should be made available and their
settings, which it does by looking at where they are persisted in
SYSTEM:DEVICE-STATUS.BIN file. Until MOUNTR has completed structure
identification, any RCDIR% might fail for a non-boot structure. This is
exactly what happens for FAL, which is running asynchronously and
sometimes crashed during start up.
One quick and dirty hack was to simply wait to start FAL, which I did,
but that has its own problems which I won't detail here. I tried some
other hacks, such as doing the mount from the EXEC, which had other
different drawbacks.
The real thing to do is to issue a mount request for the structure from
FAL itself and--once Galaxy is up and running--is processed, will make
RCDIR% safe to do (or safer, anyway). At any rate, there should be no
timing issue in this case. As Columbia's Galaxy programmer in the
1980's and having done some minor work in LCG's Galaxy group in the late
1970's, I actually knew how to do such a request and did so, having
written some sub-routines to issue queue requests for our ID system in
the 1980's.
So, I decided to fix FAL to 'do the right thing' and wound up down
another rabbit hole. I should emphasize "/knew/ how to do", as doing
that kind of Galaxy IPCF request is kind of hairy, particularly if you
haven't done it in four decades. After I looked at it for a while, I
grew despaired at having to relearn it again.
Incredibly, DEC defined a new JSYS called QUEUE% which seemed to do the
trick. Briefly, it performs certain Galaxy requests on behalf of the
user, converting it's simpler calling format to an internal Galaxy
format, getting a PID, and returning the response. QUEUE% does a lot of
cool things, including mount requests. Or at least it's documented to...
Besides having its own bugs, there is no code in Galaxy handle a mount
request from QUEUE%... The simpler format that QUEUE% is using is
actually something that Quasar internally calls a 'short' queue request,
which I had known about back in the day. What happens is that the
QSRQUE module converts it into the regular ('long') format and away you
go. This works fine for printing, plotting, punching, and other kinds
of spooling requests, including batch jobs.
There is no short format for mounting, QSRQUE has no code for this
because mount requests are dispatched to MOUNTR... Nothing is persisted
in the failsoft file. So I wrote a conversion routine to do exactly
that before the request makes it to QSRMDA and thence to MOUNTR.
Naturally doing all that resulted in a hailstorm of other issues as I
pushed things a little farther than they had been designed for.
It happens. I'm working through everything, bit by bit.
Tops-20 has a version of the VMS PHONE protocol that I look at from time
to time.
Is there a published specification for this anywhere? I'd like to maybe
do some work on the Tops-20 code, but I'd prefer not to reverse engineer
what I don't have to.
Besides VMS and Tops-20, what other systems speak PHONE?
I finally got my issues with Comcast straightened out and I now have static IP addresses. They are
IPv4: 50.185.8.122
IPv6: 2603:300b:6c4:21a0:c77b:4f58:27e4:6de2
These are also always available in DNS as decnet.theberrymans.com <http://decnet.theberrymans.com/>
Hopefully, this will be the last change for a while.
Mark Berryman
Area 27
Hi again,
The IP address change has been postponed. Sorry about all this. The IP address of the router will remain at 82.70.71.174 for the next few weeks at least.
Regards
Keith
From: Keith Halewood [mailto:Keith.Halewood@pitbulluk.org]
Sent: 27 January 2024 09:50
To: The Hobbyist DECnet mailing list <hecnet(a)lists.dfupdate.se>
Subject: [HECnet] Re: IP address change for A29RT2 (29.2) - CORRECTION
I have misquoted the new IP address.
Here are the correct details:
The address IP address of A29RT2 (29.2) is changing at around 11:00 GMT today from 82.70.71.174 to 82.71.111.30. DNS updates to geat.pitbulluk.org will no doubt propagate at their own pace.
I have been assured that our IPv6 prefix (for what it's worth) isn't changing.
Please update your multinet 'connects', any IP restrictions on your multinet 'listens' and the far ends of your DDCMP over TCP or UDP connections accordingly, assuming pydecnet.
From: Keith Halewood [mailto:Keith.Halewood@pitbulluk.org]
Sent: 27 January 2024 08:57
To: The Hobbyist DECnet mailing list <hecnet(a)lists.dfupdate.se<mailto:hecnet@lists.dfupdate.se>>
Subject: [HECnet] IP address change for A29RT2 (29.2)
Hi,
Sorry for the incredibly short notice and the wide distribution - this wasn't supposed to happen at all.
The address IP address of A29RT2 (29.2) is changing at around 11:00 GMT today from 82.70.71.174 to 82.70.111.30. DNS updates to geat.pitbulluk.org will no doubt propagate at their own pace.
I have been assured that our IPv6 prefix (for what it's worth) isn't changing.
Please update your multinet 'connects', any IP restrictions on your multinet 'listens' and the far ends of your DDCMP over TCP or UDP connections accordingly, assuming pydecnet.
Regards
Keith
Hi,
Just thought I'd mention that I managed to contact someone who was able to package up and send me a copy of the Algol 68 RS compiler and runtime for VAX/VMS. It works very well under 7.3 and has everything,
including the idiosyncrasies that I remember. Every time I compile something I keep thinking "at last!"
So happy.
Keith
I usually don't send LSSM "new machine" updates here, as we're
getting new hardware up and running all the time, but this is such a
beefy machine that I wanted to mention it here.
Over the past week we've built up a VAX-6460...Six 6000-400
processors, 384MB of RAM, Ethernet, a KDB50, and an RA90, running (for
now) VMS v5.5. And the kicker: an FV64A vector processor board! We've
not done anything with it yet, but it passes its diagnostics and VMS
sees it. We will likely put an RA92 on it and install VMS 7.3 soon.
Interestingly, the vector processor has "PROTOTYPE" stamped all over
it. :)
I'll try to put the vector processor through its paces with FORTRAN
in the coming days.
This machine will be on HECnet whenever it's powered up, as with all
of our other DECnet-capable machines, we just have to pull an Ethernet
cable to it and assign it an address. Assuming the vector processor
runs, people here are welcome to request scheduled run times to log in
and use the machine.
-Dave
--
Dave McGuire, AK4HZ
New Kensington, PA
I have misquoted the new IP address.
Here are the correct details:
The address IP address of A29RT2 (29.2) is changing at around 11:00 GMT today from 82.70.71.174 to 82.71.111.30. DNS updates to geat.pitbulluk.org will no doubt propagate at their own pace.
I have been assured that our IPv6 prefix (for what it's worth) isn't changing.
Please update your multinet 'connects', any IP restrictions on your multinet 'listens' and the far ends of your DDCMP over TCP or UDP connections accordingly, assuming pydecnet.
From: Keith Halewood [mailto:Keith.Halewood@pitbulluk.org]
Sent: 27 January 2024 08:57
To: The Hobbyist DECnet mailing list <hecnet(a)lists.dfupdate.se>
Subject: [HECnet] IP address change for A29RT2 (29.2)
Hi,
Sorry for the incredibly short notice and the wide distribution - this wasn't supposed to happen at all.
The address IP address of A29RT2 (29.2) is changing at around 11:00 GMT today from 82.70.71.174 to 82.70.111.30. DNS updates to geat.pitbulluk.org will no doubt propagate at their own pace.
I have been assured that our IPv6 prefix (for what it's worth) isn't changing.
Please update your multinet 'connects', any IP restrictions on your multinet 'listens' and the far ends of your DDCMP over TCP or UDP connections accordingly, assuming pydecnet.
Regards
Keith
Hi,
Sorry for the incredibly short notice and the wide distribution - this wasn't supposed to happen at all.
The address IP address of A29RT2 (29.2) is changing at around 11:00 GMT today from 82.70.71.174 to 82.70.111.30. DNS updates to geat.pitbulluk.org will no doubt propagate at their own pace.
I have been assured that our IPv6 prefix (for what it's worth) isn't changing.
Please update your multinet 'connects', any IP restrictions on your multinet 'listens' and the far ends of your DDCMP over TCP or UDP connections accordingly, assuming pydecnet.
Regards
Keith
I found Muddle (MDL) repositories on Github and now learned about VMS version in that repository but no binaries.
Does anyone have a copy of Muddle 1.03 for VMS? That allows Zork MDL files to run.
Does anyone have a copy of Scribe or alternative software to interpret MSS document files into printouts?
Thanks,
Tim
Time for a new release announcement of TCP/IP for RSX-11M-PLUS.
This is version 2.15 of BQTCP/IP.
This release comes just a couple of days efter 2.14. The reason is
that a critical bug was discovered that can crash the system. Bottom
issue is that a UDP receive which times out can corrupt the system.
It is strongly recommended that systems are updated immediately.
Apart from this, nothing had been updated compared to release 2.14, so
the release notes will for 2.14 will be repeated below, with the
added bugfix for the UDP driver.
Apart from that, I wish you all a happy new year, with lots of new RSX
fun stuff coming.
Highlights:
Bugfixes for potentially serious bugs in all drivers.
New, completely rewritten name resolver.
New, completely rewritten RWHOD daemon, and added related user applications.
Added functionality in UDP and TCP drivers.
Detailed information on things that have been done since the last release:
IP:
. Bugfixes in all drivers. Sometimes task header was not mapped when
doing manipulations that assumed the task header was mapped.
UDP:
. Bugfix in UDDRV. At packet timeout, we tried to free an IP packet that
don't exist.
. Bugfixes in all drivers. Sometimes task header was not mapped when
doing manipulations that assumed the task header was mapped.
. Bugfix in UDP. If UDP gets an ICMP error packet, system crash out, as
it was incorrectly interpreted as a packet with data.
. Add EFN user notification in UDP.
TCP:
. Bugfixes in all drivers. Sometimes task header was not mapped when
doing manipulations that assumed the task header was mapped.
. Add user flag for blocking ASTs in TCP.
. Improve TCP ack, window update and retransmit performance.
. Improve TCP retransmit timer in case we are probing a zero window.
. Improve retransmit handling. Fixed keepalive management including
actually activating it when enabled.
. Remove separate probe handling.
. Bugfix. If a TCP socket initially cannot send, the retry logic might
not ever have sent any data.
. Bugfix. The fast retransmit logic in TCP was not working right.
RESOLVER:
. Improve resolver ACP abort handling to avoid a race condition.
. Improved DNS resolver. Remember all DNS servers we query, and mark
servers bad not only if we get errors, but also if we get no responses
at all.
. Improved DNS resolver. Remember if we have a bad DNS server, and don't
make use of it for a little while. Fix various timing issues in DNS
resolver.
. Improved DNS resolver. If we get NXDOMAIN on a query, and we also
might consider doing an mDNS query for it, we should not fail the query
at the first NXDOMAIN error. Improve staggered DNS query progress.
. Improved DNS resolver. It now can make use of TASK defined logical names.
. Bugfix in DNS handling of CNAMEs.
. Improved DNS resolving. Proper processing of .local domain.
. Added DNS lookup tool.
. Complete new resolver ACP written.
TELNETD:
. Change telnet server to use flag to block ASTs when terminal driver
indicates XOFF, so that we can still be notified for things like
connection closed.
. Fixed TELNET server to properly handle if TC: is not running.
TELNET:
. Bugfix in telnet client. Even if server responded with DONT to
terminal type, the terminal type was sent.
. Bugfix in telnet client. If we are in binary mode, CR should not be
padded.
RWHOD:
. Added new RWHOD daemon, along with RUPTIME and RWHO client.
MAIL:
. Bugfix in mail reader. If a mail didn't have a label on it, the mail
reader could get into an infinite loop. Repair function did not repair
such mails.
. EXPUNGE function in mail was very slow.
. Bugfix. MAILRD could crash when showing mails with long lines.
LPR:
. Changed LPQ program to be able to take hostname argument.
C libraries:
. Bugfix in C IP libraries. Memory corruption could happen because a
register could get corrupted.
. Bugfix in IPC library. neterr was not set on a successful rcv.
BP2 libraries:
. Revised the BP2 inet library.
IPGEN:
. Bugfix in IPGEN.CMD. On initial generation, if manual interface
configuration is selected, the program crashed out.
IPINS:
. Improved IPINS to dynamically select QNA or UNA for ethernet.
IPCONFIG:
. Rewritten IPCONFIG.CMD
Some additional notes:
As usual, I would recommend people to update as soon as possible.
The changes are somewhat critical, but will also lead to a much better
experience.
The patches to the TT: driver cannot be applied automatically, but
requires users to apply the patches themselves, and then run SYSGEN to
generate a new system.
Once added, the TNC2 task can be run at login, and will define logical
names for the user telling where he is connected from, if using telnet
or LAT.
The TT: driver patches also allows the updated MCR to give more
information with the DEV command (SHOW TERMINAL in DCL).
The patched TT: driver also makes is possible to get telnetd fully
vectorized, as this version provides two more addresses that are
required by telnetd to access information in the kernel.
The other patches to RSX can be applied automatically by IPGEN, either
if used interactively when answering YES to the question about applying
RSX patches, or by running IPGEN explicitly to do the patches, with the
command:
@IPGEN PATCH
Specific information about the patches:
LAT: Fixes a memory leak, and adds the ability to read where a terminal
connection comes from when using LAT, using SF.GMC.
RMSDAP: Fixes a bug in getting the file protection, so the XAB gets
filled in correctly for remote files.
RMSDSP: Fixes that some numbers were displayed in signed octal, which
should have been displayed in decimal or unsigned octal, depending on
number.
DCL: Added terminal attributes for COLOR.
MCR: Too many fixes to be listed here...
INS: Fixes that users cannot circumvent protection on common regions.
HEL: Fix that users can login with session ID, or with directory, in
addition to name and UIC.
ACNT: Add no password change attribute to accounts.
PSW: Add no password change handling.
SYL (SYSLOG): Add terminal idle tracking on accounts without idle logout.
ECL: If the receiving machine is very slow, and the sending machine is
very fast, and the receiver announce several large buffers available,
ECL cannot keep up, and drops packets. This is a problem with the DECnet
flow control, as it is used in RSX. The simple solution is to allow more
outstanding buffers when receiving. A more complex solution would be to
change how RSX DECnet do flow control, but that would require rewriting
a fair chunk of the ECL module.
NMVACP: Fix handling of "show known nodes" command, which could skip
some nodes.
NVP: Add ability to use session ID or directory name for user identity
in DECnet nodename specifications.
EPM: Fix handling of ethernet multicast.
NTDEMO: Fix that hosts without names should display DECnet address.
NCP: Parse of additional information types in NICE messages.
As usual, the distribution is available from:
ftp://mim.stupi.net/bqtcp.dskftp://mim.stupi.net/bqtcp.tap
!!! BQTCP is also available through RPM !!!
(As an additional note, if there are any problems communicating with Mim
using port 21, the ftp service is also available at port 10021)
The documentation is also available through ftp on Mim, or also at
http://mim.stupi.net/tcpipdoc
I hope people find this update useful.
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt(a)softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol