PDP-10 / its

Incompatible Timesharing System
Other
857 stars 81 forks source link

.MAIL.;NAMES needs reparsing when IP/Chaos addresses change (e.g. for INQUIR to work) #2330

Closed bictorv closed 3 weeks ago

bictorv commented 1 month ago

Typically, your system is set up to handle INQUIR updates locally, by defining UPDATE-ITS-INQUIR using UPDATE-INQUIR@DB (where DB is your local ITS name) in .MAIL.;NAMES > (henceforth NAMES).

If you change only the IP address of your ITS (after running COMSAT at least once, and update your H3TEXT accordingly, but not NAMES since the ITS name wasn't changed), INQUIR will still attempt to send updates to your old IP address, which typically fails.

The reason for this is that COMSAT uses the "compiled" version of NAMES (named .MAIL.; LIST EQV) if the "source file" (NAMES) hasn't been updated (by checking file creation date), and the compilation (for efficiency) saves the IP (or Chaos) addresses of hosts used in the source file, rather than their names. If NAMES has been updated, or the compiled file is missing, the source is recompiled. (See EQVCHK in COMSAT.)

In order to make COMSAT use the updated address, a workaround could be to make SYSHST;H3MAKE (or SYSHST;HOSTS3) force COMSAT to regenerate LIST EQV, e.g. by stopping COMSAT, removing LIST EQV, and restarting COMSAT (which happens every hour through DRAGON;HOURLY CNAVRL, but why wait?).

Before you suggest that COMSAT could check if the local host address has changed and if so recompile NAMES, note that the problem also occurs for any other host names in NAMES which had their addresses updated.

The suggested workaround wouldn't help if host/address translation was done using DNS or HOSTAB, but we're not there yet so let's keep it simple.

Thoughts?

bictorv commented 1 month ago

And of course the standard problem (above) could be avoided by defining UPDATE-ITS-INQUIR using just UPDATE-INQUIR (without a host), but the general problem is still there.

Another workaround would be to let COMSAT check if SYSBIN;HOSTS3 > is created later than LIST EQV and then recompile NAMES. Then H3MAKE would only need to restart COMSAT after the compilation finishes, without messing with the EQV file itself.

eswenson1 commented 1 month ago

I like your last suggestion: compare modification timestamp of sysbin;hosts3 > and recompile the EQV list (.mail.;names >) if later than compiled version.

Can COMSAT do that in its main loop without shutting dow ?

bictorv commented 1 month ago

Can COMSAT do that in its main loop without shutting dow ?

Don't know, and I guess the effect would depend on the size of NAMES (and thus the time to recompile it). We can try it!

bictorv commented 1 month ago

Can COMSAT do that in its main loop without shutting dow ?

Don't know, and I guess the effect would depend on the size of NAMES (and thus the time to recompile it). We can try it!

It can (and does) to that (every now and then) already, so it will be done also now. The slowdown of checking the HOSTS3 file should be negligible.