Google
 

Trailing-Edge - PDP-10 Archives - bb-d868e-bm_tops20_v41_2020_dist_1of2 - 4-1-documentation/tops20.tco
There are 24 other files named tops20.tco in the archive. Click here to see a list.
*****************************************************************************
 *** 1960.SDC.1
*****************************************************************************



[S]

     Batch jobs requeued indefinatly.


[D]

     BATCH.CMD contains LOGOUT and BATCON cannot  understand  why  the
job isn't logged in.


[C]

     Threefold.  For the monitor fix CRJOB  to  correctly  use  CJ%ETF
when CJ%FIL is not set.
*****************************************************************************
 *** 1961.SDC.1
*****************************************************************************



[SYMPTOM]


     A program that has a lot of temporary files open, gets an unknown
error from PMAP.

[DIAGNOSIS]


     There is a case when, in attempting to create a  new  page  table
and  there  is  no more room in the JSB to map the new page table, the
code takes an error return without returning an error code.

[CURE]


     In routine NEWLFS, if the call to  ASGPAG  fails,  return  MONX02
(JSB full) in AC1.
*****************************************************************************
 *** 1962.SDC.1
*****************************************************************************

[SYMPTOMS]

 If a user dials in to the system and hangs up without logging in, a
new user dialing into the system on the same line with in 10 seconds
will get the logout message from the last user and then find his line
hung.

[DIAGNOSIS]

 If a remote line is hungup and the job on that line is not logged in TOPS20
just logs the job out without detaching the job. Output still goes to the
disconnected line which can confuse RSX20F if a new user dials into the same
line while the output is in progress.

[CURE]

 The solution to this problem is to detach all jobs before we decide how
to dispose of them.
*****************************************************************************
 *** 1963.SDC.1
*****************************************************************************



[SYMPTOM]


     If directory PS:<SYSTEM>'s disk quota was  something  other  than
+INF  when  the  system  is  booted, it is impossible to set the quota
higher than it was at startup.

[DIAGNOSIS]


     At system startup, PS:<SYSTEM>'s ALOC2 entry, which contains  the
number  of pages available to the directory, is set to 377777,,0 minus
the current allocation of the directory.  The system  does  not  check
the  logged  in quota to see if it is something other than +INF.  When
changing the logged-in quota, Tops-20 will subtract the new quota from
the  directory's  current quota, and use this difference to update the
ALOC2 entry.  This will only work if the ALOC2 entry was derived  from
the logged-in quota, which is not the case for PS:<SYSTEM>.

[CURE]


     When determining the difference  between  the  new  and  the  old
quota,  if  the  directory is currently open, use the ALOC2 entry plus
the current disk allocation of the directory  to  determine  what  the
previous  quota  was.  Then subtract the new quota from this figure to
determine how much to update the ALOC2 entry.
*****************************************************************************
 *** 1964.SDC.1
*****************************************************************************
[S]
	XHLLI was occasionally assembled as a XMOVEI in some
user's programs.

[D]
	XHLLI was GOPDEF'd as an XMOVEI in MONSYM.

[C]
	Change the GOPDEF to the proper HLLI 0,0.
*****************************************************************************
 *** 1965.SDC.1
*****************************************************************************



[S]

     PSECTs NRCOD and BGSTR overlap.


[D]

     Ditto.


[C]

     Move NRCOD.

*****************************************************************************
 *** 1966.SDC.1
*****************************************************************************



[SYMPTOM]


     After dismounting a structure, the OFN for  its  <ROOT-DIRECTORY>
remains assigned.

[DIAGNOSIS]


     At mount time, routine CHKBAK is called, which maps  a  directory
without  unmapping  the previous directory.  The previous directory is
always <ROOT-DIRECTORY>.  This accounts for the extra share count.

[CURE]


     Before mapping a new directory in CHKBAK, check if a directory is
already mapped, and if so, call RELOFN to release its OFN.  Remove the
previous edit (1956).
*****************************************************************************
 *** 1967.SDC.1
*****************************************************************************



[SYMPTOM]


     J0NRUN Bughalts when running large programs.

[DIAGNOSIS]


     PAGEM code allows process to grow too large, using up all of  the
available  memory.  There is no room for the process to get larger and
no room for other forks to fit in memory.

     [CURE]


     Place lower limit on size of forks by using  BALSHC  rather  than
GNPBAS in determining when to call local garbage collection.
*****************************************************************************
 *** 1968.SDC.1
*****************************************************************************



[S]

     Using the COMND JSYS:  if  any  of  CTRL/R,  CTRL/U,  CTRL/V,  or
CTRL/W  which  are turned on in the user's CCOC mask is typed directly
after a failing command, and a .CMINI is done, the character is echoed
and then its format action (if any) takes place;  if a command redo is
possible, a CTRL/H typed directly after a failing command to a  .CMINI
is  echoed  (if on in CCOC), and is followed by a CR/LF, reprompt, and
typeout of the correct fields from the last command.

     Gratuitous SFCOC JSYS calls from COMND and TEXTI.


[D]

     Most input within COMND is done  by  an  internal  invocation  of
TEXTI,  which turns off echoing of CTRL/R, CTRL/U, CTRL/V, and CTRL/W;
however, the first character after a .CMINI, if a redo is possible, is
read  using  the BIN JSYS with TT%WAK set to wake on all characters so
the  first  character  can  be  checked  immediately.   If  the  first
character wasn't a CTRL/H, a BKJFN is done, and the .CMINI returns, so
.CMINI echoes each of CTRL/R, CTRL/U, CTRL/V, and CTRL/W which are  on
in  the user's CCOC mask;  if CTRL/H was typed, it is echoed if turned
on in the user's CCOC mask, then a CR/LF, the prompt and  the  correct
fields  from  the  last  command  are  typed.   Even  though CTRL/H is
normally output or simulated, it looks ugly  when  typed  out  by  the
.CMINI  reparse,  and  if  it  isn't echoed, .CMINI no longer needs to
start a new output line after the CTRL/H.

     COMND and TEXTI don't check to see if the CCOC bits  are  already
correct before issuing SFCOC jsys calls.


[C]

     Set CTRL/R, CTRL/U, CTRL/V, and CTRL/W to ignore at  the  top  of
the  COMND  jsys,  so  they  will not be echoed by the BIN issued by a
.CMINI.  Don't bother to change the CCOC bits at TEXTI  if  TEXTI  was
called  from  COMND.  Set CTRL/H to ignore before doing the BIN in the
.CMINI function;  note that CTRL/H will not be turned off if  no  redo
is possible (if the last command didn't fail, or there were no correct
fields in the last command).  Do not start a  new  output  line  on  a
.CMINI redo.

     Skip over invoking SFCOC if the CCOC bits are already correct.
*****************************************************************************
 *** 1969.SDC.1
*****************************************************************************
[S]
	An IDTNC set up for read-date-only could sometimes return a
ZONEX1 error (bad time zone).

[D]
	An internal JSYS call at IDTNC8:+13 was being passed garbage
in the left half of AC 4, from the last JSYS done. This garbage could
and usually did represent an illegal time zone.

[C]
	In a date only IDTNC, make sure the left half of AC 4 is zero.
This may have been a typo originally; the old instruction
was a HRRI and the correct instruction would have been a HRRZI.
*****************************************************************************
 *** 1970.SDC.1
*****************************************************************************



[S]

     ILSRC Bughlt when user logs in.


[D]

     When the accounting file is corrupted the monitor may attempt  to
map in a page which has a bad page number causing an ILSRC Bughlt.


[C]

     Check for a bad page number before mapping and if one is detected
issue an ACTBBD Bugchk and cause the account validation to fail.  When
an ACTBBD Bugchk is generated the accounting file should be rebuilt.

*****************************************************************************
 *** 1971.SDC.1
*****************************************************************************



[S]

     ILSRC Bughlt when user logs in.


[D]

     When the accounting file is corrupted the monitor may attempt  to
map in a page which has a bad page number causing an ILSRC Bughlt.


[C]

     Check for a bad page number before mapping and if one is detected
issue an ACTBBD Bugchk and cause the account validation to fail.  When
an ACTBBD Bugchk is generated the accounting file should be rebuilt.

*****************************************************************************
 *** 1972.SDC.1
*****************************************************************************



[SYMPTOM]


     ILMNRF Bughlts and errors reading ERROR.SYS after installing  PCO
20-MONITO-364.   It  is  possible  that other errors may have resulted
from this problem.

