Trailing-Edge
-
PDP-10 Archives
-
BB-4172H-BM
-
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.