Trailing-Edge
-
PDP-10 Archives
-
bb-d868e-bm_tops20_v41_2020_dist_1of2
-
4-1-documentation/checkd.tco
There are 15 other files named checkd.tco in the archive. Click here to see a list.
18-Nov-82 12:14:09
*****************************************************************************
*** 25.SDC.1
*****************************************************************************
[S]
Release lost pages can trash structure.
[D]
Errors are handled badly by routine NXTDIR.
[C]
Add error returns from NXTDIR.
*****************************************************************************
*** 26.SDC.1
*****************************************************************************
[S]
Owner ID size checking is wrong.
[D]
String is terminated with a null byte and the code does not
consider this.
[C]
Increase max chars to 14.
*****************************************************************************
*** 27.SDC.1
*****************************************************************************
[S]
Edit 25 could be better.
[D]
2 error returns are justified.
[C]
Make NXTDIR return +1, +2, and +3 depending upon result. +1 is
strange error. +2 is no more directories. +3 is normal case for
stepped directory.
*****************************************************************************
*** 28.SDC.1
*****************************************************************************
[SYMPTON]
CHECKD releases Bat blocks on an RM03 pack.
[DIAGNOSIS]
CHECKD (and Tops-20) neglect to translate the physical addresses
stored in the Bat block back to the logical address that Tops-20 uses,
taking lost sectors into account.
[CURE]
Force CHECKD to translate the Bat block addresses, which are
physical, to logical addresses, accounting for lost sectors, when it
reads the Bat blocks in. Make Tops-20 do the same. This will not
harm other types of drives, as the translation from physical to
logical results in the same address for other drive types.
*****************************************************************************
*** 29.SDC.1
*****************************************************************************
[SYMPTOM]
No operational problem, but for debugging, CHECKD overlaps DDT.
[DIAGNOSIS]
Data area restructuring shifted into the DDT private area.
[CURE]
Move FSTPAG down by two pages to clear DDT.
*****************************************************************************
*** 30.SDC.2
*****************************************************************************
[SYMPTOM]
If an error occurs when checking the bittable consistency of a structure,
for example, the RCDIR JSYS fails because of a trashed directory, the
rest of the validation is aborted but the bittable generated by CHECKD
is compared to the system bit table and a lost pages file is generated.
This file is incomplete and if the file is released, the structure will
be further trashed.
[DIAGNOSIS]
No error recovery is done.
[CURE]
Create an error return to SCANDI which bypasses the bit table stuff,
fix NXTDIR to return consistent flags in AC1 and check these flags
for RC%NMD to indicate success, otherwise generate the error returns.
*****************************************************************************
*** 31.SDC.1
*****************************************************************************
[SYMPTOM]
CHECKD takes only 11 characters for structure owner name.
[DIAGNOSIS]
Wrong value given SOUT on the maximum number of characters in the
string.
[CURE]
Give SOUT maximum of 14 characters.
*****************************************************************************
*** 32.SDC.1
*****************************************************************************
[SYMPTOM]
CHECKD crashes with an illegal memory read; or possibly many
pages could be incorrectly marked and released as lost.
[DIAGNOSIS]
If page zero of a mapped directory file is nonexistent, CHECKD
will crash in DR0CHK with an illegal memory read.
Further, if a file exists in a directory with a .DIRECTORY
extension, and there is a real subdirectory file with the same
filename, CHECKD will try to open the non-directory file as the
directory.
[CURE]
Intercept the illegal memory read with an ERJMP. Make CHECKD use
explicit generation 1 to access the subdirectory files with its
GTJFNs.
*****************************************************************************
*** 33.SDC.1
*****************************************************************************
[SYMPTOM]
Edit number confusion.
[DIAGNOSIS]
Version 5 CHECKD edits started off in octal.
[CURE]
Put the edits in standard form, update the revision history.
*****************************************************************************
*** 34.SDC.1
*****************************************************************************
[S]
CHECK BITTABLE command doesn't release enough pages.
[D]
Buffer to small.
[C]
Make it bigger.
*****************************************************************************
*** 35.SDC.1
*****************************************************************************
[S]
No LOST-PAGES.BIN generated.
[D]
When installing edit 30, an extra line of code was added.
[C]
Remove extra line of code.
*****************************************************************************
*** 36.SDC.1
*****************************************************************************
[S]
Remove edit 34, use CHECK BITTABLE command instead.
[D]
Edit 34 not needed.
[C]
Remove edit 34
*****************************************************************************
*** 37.SDC.1
*****************************************************************************
[S]
When a directory grows larger than 400 pages, CHECKD trashes structures
that it shouldn't.
[D]
CHECKD was never told about larger directories in Version 5.
[C]
Increase the size of the directory space in CHECKD. Decrease both
FSTPAG and MAXLOS to make space to keep larger directory map and DDT
space from overlaping.
*****************************************************************************
*** 38.SDC.1
*****************************************************************************
[S]
Missing tracking edits.
[D]
No tracking edits.
[C]
Put in missing tracking edits.
*****************************************************************************
*** 39.SDC.1
*****************************************************************************
[S]
None observed, but much duplicate code. Could cause problems in the
future.
[D]
Whoever wrote CHECKD copied all the definations need to make run CHECKD
instead of searching a .UNV file.
[C]
Search PROLOG.UNV where most of these data types and definations are
defined anyway.
*****************************************************************************
*** 40.SDC.1
*****************************************************************************
[S]
When responding with YES to "% Structure already mounted. Forcibly
dismmount and return", if CHECKD fails to dismount the structure, CHECKD
will always re-prompt for an NO/YES answer
[D]
DISMNT always returns +1, even when failing to dismount a structure.
[C]
Change error handler after failing MSTR to JRST to START0 and let CHECKD
reinitialize.
*****************************************************************************
*** 41.SDC.1
*****************************************************************************
[S]
CHECKD uses connected structure when defaulting the structure name.
[D]
Code written this way. This is bad, since the connected structure
can't be the one that is being released.
[C]
Don't bother getting the connected structure name. And pass a nul
pointer to the routine that parses the structure name.
*****************************************************************************
*** 42.SDC.1
*****************************************************************************
[S]
RELEASE command doesn't check to see if x-LOST-PAGES.BIN is old.
[D]
No code to do this check.
[C]
Add code to check today's date/time vs. file's date/time.
*****************************************************************************
*** 43.SDC.1
*****************************************************************************
[SYMPTON]
ILLEGAL MEMORY READ in CHECKD when it is scanning a trashed directory.
[DIAGNOSIS]
If a directory's symbol table has a bad FDB address in it, CHECKD will
attempt to read the FDB and can bomb with an ILLEGAL MEMORY READ.
[CURE]
Call routine ADRCHK with the FDB address before trying to reference
the FDB. If the address is bad, output a message and skip this entry
in the symbol table.