[DIAGNOSIS]


     Routine SEEADR clobbers Q1, which is assumed to be saved over the
call  by  SEBCHK.  SEBCHK then uses a garbage pointer that it believes
points to a Syserr block.

[CURE]


     Have routine SEEADR save  the  Q  registers  as  well  as  the  P
accumulators  upon  entry.  The enlcosed patch contains the correction
to the original patch as well as the original patch  itself.   If  the
original patch was installed, then it is only necessary to install the
correction.  In order to install PCO 20-MONITO-364, include the entire
enclosed patch to both Tops-20 and CHECKD.
*****************************************************************************
 *** 1973.SDC.1
*****************************************************************************



[SYMPTOM]

     System  hangs  with  jobs  unable  to  logout,  sometimes  J0NRUN
BUGHLTs.

[DIAGNOSIS]

     TTMSGs to ARPANET NVTs do not always work.  Output to  NVTs  only
happens  during  TTY output scan by the NCP fork.  TTSOBE does not see
output from TTMSG, and NETTCS never gets called.

[CURE]

     Insert a test for TT%SAL for the line in the IMPTS routine.
*****************************************************************************
 *** 1974.SDC.1
*****************************************************************************



[S]

     FLKTIM bugchks.


[D]

     Fork A tries to lock the fork lock and fails.

     The lock is freed.

     Fork A successfully locks the fork lock.

     Fork A tries to lock again (nested  lock)  but  fails  because  a
register was trashed.


[C]

     Use a HRRZ instruction instead of a HRR so garbage  in  the  left
half of the AC is cleared.

*****************************************************************************
 *** 1975.SDC.1
*****************************************************************************
This edit was never used.
*****************************************************************************
 *** 1976.SDC.1
*****************************************************************************



[SYMPTOM]


     Two jobs attached to the same terminal.

[DIAGNOSIS]


     The ATACH Jsys can be used to attach a job  to  another  terminal
without checking if the other terminal is in use.

[CURE]


     Before assigning the dynamic data for the object terminal,  check
if that terminal is in use.  If so, give a DEVX2 error.
*****************************************************************************
 *** 1977.SDC.1
*****************************************************************************



[S]

     BIN,  BOUT,  SIN,  SOUT,  and  ERSTR   do   not   work   with   a
600000+.DVTTY,,Line #  TTY  designator.   ILLIND, ILMNRF BUGHLT's with
SOUT.


[D]

     No code to check for this sort of TTY designator.  With SOUT,  an
ILDB  of  LH  of  FILBYT(JFN),,AC  A is done, but JFN contains the TTY
designator, so ILLIND and ILMNRF BUGHLT's can happen  from  trying  to
increment (or use) the garbage byte pointer.


[C]

     Add a routine, C60DVT, to  translate  in  place  (in  AC  JFN)  a
600000+.DVTTY,,Line #  TTY designator to the 400000+Line # kind.  Call
this from within BIN, BOUT, SIN, SOUT, and ERSTR.
*****************************************************************************
 *** 1978.SDC.1
*****************************************************************************



[S]

     When  doing  a  parse-only  GTJFN  with  logical  name  expansion
suppressed, (GJ%OFG and G1%SLN set), and device DSK:  is specified, or
no device or directory is specified, and DSK:  is  defined,  then  the
device  for  the  JFN  is  arbitrarily  defined  to  be  the connected
structure, even though other structures may be defined on DSK:.


[D]

     The case of DSK:  being used and G1%SLN set (local  flag  NOLOGF)
is never considered, and so an arbitrary action is taken.


[C]

     In routine CHKDSK, if  NOLOGF  is  set,  and  logical  name  DSK:
exists,  do  not  translate  DSK:.   If DSK:  does not exist, however,
translate DSK:  to the connected structure.
*****************************************************************************
 *** 1979.SDC.1
*****************************************************************************
[S]
 Excessive use of magic numbers.

[D]
 Engineering contamination.

[C]
 Change them to symbols.
*****************************************************************************
 *** 1980.SDC.1
*****************************************************************************



[SYMPTOM]


     ILLUUO Bughalts.

[DIAGNOSIS]


     It is possible to get a Parse-only Jfn on a file with  no  device
dispatch  table  address stored in the JFN block.  This occurs when an
unknown device name is used.  There  are  two  places  in  GTJFN  that
assume the dispatch table is there and try to call a routine from it.

     [CURE]


     Check for a non-zero address in the JFN block, and if it is  zero
return error GJFX40.
*****************************************************************************
 *** 1981.SDC.1
*****************************************************************************



[SYMPTOM]


     A parse-only  GTJFN  will  succeed  if  the  angle  brackets  are
supplied  in  the  default directory string, while a normal GTJFN will
fail with the same default directory string.

[DIAGNOSIS]


     The routine that reads the default  string  from  the  user  will
terminate  on any character that is not legal in a directory name.  If
the default string starts with "<", a null string will be returned and
stored in the JFN block.

[CURE]


     Check the string returned by REDFLT.  If it is null, return error
GJFX54 - Null directory name given.
*****************************************************************************
 *** 1982.SDC.1
*****************************************************************************
[S]
 With Edit 1978 installed, garbage returned for device DSK: if G1%SLN set for
parse-only JFN and DSK: is defined.

[D]
 Due to version number skewing, the source file tested was for the cancelled
Edit 1975, and the one inserted was typed in as Edit 1978.  Naturally, as one
might guess, Edit 1978 contained a typo.

[C]
 Fix the typo.
*****************************************************************************
 *** 1983.SDC.1
*****************************************************************************



[SYMPTOM]


     BYTE COUNT TOO SMALL error when parsing an extremely long command
string that contains a filename towards the end of it.

[DIAGNOSIS]


     COMND passes the filename to GTJFN to parse, but also passes  the
entire string preceding the filename as the Control/R buffer.  This is
unnecessary, as COMND handles the Control/R.  In general, a  Control/R
buffer is only useful to GTJFN if it is reading from the terminal.

[CURE]


     Do not bother to set up the Control/R buffer  for  GTJFN  if  the
filename comes from a string in memory.
*****************************************************************************
 *** 1984.SDC.1
*****************************************************************************



[SYMPTOM]

     KS-10 cardreader service has several  problems:   IONXM  BUGHLTs,
incorrect  data in SYSERR entries, SYSERR entries are written at wrong
times, such as hopper-empty;  the NCDWA condition does not need to  be
a  BUGHLT;   hopper-empty  and  stacker-full conditions are improperly
handled;  online/offline transitions are badly handled and can  result
in  device  hangs;   extra  "PROBLEM  ON  DEVICE  PCDR0:" messages are
generated;  various BUGHLTs such as PITRAP, ILMNRF if monitor is built
with other than standard configuration.

[DIAGNOSIS]

     IONXM BUGHLTs result from getting into device  level  close  code
when  there is no device available, other assorted BUGHLTs result from
incorrect physical address calculation.  SYSERR data  is  stored  into
the  data  buffer  in  wrong  order.   No  checks were made for hopper
empty/stacker full conditions.  Non-error conditions  such  as  hopper
empty  were flagged as hard device errors.  Double use of code at both
interrupt and  JSYS  level  allowed  online/offline  state  to  become
confused.  No recovery after NCDWA was attempted.

[CURE]

     Rewrite much of the code  to  handle  online/offline  and  hopper
empty/stacker full conditions.  Turn NCDWA into a BUGCHK and allow the
system to continue running.  Correct the SYSERR code and documentation
in  the listing.  Correct the physical addressing calculation in KSRD.
Check for existence of device in several places before attempting  I/O
to  it  to  prevent IONXM BUGHLTs.  Class hopper empty/stacker full as
not being hard device errors needing SYSERR entries;  same for  device
going offline.

     In  addition,  convert  driver  to  "T"  ACs,  use  MOVX  and  TX
constructs  where  appropriate, and save some code and space by making
buffers the right size.  Use the U AC  more  consistently  across  the
module.
*****************************************************************************
 *** 1985.SDC.1
*****************************************************************************



[SYMPTOM]

     RCUSR does not return RC%NMD (no more directories) when trying to
step a non-wild username string.

[DIAGNOSIS]

     Code assumes that wild string and RC%STP implicitly go  together,
and fails to check.

[CURE]

     Correct code to check explicitly for RC%STP so that it  will  try
to step the directory, fail and return RC%NMD.
*****************************************************************************
 *** 1986.SDC.1
*****************************************************************************



