PDP-10 / its

Incompatible Timesharing System
Other
841 stars 80 forks source link

COMSAT crashes because it can't find local host name #2192

Closed bictorv closed 1 year ago

bictorv commented 1 year ago

Problem:

Since a few weeks, right after boot, I get a message on the console: TOP LEVEL INTERRUPT 200 DETACHED JOB # 3, USR:TARAKA CNAVRL 18:53:55 which means COMSAT crashed, and mail doesn't work, which is quite a drawback.

Diagnosis:

Doing :UJOB and :PROBE reveals it crashed at DEATHV+1, and going back up the call chain shows that RESOLV"HSTSRC gave a non-skip return at MAPI20+4. This means it couldn't find the name for our IP address! How come? The address (in OWNHST) is gotten from RESOLV"OWNHST (in the MYADDR routine), which reads it from ITS by reading the IMPUS3 symbol.

The IMPUS3 symbol is defined in SYSTEM;CONFIG, but that definition is no longer used for the IP address of the system (since #2061 the IP is received from the IMP at runtime). So when I changed the IP address of my ITS system recently, I just updated the address in my KLH10 init file, and everything just worked - except COMSAT. :-(

Solution: One possibility would be to change RESOLV so it reads the local IP address from the NIFIPA location in ITS instead of from the IMPUS3 symbol. This however would require that all programs using the RESOLV library be recompiled.

Another possibility is to change SYSTEM;IMP which reads the IP address from the IMP (since #2061 ) to also patch the ITS symbol table and update the IMPUS3 symbol with the right value (having read it from the IMP). This would be similar to how #2038 updates MYCHAD after reading the Chaosnet address from the CH11 device..

Patch: Ready, will make a pull request.

larsbrinkhoff commented 1 year ago

Option number two would be nice if any programs were to use IMPUS3 directly instead of going through RESOLV. Or if an IMP doesn't support the IP query extension.

@rcornwell, I think your IMP doesn't support querying the host IP number, right?

bictorv commented 1 year ago

Option number two would be nice if any programs were to use IMPUS3 directly instead of going through RESOLV. Or if an IMP doesn't support the IP query extension.

I agree, so that's why #2193 does it that way.

bictorv commented 1 year ago

So when I changed the IP address of my ITS system recently, I just updated the address in my KLH10 init file, and everything just worked - except COMSAT. :-(

And for clarity: I also updated the address also in SYSHST;H3TEXT >. If the old address (the one in SYSTEM;CONFIG) had still been there, COMSAT would not have crashed, and I would not have discovered this bug (or what you might call it).