Google
 

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.