[SYMPTOM]

     No BOOTSTRAP.BIN created if trying to reconstruct the  filesystem
on a 2020 via a 143 startup.

[DIAGNOSIS]

     Code fails to initialize size variable to indicate size  unknown;
the  zero  value  there  from  system startup is taken to mean no file
desired.

[CURE]

     Initialize BOTSIZ so that the dialog will ask  for  the  size  of
BOOTSTRAP.BIN and create it.
*****************************************************************************
 *** 1987.SDC.1
*****************************************************************************



[S]

     Doing a parse-only GTJFN of *FOO, with  no  defaults  set,  fails
with a GJFX19 (No such file type) error.


[D]

     There is no extension to be found, which  is  bad  for  a  normal
(i.e., not parse-only) GTJFN after a wild name or directory was typed,
but for parse-only, no real extension is required at all  times.   The
code,  however, forgets to check for parse-only, yielding the spurious
GJFX19.


[C]

     Only  return  a  GJFX19  for  no  extension,  wild  directory  or
filename,  GJ%IFG  set  (wild  chars  legal)  but  GJ%OFG  clear  (not
parse-only).
*****************************************************************************
 *** 1988.SDC.1
*****************************************************************************
[S]
 Edit 1983 missing.

[D]
 It was removed by Edit 1987.

[C]
 Replace it.
*****************************************************************************
 *** 1989.SDC.1
*****************************************************************************
[S]
 With Edit 1968 installed: typing editing characters (CTRL/W, etc.) to a TEXTI
does strange and mysterious things.

[D]
 At RCNM, AC P4 is being looked at for the INTT flag: but the flag is in AC P5.

[C]
 Look in P5 instead of P4.
*****************************************************************************
 *** 2004.SDC.1
*****************************************************************************



[S]

     Copy STR1:  STR2:  causes ?FILE STILL MAPPED error.

     CLOSF may fail with ?FILE STILL MAPPED.

     INFO MEMORY may show wrong file for mapped file pages.

     Probably other serious problems for sites  with  long  files  and
more than 1 structure.


[D]

     OFNJFN can return the wrong JFN.  When associating OFNs with JFNs
it  does  not examine the structure number for long files but looks at
the storage addresses of the page table.  If 2 long files on different
structures  have  the  same  storage address for a page table then the
wrong JFN can be returned.


[C]

     Make sure OFN is on same structure as JFN.

*****************************************************************************
 *** 2600.SDC.1
*****************************************************************************



[S]

     NONE.  SET VERSION NUMBER FOR MONITOR PATCHING TO 2600.


[D]

     NONE.


[C]

     NONE.

*****************************************************************************
 *** 2601.SDC.1
*****************************************************************************



[S]

     Copy command loses  JFN  attributes  making  COPY  to  tape  with
RECORDSIZE:, FORMAT:, BLOCKING-FACTOR:, etc.  impossible.


[D]

     JFNS will not return attributes for a parse only JFN.


[C]

     Call JFNSAT before MRETN if JFN is parse only at JFNS6.

*****************************************************************************
 *** 2602.SDC.1
*****************************************************************************



[S]

     A connected directory word containing garbage will cause CHKAC to
fail unconditionally.


[D]

     If the connected directory dosen't look  good  CHKAC  returns  an
error.   It could simply continue to check the other parameters to see
if they allow access.


[C]

     If  CNVSTD  fails  simply  don't  use  the  connected   directory
parameter for access checking.

*****************************************************************************
 *** 2603.SDC.1
*****************************************************************************



[S]

     CHKAC succeeds but denies access when argument block length is  5
and  no JFN is specified.  The aregument block length must be at least
6 in this case according to the documentation.


[D]

     The length checking is wrong.


[C]

     Correctly check the length of the argument block.

*****************************************************************************
 *** 2604.SDC.1
*****************************************************************************



[S]

     Edit History in VERSIO has entries in incorrect format.


[D]

     As above.


[C]

     Fix it.

*****************************************************************************
 *** 2605.SDC.1
*****************************************************************************

     This is a tracking edit only, reserved for another version of the software.
*****************************************************************************
 *** 2606.SDC.1
*****************************************************************************



[SYMPTOM]

Version 4.1 will not link under a Version 5 Monsym.

[DIAGNOSIS]

There are several GET flags that were taken out in Version 5.

[CURE]


     Put them back in.


*****************************************************************************
 *** 2607.SDC.1
*****************************************************************************

     This is a tracking edit only, reserved for another version of the software.
*****************************************************************************
 *** 2608.SDC.2
*****************************************************************************



[S]

     Changing the generation retention count of a  newly  opened  file
leaves the file with a length of zero.


[D]

     CHFDB calls UPDFLN to update the length of a file if  the  .FBBYV
or the .FBSIZ words of a file are changed.  Some fields in these words
are totally unrelated to file length and for the case of  a  new  file
the data passed to UPDFLN is guaranteed to be wrong.  For closed files
this is not a problem.


[C]

     Do more thorough checking and only call  UPDFLN  when  necessary.
Pass  it  the  either  the  size  or length from the OFN and the other
argument from the new data stored in the FDB.
*****************************************************************************
 *** 2609.SDC.1
*****************************************************************************



[SYMPTOM]

     No BOOTSTRAP.BIN created if trying to reconstruct the  filesystem
on a 2020 via a 143 startup.

[DIAGNOSIS]

     Code fails to initialize size variable to indicate size  unknown;
the  zero  value  there  from  system startup is taken to mean no file
desired.

[CURE]

     Initialize BOTSIZ so that the dialog will ask  for  the  size  of
BOOTSTRAP.BIN and create it.
*****************************************************************************
 *** 2610.SDC.1
*****************************************************************************



[SYMPTOM]


     RSCOD no longer fits.

[DIAGNOSIS]


     As above.

[CURE]


     Move INCOD and PPVAR to make room.


*****************************************************************************
 *** 2611.SDC.1
*****************************************************************************



[SYMPTOM]

     FLIN and DFIN JSYSes incorrectly report underflow as overflow.

[DIAGNOSIS]

     Code uses the flags AC as a temporary, destroying the flags,  and
then tries to test flags.

[CURE]

     Use another AC for the temporary.
*****************************************************************************
 *** 2612.SDC.1
*****************************************************************************



[SYMPTOM]

     RCUSR does not return RC%NMD (no more directories) when trying to
step a non-wild username string.

[DIAGNOSIS]

     Code assumes that wild string and RC%STP implicitly go  together,
and fails to check.

[CURE]

     Correct code to check explicitly for RC%STP so that it  will  try
to step the directory, fail and return RC%NMD.
*****************************************************************************
 *** 2613.SDC.1
*****************************************************************************



[SYMPTOM]

     FLIN and DFIN JSYSes may return incorrect values.

[DIAGNOSIS]

     Argument checking for exponents is incorrect.  As a result, it is
possible  to  index out of the exponent table and multiply by a random
value, returning an incorrect number to the user.

[CURE]

     Make one final check on  the  exponent  adjustment  value  before
using  it for table indexing.  Leave the existing partial check in the
exponent contruction code in order to leave intermediate  computations
unaffected.
*****************************************************************************
 *** 2614.SDC.1
*****************************************************************************



[S]

     WATCH statistics  BGND+IDLE+SWPW+SKED+TCOR+FILW+BGND+TRAP  should
approximatly equal 100.  They often sum to a much greater number.

     Poor response.

     Runtime  accumulated  can  be  significantly  greater  than  that
actually used.


[D]

     Users who are running at the time of background monitor tasks are
charged for the time required to complete these tasks.


[C]

     Don't.

*****************************************************************************
 *** 2615.SDC.1
*****************************************************************************



[SYMPTOM]

     Want to use v5 SETSPD with v4.1 of the monitor.

[DIAGNOSIS]

     Need to have MMAPWD in the monitor to use v5 SETSPD.

[CURE]

     Add MMAPWD to the monitor for SETSPD to reference.
*****************************************************************************
 *** 2616.SDC.1
*****************************************************************************



[S]

     MTOPR function .MOSRS gives strange error messages  for  labelled
tapes.


[D]

     This function is usless for labelled tapes since the record  size
comes  from the label if doing sequential I/O and from the DUMPI/DUMPO
arguments if doing dump mode I/O.


[C]

     Make this function illegal for labelled tapes.  Return  an  MTOX1
error.

*****************************************************************************
 *** 2617.SDC.1
*****************************************************************************



[S]

     Job hangs after trapping a jsys, freezing the  fork,  untrapping,
resuming and refreezing.


[D]

     Fork is NOINT after trap and first freeze prevents  OKINT  during
untrap.   Resuming  clears  frozen  state  but fork is still NOINT and
second freeze tries to PSI the fork the freezing fork  waits  for  the
PSI to take effect but it never does.


[C]

     OKINT frozen fork when untrapping.

*****************************************************************************
 *** 2618.SDC.1
*****************************************************************************



[SYMPTOM]

     Nulls in output files when using GTHST JSYS.

[DIAGNOSIS]

     Code in GTHST function .GTHNS appends an  extra  null  to  output
files in nonstandard fashion.

[CURE]

     Change code  to  deposit  the  extra  null  only  if  the  output
designator is a byte pointer.
*****************************************************************************
 *** 2619.SDC.1
*****************************************************************************



[SYMPTOM]


     Several ROOT-DIRECTORY files (such as BACKUP-COPY-ROOT-DIRECTORY,
and BITTABLE) can get migrated.

[DIAGNOSIS]


     No one set the Exempt from migration bit for these files.

[CURE]


     Set the bit when creating a structure.
*****************************************************************************
 *** 2620.SDC.1
*****************************************************************************



[SYMPTOM]


     Colons are not allowed in keywords.

[DIAGNOSIS]


     As above.

[CURE]


     Allow them.


*****************************************************************************
 *** 2621.SDC.1
*****************************************************************************



[SYMPTOM]


     ILMNRF's when CSAVEing a file.

[DIAGNOSIS]


     As above.

[CURE]


     Add an ERJMP after the ILDB causing the ILMNRF in SIN1.


*****************************************************************************
 *** 2622.SDC.1
*****************************************************************************



[S]

     A DISCARD to a file with status Archive in Progress  (1  copy  on
tape) will cause the file to become Archive Requested.


[D]

     This case never considered.  The .ARDIS funtion of ARCF% does not
clear  AR%RAR (archive requested) in the file's FDB.  Thus if the tape
information is discarded in  the  middle  of  an  archival,  the  file
becomes Archive Requested again.


[C]

     Clear the other archive status  bits  and  flush  request  before
discarding tape information.
*****************************************************************************
 *** 2623.SDC.1
*****************************************************************************



[S]

     Funtions .TIMRT, .TIMEL, and .TIMAL of the  TIMER  JSYS  fail  if
System Time and Date has not been set.


[D]

     These functions do not need Time and Date to be set.


[C]

     Check for these functions before checking if  Time  and  Date  is
set.


*****************************************************************************
 *** 2624.SDC.1
*****************************************************************************



[S]

     Edit 2614 causes problems under release 5.


[D]

     As above.


[C]

     Remove this edit until the problem is better understood.

*****************************************************************************
 *** 2625.SDC.1
*****************************************************************************



[SYMPTOM]


     BYTE COUNT TOO SMALL error when parsing an extremely long command
string that contains a filename towards the end of it.

[DIAGNOSIS]


     COMND passes the filename to GTJFN to parse, but also passes  the
entire string preceding the filename as the Control/R buffer.  This is
unnecessary, as COMND handles the Control/R.  In general, a  Control/R
buffer is only useful to GTJFN if it is reading from the terminal.

[CURE]


     Do not bother to set up the Control/R buffer  for  GTJFN  if  the
filename comes from a string in memory.
*****************************************************************************
 *** 2626.SDC.2
*****************************************************************************



[SYMPTOM]

When writing a tape at 6250 BPI at DUMPER's  maximum  blocking  factor
(15), DUMPER gets a DUMPX3 error.

[DIAGNOSIS]

Coding error.  The computation of the buffersize yields the number  of
pages  in the buffer minus one.  The code, however, checks this number
against the maximum number of buffer pages minus two.

[CURE]


     Change the code to check for the maximum number of  buffer  pages
minus one.


*****************************************************************************
 *** 2627.SDC.2
*****************************************************************************



[SYMPTOM]

Non-privileged users can login to privileged accounts.

[DIAGNOSIS]

The monitor occassionally gives a job  privileges  that  it  does  not
have, but protects itself by going NOINT.  However, other jobs may see
that this job has privileges and allow it to do things it shouldn't.

[CURE]

Fix GJCAPS to return only the capabilities that the job has access  to
legally.


*****************************************************************************
 *** 2628.SDC.1
*****************************************************************************



[SYMPTOM]

     Attempts to output zero  length  records  to  a  DECnet
logical  link  using  SOUTR with c(AC3)=0 and the first byte
pointed to by c(AC2) being  0  do  not  output  zero  length
records.  Attempts to receive zero length records using SINR
fail with an aborted logical link.

[DIAGNOSIS]

     No code was ever written to support the transmission or
reception of zero length messages.

[CURE]

     Add code to NSPSRV which allows  the  transmission  and
reception  of zero length messages.  Add code to IO to allow
BIN and SIN to ignore  zero  length  messages  and  SINR  to
return  with ACs unchanged upon the receipt of a zero length
message.
*****************************************************************************
 *** 2629.SDC.3
*****************************************************************************



[SYMPTOM]

PITRAP Bughalts.

[DIAGNOSIS]

It is possible to recieve an interrupt from a  TTY  which  is  in  the
process  of  becoming active (i.e.  its dynamic data block has not yet
been assigned).  The interrupt routine  neglects  to  check  the  data
block's  address  to  see if it is -1 (becoming active) and sends this
value as the address of the block.

[CURE]

Change the check in routine DZTNXO to check for -1.
*****************************************************************************
 *** 2630.SDC.1
*****************************************************************************



[S]

     DEAUNA BUGCHKS AT DBMS SITES.


[D]

     In UPDOFN some non existant pages had entries made in  the  index
block.


[C]

     Don't.

*****************************************************************************
 *** 2631.SDC.1
*****************************************************************************



[SYMPTOM]

NSPSRV does not assemble after addition of patch 2628 (handling of
zero-length NSP messages in DECnet.)


[DIAGNOSIS]

Missing global symbol - NSPNUL.


[CURE]

Add definition of NSPNUL to module PROLOG.MAC.
*****************************************************************************
 *** 2632.SDC.2
*****************************************************************************



[SYMPTOM]

NODTEN Bugchk's.

[DIAGNOSIS]

Terminals that send many XOFF's will cause Tops-20 to respond to  each
one, even if the line that sent the XOFF is already stopped.

[CURE]

Check if we have already shut the line down.  If so, ignore the XOFF.


*****************************************************************************
 *** 2633.SDC.1
*****************************************************************************



[SYMPTOM]

DECnet20 V2.1 for 2020s amd KL Model A's does not recognize node 
numbers greater than 127.


[DIAGNOSIS]

The node number in the NSP message is not is not an extensible field.


[CURE]

Add code to NSPSRV to make the node number an extensible field.
*****************************************************************************
 *** 2634.SDC.1
*****************************************************************************
[S]
SWPSTL Bugchk's.

[D]
Routine ASGSWP clobbers T1.

[C]
Setup T1 with number of drum pages before returning.
*****************************************************************************
 *** 2635.SDC.1
*****************************************************************************



[S]

     The node name field in USAGE records is always blank.


[D]

     The monitor does not fill in this field and sets it to blanks.


[C]

     Fill in the field and  default  it  to  blanks  if  no  value  is
supplied.

*****************************************************************************
 *** 2636.SDC.2
*****************************************************************************
 [S]

 After user has done EDIT and run program, @INFORMATION  VERSION  complains  of
 internal illegal instruction.


 [D]

 GCVEC% confused - thinks -1 means extended entry vector, because of non-0 bits
 in LH.


 [C]

 Check for negative before check for LH non-0.
*****************************************************************************
 *** 2637.SDC.1
*****************************************************************************
[S]
TTOMX and TTOCN are defined improperly.

[D]
Bad coding.

[C]
Fix the definitions in TTYSRV.
*****************************************************************************
 *** 2638.SDC.1
*****************************************************************************
@ENA
$GET SYSTEM:MONITR
$ST 140
DDT

FFF/   0   MIN:   -1
MIN+1/   0   CAML T2,MIN
MIN+2/   0   JRST DXTNEX
MIN+3/   0   JRST DZTNXO+15
MIN+4/   0   FFF:   

DZTNXO+13/   SKIPN T2,TTACTL(T2)   SKIPG T2,TTACTL(T2)
DZTNXO#+14/   JRST DXTNEX#   JRST MIN+1

^Z
$SAVE SYSTEM:MONITR
*****************************************************************************
 *** 2639.SDC.1
*****************************************************************************



[S]

     CFDBX3, "Write or owner access required", is  not  returned  from
CHFDB  when it is the appropriate error.  The less appropriate CFDBX2,
"Illegal to change specified bits", is used instead.


[D]

     Oversight.


[C]

     Return more correct error.

*****************************************************************************
 *** 2640.SDC.1
*****************************************************************************



[S]

     INF MON reports only 6 queues.  There are 7.


[D]

     Table length is MAXQ+1 for GETAB table.  It should be NQUEUE.


[C]

     Use NQUEUE as table length.

*****************************************************************************
 *** 2641.SDC.1
*****************************************************************************



[S]

     IPCF11 errors when doing MSEND.


[D] The code checks for any  unexpected  bits  set.   These  bits  are
unreserved and should be allowed.


[C]

     Check only the bits we are really interested in.

*****************************************************************************
 *** 2642.SDC.2
*****************************************************************************



[S]

     Long files are corrupted after a system crash.


[D]

     When a short file has 2 writers it is possible that writer 1  may
extend  the  file  beyond 511 pages making it long while writer 2 does
not write the file past the short mark.  If the system  crashes  after
writer  2  closes  the file short and before writer 1 can cause a disk
update the file will appear to be the wrong  length  when  the  system
comes back up.


[C]

     During a close check the FDB of the file to  see  if  has  become
long  since  we opened it.  If so then take the appropriate action for
long files.

*****************************************************************************
 *** 2643.SDC.1
*****************************************************************************



[S]

     IPCF11 errors when doing MSEND.


[D] The code checks for any  unexpected  bits  set.   These  bits  are
unreserved and should be allowed.


[C]

     Check only the bits we are really interested in.

*****************************************************************************
 *** 2644.SDC.1
*****************************************************************************



[S]

     MAPBT1 Bughlt.


[D]

     If an OFN cannot be  obtained  on  a  bittable  then  almost  any
attempt  to  use  CHECKD  will  crash the system because the MSTR Jsys
tries to check the validity of a non-existant bittable.


[C]

     If the bittable does not exist then behave as if it  had  errors.
On dismount dont release a non-existant OFN.
*****************************************************************************
 *** 2645.SDC.1
*****************************************************************************



[S]

     WFORK Jsys waits forever if fork is frozen as well as halted.


[D]

     The code checks only the major fork state.


[C]

     If a fork is frozen check to see if  it  was  halted  before  the
freeze.

*****************************************************************************
 *** 2646.SDC.1
*****************************************************************************



[S]

     ILMNRF bughlt.  Possibly other symptoms.


[D]

     At TINET3 routine TTCBF9 is called with the  terminal  number  in
T2.   This  routine  expects  the dynamic data block address in T2 and
will cause lots of nasty things to happen when it starts changing  the
wrong locations.


[C]

     Call STADYN first to change line number to  dynamic  data.   Also
call TTYDED instead of TTYDE0 as this expects a dynamic pointer.

*****************************************************************************
 *** 2647.SDC.1
*****************************************************************************
[S]
Node names get truncated.

[D]
In routine MCBDED, the wrong index is used into the node name table.

[C]
Multiply the port number by two to get the proper offset.
*****************************************************************************
 *** 2648.SDC.2
*****************************************************************************
[S]
Error recovery on TU78's doesn't work properly.

[D]
Bad coding.

[C]
Fix it.
*****************************************************************************
 *** 2649.SDC.2
*****************************************************************************
[S]
The micrcode version is not stored in the SYSERR blocks.

[D]
The routine to return the APRID word, masks out everything but the processor
serial number.

[C]
Create a different entry point to routine GAPRID for anyone who may want
the microcode version as well as the serial number.
*****************************************************************************
 *** 2650.SDC.1
*****************************************************************************



[SYMPTOM]

Passing a quoted recognition  character  to  the  .CMTXT  function  of
COMND,  will  cause  a  bell to be sent to the user's terminal when he
attempts to terminate the field.  The original patch for this  problem
(PCO  20-MONITO-361)  caused  an undesirable side affect.  A user with
several  files  with  an  embedded  Control/V  followed  by  the  same
character  will  get an interruptible stream of Control/G's when using
recognition on the filename.

[DIAGNOSIS]

Edit 1918, which was meant to  handle  quoted  recognition  characters
caused this side effect.

[CURE]

Change the order that COMND checks for quoted characters, so that  the
Control/V flag is turned off at the proper time.  If the original edit
(edit 1918) was installed, remove it and install the enclosed edit.


*****************************************************************************
 *** 2651.SDC.1
*****************************************************************************



[S]

     2639 didn't work correctly.


[D]

     As above.


[C]

     Fix it.

*****************************************************************************
 *** 2800.SDC.1
*****************************************************************************
Set edit number to 2800.
*****************************************************************************
 *** 2801.SDC.1
*****************************************************************************



[S]

     New files become temporary if an old file of the same name exists
and is temporary.


[D]

     FB%TMP is propagated to new FDB.


[C]

     Clear it along with other bits which don't propagate.
*****************************************************************************
 *** 2802.SDC.1
*****************************************************************************



[S]

     More than one job on a terminal

[D]

     The monitor doesn't do  enough  checking  to  protect  itself  when  a  job
attempts to attach to the terminal that it is already attached to.

[C]

     When doing a proxy attach, do extra checking  for  job  already  on  object
line.

*****************************************************************************
 *** 2803.SDC.1
*****************************************************************************
Make monitor version 5.1.
*****************************************************************************
 *** 2804.SDC.1
*****************************************************************************



[S]

     Edit 2645 had a typo.


[D]

     As above.


[C]

     Fix it.

*****************************************************************************
 *** 2805.SDC.1
*****************************************************************************



[S]

     ILMNRF when JSYS trapping.


[D]

     If JTLOCK is called and needs to wait it trashes  T1  which  when
used as an index later can cause an ILMNRF Bughlt.


[C]

     Use P6 as an index as it  contains  the  same  value  as  T1  but
doesn't get destroyed by JTLOCK.

*****************************************************************************
 *** 2806.SDC.1
*****************************************************************************



[S]

     Changing the generation retention count of a  newly  opened  file
leaves the file with a length of zero.


[D]

     CHFDB calls UPDFLN to update the length of a file if  the  .FBBYV
or the .FBSIZ words of a file are changed.  Some fields in these words
are totally unrelated to file length and for the case of  a  new  file
the data passed to UPDFLN is guaranteed to be wrong.  For closed files
this is not a problem.


[C]

     Do more thorough checking and only call  UPDFLN  when  necessary.
Pass  it  the  either  the  size  or length from the OFN and the other
argument from the new data stored in the FDB.
*****************************************************************************
 *** 2807.SDC.1
*****************************************************************************



[S]

     If a user has 2 JFNs on a TTY and they  are  in  different  modes
then  the mode from one JFN may influence the mode of the other.  Only
on autopatch tape 2 or later.


[D]

     Edit 1813 caused the problem by storing the mode of the character
as the TTY:  mode.  This is wrong.


[C]

     Store the mode in TYLMD as intended.

*****************************************************************************
 *** 2808.SDC.1
*****************************************************************************



[S]

     Lost pages.  Long files become short.  Wrong  creation  dates  on
files.  Possibly lots of other problems.


[D]

     When a user aquires a JFN on a file specifying a generation of -1
or  a generation of 0 and not requiring an old file TOPS-20 may try to
reuse old FDBs which are marked nonexistant which  correspond  to  the
file   that  the  user  requested.   If  these  nonexistant  FDBs  are
associated with an open file which is later closed then the  file  may
be  in  a strange state because the FDBs are reinitialized before they
are reused.

     Giving a totally new FDB will not work because programs depend on
FOO.BAR.-1 to give them a JFN associated with an open file if there is
one.


[C]

     If the reusable FDB is found to correspond to an open  file  then
do not reinitialize the FDB but still return it.

*****************************************************************************
 *** 2809.SDC.1
*****************************************************************************
[S]
The micrcode version is not stored in the SYSERR blocks.

[D]
The routine to return the APRID word, masks out everything but the processor
serial number.

[C]
Create a different entry point to routine GAPRID for anyone who may want
the microcode version as well as the serial number.
*****************************************************************************
 *** 2810.SDC.1
*****************************************************************************



[S]

     Cannot read format D EBCDIC tapes.


[D]

     The tape open code attempts to set the record size to  the  value
found in the HDR2 label.  For format D EBCDIC tapes this value is zero
which is reasonable except that the code will not allow it.


[C]

     Allow record size 0 for format D tapes.

*****************************************************************************
 *** 2811.SDC.2
*****************************************************************************



[S]

     Can't read certain EBCDIC tapes.


[D]

     While some systems write a volume switch byte in the  HDR2  label
some others do not.  TOPS-20 only accepts tapes from those who do even
though the field is not normally needed.


[C]

     If the value is legal use it otherwise ignore it.

*****************************************************************************
 *** 2812.SDC.1
*****************************************************************************



[S]

     ACJ sometimes recieves arguments for .GOLGO function in a strange
order.


[D]

     At JOBCOF when logging out a job which  was  on  a  PTY,  NVT  or
detached  bacause  of  a  carrier  off,  the  GTOKM  macro  passes the
arguments in the wrong order.


[C]

     Pass arguments in the correct order.

*****************************************************************************
 *** 2813.SDC.1
*****************************************************************************



[S]

     If a job is detached the  terminal  number  passed  to  RCVOK  is
777777.  Instead of the normal -1.


[D]

     The DEFSTR for GOKTRM allocates only a half word.


[C]

     Return full word for the terminal number.

*****************************************************************************
 *** 2814.SDC.1
*****************************************************************************



[S]

     GTDIR with an argument of 0 should return certain defaults.   The
number  returned  for Offline expiration is always the value of .STDFE
instead of the real default which is the tape recycle period if one is
setup and .STDFE otherwise.


[D]

     As above.


[C]

     Return TPRCYC if appropriate.   This  is  consistent  with  CRDIR
defaulting.

*****************************************************************************
 *** 2815.SDC.1
*****************************************************************************



[S]

     The version 5.1 monitor is out of address space.


[D]

     As above.


[C]

     Overlap and rearrange PSECTs BGSTR, BGPTR and POSTCD.  Remove the
one  line BUG descriptions from BUGHLTs, BUGSHKs and BUGINFs.  Rewrite
address space printing in POSTLD  to  reflect  new  order  of  PSECTs.
Monitor  should  not differ in execution except that no description of
BUGINFs, CHKs or HLTs will appear following the name of the bug.
*****************************************************************************
 *** 2816.SDC.1
*****************************************************************************



[S]

     When the monitor times out an ACJ request it almost  always  does
the wrong thing.


[D]

     When issuing a RCVTMR BUGCHK the monitor kills the ACJ  and  then
looks through the queue of requests and attempts to deny or allow them
depending on the default.  It also trashes the AC which  indexes  into
the  default table and ends up using the default for function number 1
for every request.

     For GIVTMR BUGCHKs it uses a wrong skip  instruction  and  denies
all  requests  which  should be allowed and allows all which should be
denied.


[C]

     Fix code to do the right stuff.

*****************************************************************************
 *** 2817.SDC.1
*****************************************************************************



[S]

     When the monitor marks a file as possibly bad, FB%BAT in the FDB,
it  isn't  assertive  enough.   It may be quite awhile before the user
notices the bit is set and when he does notice he has no idea when  it
happened or what backup tape has a good copy of his file.


[D]

     As above.


[C]

     Invent a new BUGINF, FILBAT, and issue it when setting FB%BAT.
*****************************************************************************
 *** 2818.SDC.1
*****************************************************************************



[S]

     Swap errors for directories are treated just like swap errors for
ordinary files.  Directories are usually somewhat more important.


[D]

     It is impossible to determine at swap in  time  whether  a  given
page  is  in  a  directory  or  not.   It is possible to check at read
complete time whether the OFN for a page with a swap error is the same
as DIROFN if so give a new BUGCHK, SWPDIR.


[C]

     Do.

*****************************************************************************
 *** 2819.SDC.2
*****************************************************************************



[S]

     Various  system  crashes  are  caused  by  the  use   of   EXTEND
instructions in non-zero sections.


[D]

     MCENTR at GFLT0 should be after the monitor has  determined  that
it  is  simulating a G floating instruction.  If we enter JSYS context
before that point and we are in a  non-zero  section  we  can  die  in
various ways.


[C]

     Move MCENTR to correct place.
*****************************************************************************
 *** 2820.SDC.1
*****************************************************************************



[S]

     J0NRUN BUGHLT.


[D]

     DDMP locks STRLOK while OKINT.  It is possible to be  interrupted
after  locking  which loses big.  Machine hangs up and after 5 monutes
or so it has a J0NRUN BUGHLT.


[C]

     Do NOINT before locking STRLOK.

*****************************************************************************
 *** 2821.SDC.1
*****************************************************************************



[S]

     Hung jobs and/or system.


[D]

     Failure to unlock logical name lock if ASGJFR fails.


[C]

     Unlock.

*****************************************************************************
 *** 2822.SDC.1
*****************************************************************************
[S]
The .CMTXT function of COMND parses a question mark as a help character.

[D]
It should only do this if it is the first character in the field.

[C]
Ignore a question mark if it is not the first character for .CMTXT.
*****************************************************************************
 *** 2823.SDC.1
*****************************************************************************
[S]
The transmit part of edit 2628 does not work.

[D]
It is unnecessary since Tops-20 does not transmit null messages.

[C]
Remove the transmit portion of the edit.
*****************************************************************************
 *** 2824.SDC.1
*****************************************************************************



[S]

     Labelled EBCDIC tapes cannot be read correctly if "no  translate"
is set unless closed and reopened.


[D]

     MTOPR function .MONTR is legal only if the tape is open.  If  "no
translate"  is set when a tape is opened then CR-LF is not appended to
each logical record.  In order to get this to work the  tape  must  be
opened first, "no translate" set, closed and then reopened.


[C]

     Make function legal for unopened tapes.  Also make it clear CR-LF
flag when set for already opened tapes.

*****************************************************************************
 *** 2825.SDC.1
*****************************************************************************



[S]

     When the monitor marks a file as possibly bad, FB%BAT in the FDB,
it  isn't  assertive  enough.   It may be quite awhile before the user
notices the bit is set and when he does notice he has no idea when  it
happened or what backup tape has a good copy of his file.


[D]

     As above.


[C]

     Invent a new BUGINF, FILBAT, and issue it  when  setting  FB%BAT.
Additional info is directory number and structure number.

*****************************************************************************
 *** 2826.SDC.1
*****************************************************************************



[S]

     Swap errors for directories are treated just like swap errors for
ordinary files.  Directories are usually somewhat more important.


[D]

     It is impossible to determine at swap in  time  whether  a  given
page  is  in  a  directory  or  not.   It is possible to check at read
complete time whether the OFN for a page with a swap error is the same
as DIROFN if so give a new BUGCHK, SWPDIR.


[C]

     Do.  Additional info is structure number.

*****************************************************************************
 *** 2827.SDC.1
*****************************************************************************



[SYMPTOM]

OKSKBG Bughalts.

[DIAGNOSIS]

A NOSKED was moved several lines down in  the  code.   Previously  two
cases joined the code at this point - one of those had already done an
OKSKED.  The extra OKSKED is no longer necessary.

[CURE]

Remove the extra OKSKED.


*****************************************************************************
 *** 2828.SDC.1
*****************************************************************************



[S]

     Jobs hang when doing DUMPI from a long file into a  Copy-on-write
page.


[D]

     JFNOFN can attempt to lock a file which is already  locked.   The
code tries to prevent this but does not check properly for long files.


[C]

     Preform all necessary checks for long files.

*****************************************************************************
 *** 2829.SDC.2
*****************************************************************************



[S]

     NONE.


[D]

     NONE.


[C]

     MORE OF ANOTHER EDIT.
*****************************************************************************
 *** 2830.SDC.1
*****************************************************************************



[S]

     NSKDIS BUGHLT caused by overdecrement of NOSKED.


[D]

     This problem makes debugging difficult  as  it  is  not  detected
until the user blocks or reschedules.


[C]

     Detect the overdecrement as it happens and  issue  a  new  BUGHLT
OKSKBG.

*****************************************************************************
 *** 2831.SDC.1
*****************************************************************************



[S]

     Spurious RCVTMR BUGCHKs.


[D]

     When a single request is queued it may be removed before the  ACJ
does  a  RCVOK.   The GETOK starts the request timer but this timer is
only reset when the queue becomes empty during a RCVOK.  If the  RCVOK
is  done after the queue is empty and no other requests come in then a
RCVTMR BUGCHK results and the ACJ is killed.


[C]

     Reset the RCVOK timer when a RCVOK is done with the queue empty.

*****************************************************************************
 *** 2832.SDC.2
*****************************************************************************
[S]
SETSPD cannot parse fields like "1-10".

[D]
The .CMNUX break mask does not see '-' as a terminator.

[C]
Change the .CMNUX break mask to see '-' as a terminator.
*****************************************************************************
 *** 2833.SDC.3
*****************************************************************************
[S]
COPY command gives strange filenames if you ose recognition.

[D]
Edit 1914 creates this side effect.

[C]
Remove edit 1914.
*****************************************************************************
 *** 2834.SDC.1
*****************************************************************************



[SYMPTOM]

ILMNRF BUGHLT.

[DIAGNOSIS]

It is possible to GET a nonshareable save file into a fork with a page
that  is write protected.  For a nonshareable save file, GET will read
the file into the fork using SIN.  SIN does not protect itself against
writing into unwriteable pages.

[CURE]

Insert an ERJMP after the offending instruction at SINW  in  case  the
page is write protected and we are being called by the monitor.


*****************************************************************************
 *** 2835.SDC.1
*****************************************************************************



[S]

     PGNDEL BUGHLTs on VERSION 4 AUTOPATCH tapes 2 and 3 only.


[D]

     Edit 1834 fixes most of this problem but needs a small change  to
catch all cases.  The DDT version of this patch is correct however and
this change applies only to  version  4  AUTOPATCH  tapes  2,  version
4(3577), and 3, 4(3647).


[C]

     Change AC usage to test correct AC.

*****************************************************************************
 *** 2836.SDC.2
*****************************************************************************



[S]

     PTNON0 BUGHLT when user logs in.


[D]

     ACTLCK can become unlocked by a fork which never locked it.  Thus
fork  A  can  lock and unmap page.  B can unlock (without locking).  C
can lock and map page.  A then runs again and tries to  map  over  the
existing page.


[C]

     Move lock up a few lines to take care of this case.

     WARNING:  If edit 1872 has been  installed  it  must  be  removed
before  installing  this patch.  This patch will fix the problem fixed
by 1872 as well as PTNON0 BUGHLTs but is incompatable with edit  1872.
Edit 1872 is PCO 20-MONITO-322.
*****************************************************************************
 *** 2837.SDC.1
*****************************************************************************



[S]

     Idle time is always  zero,  Jobs  hang  and  WATCH  output  looks
terrible  if  windfall  is  withheld.   Problems  may  also occur when
windfall is not withheld and with the bias scheduler.


[D]

     Number of runnable jobs is determined by subtracting NHOLDF  from
NGOJOB.   NGOJOB may be greater than the number of runnable jobs since
to run a job must be both on the GOLIST and in the balance set.


[C]

     Use NBPROC instead of NGOJOB.

*****************************************************************************
 *** 2838.SDC.1
*****************************************************************************
[S]
OKSKBG Bughalts.

[D]
The code at SALLI2 does an extra OKSKED when it should be doing an
OKINT.

[C]
Replace the OKSKED with an OKSKED.
*****************************************************************************
 *** 2839.SDC.1
*****************************************************************************



[S] Bad byte pointers supplied to a JSYS can crash the monitor.


[D] As above.


[C] Change KIMXCT so that it returns +1 (to monitor code)  if  we  are
NOINT  at  the  time of the trap, and generates an illegal instruction
trap to user code if we are not NOINT.

*****************************************************************************
 *** 2840.SDC.1
*****************************************************************************



[S]

     Directory page allocation counts can become inaccurate.


[D]

     Disk utilities (like CHECKD) do an OPENF/CLOSF  sequence  on  the
directory file and inadvertently cause the page count of the directory
file to become non-zero when CLOSF updates the page count.


[C]

     Have CLOSF skip the page-count-update code for directory files.

*****************************************************************************
 *** 2841.SDC.1
*****************************************************************************



[S] There is a race in CRJOB wherein a program may  change  the  CRJOB
arguement  block  and fool the monitor into using a device unavailable
to this job.


[D] The monitor validates the given TTY designator  but  refetches  it
from  the  user  without  revalidating the value.  A persistant hacker
could take advantage of this to gain access to an already in-use TTY.


[C] Save the TTY designator in the monitor so we don't have to refetch
it from the user.

*****************************************************************************
 *** 2842.SDC.1
*****************************************************************************



[S] Another tale from the hacker adventures...

     CRDIR'S JFN on a directory file  is  available  for  diddling  by
other processes in the job.


[D] As above.  One effect of this is that another  process  could  use
this JFN to change a directory's privileges.


[C] Set GJ%ACC in the GTJFN block.  This will limit  the  JFN  to  the
fork doing the CRDIR.

*****************************************************************************
 *** 2843.SDC.1
*****************************************************************************



[S] The problem is created by setting a TU78 online,  writing  to  the
device,  and  then  turning  the  power  to  the TM78 off and then on.
Depending upon which system you are on one or more  of  the  following
may occur:

     1.  "problem on device" message on cty

     2.  "device not on line " message at user terminal

     3.  The device may be lost to system until the

     system is reloaded

     4.  Bughlt

     Also, again depending upon which system is  being  used,  putting
the  TU78  offline  and  then  online,  before  the write operation is
continued,may or may not result in the normal continuation of events.


[D] The TM78 does not seem to be giving an interupt to  indicate  that
the  power  has been turned back on.  The system did notice that power
went off and thus set the device offline.


[C] Add code at TM8SIO+6 which sets the device back on line.  At  this
point , the power on,TM RDY, and HOLD states have been checked.
*****************************************************************************
 *** 2844.SDC.1
*****************************************************************************



[S] Debugging code is slow


[D] System is slow too


[C] Put IFN SKEDSW around calls to routine which keeps track of NOSKED
blocks and P-faults.
*****************************************************************************
 *** 2845.SDC.1
*****************************************************************************



[S] [Same as 6.1280] Sluggish response, slow logouts, possibly others.


[D]  NEWST  not  making  adequate   distinction   between   completely
compute-bound  jobs and jobs which block for short-to-moderate periods
of time.  Particularly with large load averages, jobs can stay in  low
queue even after blocks of a minute or more.


[C] Revise NEWST to make handling of unblocking low queue  forks  more
like previous releases.
*****************************************************************************
 *** 2846.SDC.1
*****************************************************************************



[S] [Same as 6.1280] Sluggish response, slow logouts, possibly others.


[D]  NEWST  not  making  adequate   distinction   between   completely
compute-bound  jobs and jobs which block for short-to-moderate periods
of time.  Particularly with large load averages, jobs can stay in  low
queue even after blocks of a minute or more.


[C] Revise NEWST to make handling of unblocking low queue  forks  more
like previous releases.
*****************************************************************************
 *** 2847.SDC.1
*****************************************************************************



[S] FTS can't get DECnet topology change interrupts.


[D] The monitor's allotted space for forks watching topology is full.


[C] Increase the table from 5 to 10.

*****************************************************************************
 *** 2848.SDC.1
*****************************************************************************



[S] ILMNRF BUGHLTs involving DECnet and resident free space.


[D] Logical link blocks are disappearing.


[C] The NVT clean up procedure is wrong.  It should be keeping a

     list of logical link IDs not logical link block addresses.

     Rewrite MCBCQ in NSPSRV and TNTCLS in TTPHDV.

*****************************************************************************
 *** 2849.SDC.1
*****************************************************************************



[S] Someone might try to steal TOPS20.  They might have an EXE file or
an  old  dump  around,  and  might  decide  to disassemble it, call it
something else, and sell it as their own product.   In  all  of  this,
there would be nothing that told them they should not do this.


[D] There is no copyright notice in the EXE file!!


[C] Assemble a copyright notice into  the  very  first  words  in  the
resident  code  segment.   Then, the would-be thieves will see it when
disassembling their file and will know that what  they  are  doing  is
WRONG.   To  make  this project more interesting, define the copyright
notice into the body of a macro and expand the macro  where  necessary
so  that there is still only one appearance of the copyright notice in
STG.MAC to update.

*****************************************************************************
 *** 2850.SDC.1
*****************************************************************************



[S] page fault in 20ms sked cycle eventually causes okskbg bughlts


[D] pgrtrp decrements nsked on behalf of user running


[C] go to kipfs (and do a skdpf1 if necessary there) if in sked

*****************************************************************************
 *** 2851.SDC.1
*****************************************************************************



[SYMPTOM]

When creating files on a multi-pack structure, most of the file  pages
will  be  allocated  on  one  pack of the structure until that pack is
filled.  This will cause most of the I/O on that structure to be  done
on on unit, leaving the others nearly idle.

[DIAGNOSIS]

The disk allocation algorithm will attempt to allocate a new file page
on the same cylinder that the last page of the file was allocated.  If
this cylinder is full,  the  monitor  will  scan  successively  higher
cylinders  until it finds one with room for this page.  This algorithm
tends to allocate most pages on one unit of a structure at a time.

[CURE]

Change the algorithm.  Try to allocate the page on the  same  cylinder
that  the  last page of the file was allocated.  This will cut down on
head movement for backups.  If there is  no  room  on  this  cylinder,
interleave cylinders throughout the structure, thereby evening out the
I/O across the structure.


*****************************************************************************
 *** 2853.SDC.1
*****************************************************************************



[S]

     PH2PIM is a BUGCHK and not a BUGHLT even though an  occurance  of
it can mean that the file system will be trashed.


[D]

     As above.


[C]

     Change it to a BUGHLT.

*****************************************************************************
 *** 2854.SDC.1
*****************************************************************************



[S]

     Cannot read some tapes on 2020s running TOPS-20.   Tapes  can  be
read on 2020s running TOPS-10 and on KLs running anything.


[D]

     For PE format tapes certain error bits can be set  in  the  drive
error  register  without  indicating  that  the operation failed.  The
TM02/TM03 driver ignores these bits under the  proper  conditions  but
any  of these bits being set also sets the bit RH1TRE (transfer error)
in the RH11.  This bit is checked and if set the operation fails.


[C]

     Check the correct bits in seperate registers to  determine  if  a
problem occurred.  Don't depend on the catch all bit, RH1TRE.

*****************************************************************************
 *** 2855.SDC.1
*****************************************************************************



[S]

     OKSKBG Bughlts under 5.  ILOKSK Bughlts undel 4.   KL  processors
only.


[D]

     TOPS-20 may decide to reload the front end and may call LPTINT in
LINEPR  during  reload  processing.   This can go OKSKED without going
NOSKED.


[C]

     Go NOSKED when appropriate.

*****************************************************************************
 *** 2856.SDC.1
*****************************************************************************



[S]

     MSTR function .MSGSS (Get structure status) never returns the bit
MS%PS (This structure is a public structure).


[D]

     Bit is not in mask for allowed bits to be returned and it is  not
set if the structure is the public structure.


[C]

     Include it in the mask and set it when the MSTR is done.

*****************************************************************************
 *** 2857.SDC.1
*****************************************************************************



[S]

     None observed but code is very wrong.  When the monitor dismisses
an  RH20 interrupt it tries to restore the PREP register using a DATAO
RHx,CDBRST In all cases this fails because the monitor actually does a
CONI RHx,CDBRST!!!


[D]

     In RH2INI as the CDBs are setup the monitor does a HRLI T1,(DATAO
T1,0) and then IORMs in the bits for RHx and CDBRST.  There is no such
instruction as DATAO T1, instead this assembles as CONI 0,0.

     Luckily this dosen't matter since all RH interrupts happen at the
same PI level.


[C]

     Change the instruction to assemble a DATAO instead of a CONI.
*****************************************************************************
 *** 2858.SDC.1
*****************************************************************************



[S]

     ILPPT3 Bughlt.


[D]

     ACJ can do a RCVOK with -1 as the argument  block  length.   This
will  eventually  end  up  in  BLTMU1  which will try to BLT an entire
section  into  the  users  space.   Depending  on  the   circumstances
(starting address of the BLT) you get an ILPPT3 or ILMNRF.


[C]

     Return ARGX17 if RCVOK is done with arg block length less than or
equal to zero.
*****************************************************************************
 *** 2859.SDC.1
*****************************************************************************



[S]

     GETOK block for ATACH is wrong.  It contains the user  number  in
the   job   number   word.   The  documentation  is  wrong  too.   The
documentation gives the wrong symbols with the wrong values  for  this
function.


[D]

     Code does the wrong thing.


[C]

     Pass the job number in the job number word.

     Documentation should read:
 
 Word   Symbol   Contents

  0     .GEERB   Error block address

  1     .GOTJB   Target job number

  2     .GOTTY   Source TTY number


*****************************************************************************
 *** 2860.SDC.1
*****************************************************************************



[S] Assigning permanent lines is permanent!


[D] TTPFK, the top fork of the SCTTY  tree,  is  never  cleared  on  a
deassign  of  a  permanent  line.   ASSIGN CTY:  gets you the CTY, but
DEASSIGN just hangs waiting for TTPFK to go to -1.


[C] At  TTYDE3,  where  DEASSIGNing  permanent  lines,  add  a  SETONE
TTPFK(T2).

*****************************************************************************
 *** 2861.SDC.1
*****************************************************************************
[S] MONPDL BUGHALTS

[D] BUGPDL IS TOO SHORT FOR KLSTAT SPEAR FUNCTION

[C] MAKE IT LONGER
*****************************************************************************
 *** 2862.SDC.2
*****************************************************************************
[S] Assembly error

[D] Missing comma in EDIT 2860

[C] Add it
*****************************************************************************
 *** 2863.SDC.1
*****************************************************************************
[S]
	None, but the code is wrong anyway.
[D]
	The instruction SETZM TTSAL2 appears in TTYSRV. As TTSAL2 is equal
to 3, this merely clears an AC, instead of the correct field for the terminal
data. It should be indexed by T2 to reach the proper location.

[C]
	Fix it by adding the (T2). One wonders what interesting problems
may have been caused by calls to CLRSAL: zeroing T3. It is better not to
know, I expect.
*****************************************************************************
 *** 2865.SDC.2
*****************************************************************************



[S]

     When the monitor marks a file as possibly bad, FB%BAT in the FDB,
it  isn't  assertive  enough.   It may be quite awhile before the user
notices the bit is set and when he does notice he has no idea when  it
happened or what backup tape has a good copy of his file.


[D]

     As above.


[C]

     Invent a new BUGINF, FILBAT, and issue it  when  setting  FB%BAT.
Additional info is directory number and structure number.

*****************************************************************************
 *** 2867.SDC.1
*****************************************************************************



[S]

     The DELBDD BUGINF is not  documented  and  it  does  not  provide
enough information about the problem.


[D]

     The DELBDD BUGINF was never documented.


[C]

     Add the necessary documentation in BUGS.MAC. Also,  add  code  to
JSYSF  to  place the sixbit structure name in register A. This will be
printed on the CTY when the BUGINF is issued.

*****************************************************************************
 *** 2869.SDC.1
*****************************************************************************
[S] DIRECTORY PAGE COUNTS ARE WRONG.

[D] THEY ARE UPDATED IN DSKCL0 BUT SHOULD NOT BE.

[C] CHECK FOR FB%DIR WHEN CLOSING.
*****************************************************************************
 *** 2870.SDC.1
*****************************************************************************
[S] .MUCHO FUNCTION OF MUTIL% CAUSES ILMNRFS 

[D] IF "CHANGED" PID IS ACTIVE, CALL TO WAKFRK HAPPENS AND T2 GETS TRASHED

[C] ADD SAVEAC <T1,T2> BEFORE CALLS TO WAKFRK IN CHKPDW AND CHKFKW
*****************************************************************************
 *** 2871.SDC.1
*****************************************************************************
[S]
Cannot parse tokens with COMND.

[D]
Edit 2852 was not entirely correct.

[C]
Rewrite edit 2852.
*****************************************************************************
 *** 2872.SDC.1
*****************************************************************************
[S]
ILMNRFs and assorted other bugs.

[D]
Edit 2626 uncovered some bugs in MAGTAP code.

[C]
Remove 2626 untill other bugs are fixed.




[S]

     Various  system  crashes  are  caused  by  the  use   of   EXTEND
instructions  in non-zero sections.  Edit 2819 addressed this but some
problems still remain when simulating the G format instructions.


[D]

     If we are not simulating  a  GFLOAT  or  related  instruction  we
branch  to  KIMUO6  which  eventually  enters monitor context a second
time.  The monitor only expects this to have happened once.


[C]

     Don't enter monitor context a second time.

     NOTE:  This supercedes edit 2819.