Trailing-Edge
-
PDP-10 Archives
-
BB-L014C-BM
-
autopatch/t20al4.d02
There is 1 other file named t20al4.d02 in the archive. Click here to see a list.
EDIT DESCRIPTIONS FOR TOPS-20-KL-ARPA-V4
EDIT 580 FOR EXEC
[SYMPTON]
If the LOGIN.CMD file contains a PUSH command, and the user
unwittingly types CLOSE and then a POP, the EXEC will get an Illegal
Instruction interrupt.
[DIAGNOSIS]
The inferior process PUSH'ed to is allowed to close and release
the JFN on the command file.
[CURE]
Set the GJ%ACC bit in the GTJFN when getting a JFN on the
LOGIN.CMD file, to prevent lower forks from tampering with the file.
********************************************************************************
EDIT 581 FOR EXEC
[^S]
When using EXEC load-class commands in the following manner:
@DEFINE SYS: NEW-SUBSYS,SUBSYS
@LOAD MAINT,ADDITM,CHGITM,DELITM,DISPLA,SYS:TFRCOB
And TFRCOB is in <SUBSYS>, it is not found. If SUBSYS:TFRCOB is used, the
module is found. Similar behavior is exhibited by other load-class
commands (COMPILE and EXECUTE).
[^D]
GNJFN% is used in EXECCS to find the default extention when a
filename is given without an extention. It is currently a restriction that
GNJFN% does not step logical names.
[^C]
Replace the code using GNJFN% with a routine that steps through the
table of language extentions and does a GTJFN% on the filename using each
extention.
********************************************************************************
EDIT 582 FOR EXEC
[SYMPTON]
When superceding an invisible file and that file's generation
retention count has been exhausted, the invisible file will be lost.
The user can neither UNDELTE nor SET FILE VISIBLE.
[DIAGNOSIS]
The UNDELETE command skips invisible files.
[CURE]
Allow the UNDELETE command to undelete invisible files.
********************************************************************************
EDIT 583 FOR EXEC
[SYMPTON]
When an EDIT command has been given with at least one switch, and
it is given again with no arguments, the ILLEGAL SWITCH error message
occurs.
[DIAGNOSIS]
The EXEC stores the default EDIT command in a buffer, but
neglects to delimit the last switch and the filespec with a space,
thereby generating what looks like a bad switch.
[CURE]
Place a space in the default buffer before copying the filespec
into it.
********************************************************************************
EDIT 584 FOR EXEC
[SYMPTON]
EXEC's error messages don't tell the user exactly which field was
mistyped.
[DIAGNOSIS]
EXEC should be more precise.
[CURE]
Have routine CMERR$ type out the contents of the atom buffer.
********************************************************************************
EDIT 585 FOR EXEC
[SYMPTON]
When setting /MAP as a default compile switch, the @COMPILE PROG
command gets "?No such switch: PROG" error message.
[DIAGNOSIS]
When storing the default switch into a buffer, the wrong bit is
checked to see if the switch takes an argument following it. If so
the atom buffer is concatenated to the switch already in the buffer.
[CURE]
Make routine HANSWI in EXECSU check bits S%VAL and S%QUO instead
of S%DSP.
********************************************************************************
EDIT 586 FOR EXEC
[SYMPTON]
When COBOL-74 is set as the default Cobol compiler, the compile
command will fail with a "Cannot find process" error.
[DIAGNOSIS]
The EXEC looks for a compiler with the name COBOL-74.
[CURE]
Make the EXEC look for CBL74.
********************************************************************************
EDIT 587 FOR EXEC
[SYMPTON]
After ATTACHing to a DETACHed job, Control-E is not echoed on the
terminal.
[DIAGNOSIS]
The EXEC sets it's CCOC words before DETACHing rather than after.
[CURE]
Move the call to routine LTTYMD to after the DTACH Jsys.
********************************************************************************
EDIT 588 FOR EXEC
[SYMPTOM]
When PCO 20-EXEC-82 (AUTOPATCH edit 581) is installed, COMP
FOO/COMP does not force a compile.
[DIAGNOSIS]
When stepping through the language table, the EXEC looks for
.RELs first; when it finds one which is newer than any source, it
uses it rather than compiling.
[CURE]
Check F%LOBJ in P1 to see if it is necessary to force a compile;
if it is, then skip the .REL entry in the language table.
********************************************************************************
EDIT 589 FOR EXEC
[SYMPTOM]
Subcommands are not echoed in a TAKE command when echoing is
turned on for the command file.
[DIAGNOSIS]
EXEC does not check to see if echoing should be turned on when
the subcommand is parsed.
[CURE]
Add a call to ECHCMD to check if the subcommand should be echoed
before dispatching to the subcommand routine.
********************************************************************************
EDIT 590 FOR EXEC
[SYMPTOM]
When an unpriviledged user issues a BUILD on a directory for
which he has a password, he gets the message ?Invalid password even
when he has given the password correctly. The only way he can exit
from the command is to ^C or ABORT.
[DIAGNOSIS]
The EXEC not only does not prompt for or check any password
given, but also does not give the password to the CRDIR% JSYS.
[CURE]
Add code to prompt for a password if the CRDIR% fails with an
?Invalid password or ?Password required error. Then give the password
to CRDIR and try again.
********************************************************************************
EDIT 591 FOR EXEC
[SYMPTOM]
DIRECTORY commands with the NO subcommand do not wait for
confirmation.
[DIAGNOSIS]
The calls to the confirmation routine are missing.
[CURE]
Add CONFIRMs to each of the subcommand routines.
********************************************************************************
EDIT 592 FOR EXEC
[SYMPTON]
Modifying a print request with the "NOHEADER" switch causes
Pushdown Overflow in the EXEC.
[DIAGNOSIS]
The dispatch table at $MODPR points to the wrong routine.
[CURE]
Point dispatch table to routine .MNOHE instead of .NOHEA .
********************************************************************************
EDIT 593 FOR EXEC
[SYMPTON]
EDIT gives misleading error message "?Input filespec expected"
when a user has typed a valid filename that is protected.
[DIAGNOSIS]
EXEC doesn't check error from GTJFN on input filespec and just
outputs the same message for any error.
[CURE]
Improve error message from EXEC.
********************************************************************************
EDIT 594 FOR EXEC
[SYMPTON]
INFO DIR <*> and ^EPRINT <*> give Illegal Memory Write error or
hang the EXEC.
[DIAGNOSIS]
The GTDIR Jsys returns all of the directory information to a
block who's address is passed as an argument to the Jsys. This block
contains a byte pointer to the buffer where the directory's default
account is to be stored. The byte pointer is updated by the GTDIR to
point to the end of the account string. When the buffer containing
the account string is to be released the updated byte pointer is used
as a pointer to the beginning of the buffer, when it is really
pointing somewhere in the middle of the buffer. This causes the
EXEC's free space to get trashed and hang the EXEC.
[CURE]
Backup the byte pointer immediately after te GTDIR jsys.
********************************************************************************
EDIT 595 FOR EXEC
[SYMPTOM]
Using SET DIRECTORY PASSWORD command, a user can type some
special characters and won't be notified that they haven't been
accepted.
[DIAGNOSIS]
A routine called PASLIN is supposed to handle password entry
on a separate line. However, the prompt for SET DIRECTORY PASSWORD
is not the standard prompt so the routine PASSX was instituted to
handle this case. PASSX doesn't treat password entry the same way
as PASLIN.
[CURE]
Have PASSX treat password entry exactly the same as PASLIN
except for the prompting mechanisms.
********************************************************************************
EDIT 596 FOR EXEC
EDIT 596 REMOVES EDIT 581 AND EDIT 588 FROM EXECCS TO FIX THE COMP/COMP
BUG CAUSED BY THESE EDITS.
********************************************************************************
EDIT 597 FOR EXEC
[SYMPTOM]
When copying from an EBCDIC labelled tape, the same problem
is seen as was seen when copying from an ANSI-ASCII labelled
tape. That is, the format of the data will be one seven bit
byte per word in the resulting file.
[DIAGNOSIS]
Edit 573 fixed copy for ASCII format labelled tapes but
there is no difference in the format of the data which the
EXEC will input from an ASCII or an EBCDIC labelled tape.
[CURE]
With edit 573 is installed, simply make an additional check
for an EBCDIC format labelled tape and if so, load a seven
bit default byte size.
********************************************************************************
EDIT 598 FOR EXEC
[SYMPTOM]
DEBUG/74-COBOL causes LINK to give an "?SCNUNV Unknown switch
value 74" error message.
[DIAGNOSIS]
The EXEC's debugging table is generated from the first argument
of the language table entries; this argument should be the name of
the debugger. "74-COBOL" is not the name of the COBOL debugger.
[CURE]
Change the first argument in the language table entry for
74-COBOL from "74-COBOL" to "COBOL".
********************************************************************************
EDIT 599 FOR EXEC
[SYMPTOM]
When performing a COPY on a file of an exact multiple of 512
pages, the EXEC loops until disk quota is exhausted.
[DIAGNOSIS]
The EXEC prefaults pages in chunks of 25 at a time to speed up
the COPY. If PMAP tries to prefault pages in a non-existent section,
(i.e.; at the end of a file whose EOF pointer points to the last page
of a section, or in a file with a section-long hole) it fails with an
error of "Page table does not exist, and file is not open for write".
The EXEC does not detect this error, and loops through the disk copy
routine, continuing to PMAP in 25-page chunks from the destination
file until disk quota is exhausted.
[CURE]
Check for non-zero section on PMAP failures. If this error
occurs, use FFUFP to see if we have a section-sized hole or are at the
end of the file.
********************************************************************************
EDIT 600 FOR EXEC
[SYMPTOM]
ANSI-ASCII and EBCDIC labelled tapes do not read correctly.
[DIAGNOSIS]
Source type returned from DVCHR% is bieng passed to LBLSKP
instead of a JFN.
[CURE]
Pass a JFN to LBLSKP.
********************************************************************************
EDIT 601 FOR EXEC
[SYMPTOM]
The exec will not know when the system is shutdown.
[DIAGNOSIS]
The monitor will now return -1 in DWNTIM and the EXEC does
not know how to interpret this.
[CURE]
In the routines DWNPNT and SYSDWN, add code to check for -1
from DWNTIM and if equal to -1, print 'System is shutdown'
********************************************************************************
EDIT 602 FOR EXEC
[SYMPTOM]
User does not receive a system message at login time if he has a
batch job which runs between the time the message is sent and the time
the user logs in for interactive use.
[DIAGNOSIS]
Messages are not printed if a job is logged in as a batch job.
[CURE]
In the PNTMES routine, remove the code which returns without
printing if the job is a batch job. This will cause messages to
appear in the log file.
********************************************************************************
EDIT 603 FOR EXEC
[SYMPTOM]
When a directory command lists a file name containing characters
which must be quoted, EXEC types a CTRL/V before each quotable
character, does not translate CTRL/V, and counts CTRL/V as filling an
output column for aligning later output.
[DIAGNOSIS]
Since EXEC uses the JFNS JSYS to get the file names to be listed,
they contain CTRL/V's before every quoted character; the EXEC's CCOC
bits specify that CTRL/V should not be translated; the output routine
does not distinguish between CTRL/V and other output characters for
purposes of alignment.
[CURE]
The output routine is changed so it doesn't count CTRL/V as
taking up output room. The JFNS JSYS is the only reasonable way to
obtain file names for output, and since going through every file name
to root out CTRL/V's which do not precede other CTRL/V's is expensive
and almost always unnecessary, the CTRL/V's are left in the file
names. Since translating CTRL/V makes file names look ugly, and
eliminates an ambiguity only if a file name contains a CTRL/V, CTRL/V
should not be translated, and so the use of file names containing
CTRL/V should be avoided.
********************************************************************************
EDIT 604 FOR EXEC
[SYMPTOM]
HELP keywords are completed implicitly if "unambiguous" (e.g.
ACT is completed to ACTGEN if nothing else begins with ACT).
[DIAGNOSIS]
Instead of recognizing file names directly, the HELP command
constructs a keyword table corresponding to the .HLP files on HELP>,
which works faster and looks better. The file names, however, are
treated like keywords by COMND, and thus are completed implicitly,
which is incorrect.
[CURE]
If the keyword wasn't completed explicitly (check CM%ESC), check
to see if the keyword input (in the atom buffer) is a substring of the
string in the keyword entry returned by COMND (by using STCMP).
********************************************************************************
EDIT 605 FOR EXEC
[SYMPTOM]
I DIRECTORY fails silently if a prior structure mount is needed.
[DIAGNOSIS]
No message-typing code is provided.
[CURE]
Type out an error message.
********************************************************************************
EDIT 606 FOR EXEC
[SYMPTOM]
SET ADDRESS-BREAK with AFTER > 2 gives an pushdown overflow
internal trap.
[DIAGNOSIS]
Routine FRKTRM in EXECP, dispatched to by WAITA, uses STKVAR to
obtain stack space. When an address break is encountered, FRKTRM
dispatches to routine FKTRM1. When the address break is one on which
notification is to be done, FKTRM1 dispatches to FKTRM2, which does
the notification and jumps back to CMDIN2, which cleans up the stack.
When an address break is not to be notified on, FKTRM1 jumps back to
WAITA without cleaning up the stack. So, for AFTER > 2, the stack
gets eaten piece by piece until no more is left.
[CURE]
Change routine FKTRM1 so the stack is cleaned up before WAITA is
called; since WAITA is called by WAITF, which then dispatches to the
address placed in AC A, we place WAITF in AC A and return: this
cleans up the stack and returns to WAITF, which then dispatches to
itself. Also, in routine FKTRM2, instead of jumping to CMDIN2
directly, jump to FRKTRN, which jumps to CMDIN2 after cleaning up the
stack.
********************************************************************************
EDIT 607 FOR EXEC
[SYMPTOM]
The command:
CANCEL <request-type> (ID) 0
acts the same as the command:
CANCEL <request-type> (ID) *
[DIAGNOSIS]
When QUASAR gets the KILL message, he calls Q$KILL. At
this point a zero is stored in the RDB for both the
request-id and the job-name (since no job-name was typed).
Now, we call FNDREQ to find a matching request for this RDB.
FNDREQ in turn calls I$RMCH. This routine does the
following: It checks to see if a request-id was typed (by
checking for a non-zero in .RDBRQ). If there is a zero in
.RDBRQ, then it assumes a match so it can check to see if
the job-name was typed (by checking for a non-zero in
.RDBOW). If no job-name was typed and we are not operators,
we assume that a request-id was typed (since the EXEC
insists on either a job-name or a request-id) and that it
matched with the request-id in the RDB. Although these
assumtions are awkward, they are sound if zero request-ids
are not allowed. For this reason it is best to patch the
EXEC to make sure that the user types a positive request-id.
[CURE]
When the EXEC processes the CANCEL request, make use the
request-id is positive.
********************************************************************************
EDIT 608 FOR EXEC
[SYMPTOM]
IPCIDX was referenced in EXECSU, undefined in the EXEC, but the EXEC compiled
and worked!
[DIAGNOSIS]
IPCIDX had a value of absolute 20 octal (from GLXLIB), so the EXEC used
location 20 successfully.
[CURE]
Rename instances of IPCIDX to IPCIX, and define IPCIX.
********************************************************************************
EDIT 609 FOR EXEC
[SYMPTOM]
INFORMATION commands referencing the queues do not work when the
queues are very large (producing IPCF buffer full messages).
[DIAGNOSIS]
EXEC's IPCF code tries to read in all outstanding messages at
once, and will flush buffers with older messages to do this, thus
unnecessarily losing IPCF messages.
[CURE]
Change the code so it will leave messages in the IPCF queues if
the buffers are full, unless IPCFND fails and the queues are full (if
we don't flush then, we'll hang up waiting for a message we can't
read).
********************************************************************************
EDIT 610 FOR EXEC
[SYMPTOM]
User was getting "?Output filespec expected" message when he did an CREATE foo
and there was no room in the directory to create another file.
[DIAGNOSIS]
Random GTJFN errors can happen when COMND is called to parse the filespec
field, but the error message is always the same.
[CURE]
Add the system error message to the end of our message.
********************************************************************************
EDIT 611 FOR EXEC
[SYMPTOM]
TERMINAL terminal-type resets duplex mode to full duplex.
[DIAGNOSIS]
As above.
[CURE]
Make TERMINAL terminal-type leave the duplex mode alone.
********************************************************************************
EDIT 612 FOR EXEC
[SYMPTOM]
I SPOOL outputs "SET SPOOLED-OUTPUT-ACTION value" (either
IMMEDIATE or DEFERRED), but the correct command is SET SPOOLED-OUTPUT.
[DIAGNOSIS]
The text being output is wrong.
[CURE]
Have I SPOOL output "SET SPOOLED-OUTPUT value" instead.
********************************************************************************
EDIT 613 FOR EXEC
[SYMPTOM]
MODIFY PRINT (ID) nnn/HEADER
causes the print-request to be MODIFYed so that no header
is printed.
MODIFY PRINT (ID) nnn/NOHEADER
causes the print-request to be MODIFYed so that a header
is printed.
[DIAGNOSIS]
The EXEC passes a zero to QUASAR for/NOHEADER and a one
for /HEADER. QUASAR, however expects the other way around.
[CURE]
Fix the EXEC so that it passes a one for /NOHEADER and a
zero for /HEADER
********************************************************************************
EDIT 614 FOR EXEC
[SYMPTOM]
EXEC won't assemble.
[DIAGNOSIS]
Symbol got deleted.
[CURE]
Replace it.
********************************************************************************
EDIT 615 FOR EXEC
[SYMPTOM]
EXEC hangs when edit 603 is installed and the user does a
DIRECTORY of a file which has a CTRL/V in the filename.
[DIAGNOSIS]
Coding error in edit 603 causes loop.
[CURE]
Change instructions of the form "JRST .-n" to use the appropriate
labels.
********************************************************************************
EDIT 616 FOR EXEC
[SYMPTOM]
PRINT FOO.* ignores file extensions for default file types.
[DIAGNOSIS]
If a filespec given to PRINT has a wild extension, no extension
checking is done.
[CURE]
Delay the checking until the extension is known, i.e., until the
second (work) pass.
********************************************************************************
EDIT 617 FOR EXEC
[SYMPTOM]
If the user does a DIRECTORY with CHECKSUM SEQUENTIAL on certain
disk files, the EXEC appears to loop indefinitely.
[DIAGNOSIS]
The sequential checksum code uses SIN to do its input, regardless
of what device the file is on; this leads to problems on disk files
with arbitary EOF pointers (DBS files, for example).
[CURE]
Make the by-pages code (which uses FFUFP and PMAP) do both
by-pages checksumming and all but the last page fraction (if any) of
disk sequential checksumming. This not only solves the problem (FFUFP
ignores EOFP), but is faster than the present code for both continuous
and especially discontinuous disk files.
********************************************************************************
EDIT 618 FOR EXEC
[SYMPTOM]
DISMOUNT FOO:, where FOO: is not a tape or structure, causes an
illegal instruction trap.
[DIAGNOSIS]
The code to check what type of device FOO: is ends abruptly
after checking for tapes and structures, and so if FOO: is neither,
the next thing in the module is executed, a COMND table, which causes
the trap.
[CURE]
Add an ERROR macro after the tape and structure test code.
********************************************************************************
EDIT 619 FOR EXEC
[SYMPTOM]
Sequential disk checksumming didn't work.
[DIAGNOSIS]
Edit 617 broke it.
[CURE]
Fix edit 617.
********************************************************************************
EDIT 620 FOR EXEC
[SYMPTOM]
PRINT *.* didn't work.
[DIAGNOSIS]
Edit 616 was broken.
[CURE]
Fix it.
********************************************************************************
EDIT 621 FOR EXEC
[SYMPTOM]
One can occasionally issue a CTRL/C during LOGIN, leaving the
user unable to perform any commands requiring him to be logged in, yet
receiving a message "?Job is already logged in" upon trying to do
another login.
[DIAGNOSIS]
EXEC tests CUSRNO for a non-zero user number before permitting
any commands requiring a logged-in state. If a CTRL/C is issued after
successful completion of the LOGIN% JSYS and before the user number is
stored in CUSRNO, the EXEC becomes confused about the job's state.
[CURE]
Turn off software interrupts during LOGIN.
********************************************************************************
EDIT 622 FOR EXEC
[SYMPTOM]
EXEC sometimes loops uncontrollably after a CTRL/C.
[DIAGNOSIS]
If a CTRL/C is typed while GETMEM and RETMEM are manipulating
storage free lists, a free list could be damaged, causing an infinite
loop when it is are referenced again.
[CURE]
Turn off CTRL/C and IPCF interrupts while manipulating storage
free lists.
********************************************************************************
EDIT 623 FOR EXEC
[SYMPTOM]
When given a wildcarded user string, SYSTAT gives a "?Too many
arguments" message.
[DIAGNOSIS]
The code for SYSTAT steps through all users matching the
wildcarded string at parse time, stacking them for later use; if
there are too many, the stack overflows, yielding the message seen.
[CURE]
Rewrite the code so it stores the wild string at parse time, and
compare against it at job scan time with WILD%.
********************************************************************************
EDIT 624 FOR EXEC
[SYMPTOM]
The extension of the last spec in a "PRINT /DELETE ... spec" or a "PRINT
_/FILE:foo ... spec" overrides the switch for that spec.
[DIAGNOSIS]
Flags TPRES and TFILES aren't propagated early enough to handle the first spec
processed (the last typed in) correctly.
[CURE]
Check the global switch flags PRESF and FILSF as well as TPRES and NPRES to
suppress file extension checking.
********************************************************************************
EDIT 1808 FOR MONITO
[SYMPTON]
When attempting to RUN a file that is offline, the EXEC will
return the incorrect error that the file does not exist.
[DIAGNOSIS]
Routine ARACCK which checks the Archive status of a file, ignores
any file being opened for Execute access.
[CURE]
Make ARACCK check for Execute access when it checks for read
access.
********************************************************************************
EDIT 1809 FOR MONITO
[SYMPTOM]
IMPNII, ILLUUO or other BUGHLTs. Crash analysis shows an
overwritten instruction as the result of too-long message handling
code.
[DIAGNOSIS]
Code in IMIN3 refers to the address of a stack pointer where it
meant to point to the corresponding stack area instead.
[CURE]
Change the reference to be to the stack instead of the pointer.
********************************************************************************
EDIT 1810 FOR MONITO
[SYMPTOM]
CRDIR JSYS sometimes fails when passed -1,,ADDRESS as the pointer
to the password string. It succeeds if passed a true byte pointer
instead.
[DIAGNOSIS]
New code to check for setting a null password (which requires
ownership rights to directory) did not check for the case of
-1,,ADDRESS in place of a byte pointer.
[CURE]
Add the code to handle the case.
********************************************************************************
EDIT 1811 FOR MONITO
[SYMPTON]
When superceding an invisible file and that file's generation
retention count has been exhausted, the invisible file will be lost.
The user can neither UNDELTE nor SET FILE VISIBLE.
[DIAGNOSIS]
The UNDELETE command skips invisible files.
[CURE]
Allow the UNDELETE command to undelete invisible files.
********************************************************************************
EDIT 1812 FOR MONITO
[SYMPTOM]
ERSTR JSYS sometimes does not recognize ERJMP/ERCAL following it
on error conditions such as illegal error number.
[DIAGNOSIS]
Code just returns without checking.
[CURE]
Change code to exit JSYS via the route which will notice the
ERJMP/ERCAL when needed.
********************************************************************************
EDIT 1813 FOR MONITO
[S]
When patch supplied with PCO 20-MONITO-174 is installed, the
system will come up with ULKBAD bugchks.
[DIAGNOSIS]
The previous patch trashed an AC used elsewhere and did not
make all references to TYLMD (data mode last character input
in) consistent.
[CURE]
Use a different AC in patch and make all previous references
to TYLMD to be references to TT%DAM.
********************************************************************************
EDIT 1814 FOR MONITO
[SYMPTOM]
Certain classes of GTJFN errors cause JFNs to become "lost", that
is, the JFN numbers are not available for assignment until a global
cleanup operation is done (ie. RLJFN -1).
[DIAGNOSIS]
Error path out of GTJFN bypasses the routine to release the JFN
on an error.
[CURE]
Install an ERJMP to catch the case and exit via the cleanup
routine.
********************************************************************************
EDIT 1815 FOR MONITO
[SYMPTON]
The COMPILE command will not detect a logical name loop, causing
it to loop.
[DIAGNOSIS]
When GTJFN can not parse a name, it will step the logical name,
if possible, and restart the parse.
[CURE]
If a logical name has been stepped, check for Parse-only before
returning to GTJFST to restart parse.
********************************************************************************
EDIT 1816 FOR MONITO
[SYMPTOM]
ODTIM JSYS does not include the comma when OT%DAM and OT%SPA are
specified, contrary to documentation. In addition, if no output is
generated, and a string pointer is specified, then the string is not
properly terminated.
[DIAGNOSIS]
In the first case, code does not check and does comma only for
verbose month name specified. In the second, code not written.
[CURE]
Correct code to output comma as documented for OT%DAM and OT%SPA
set and OT%NMN not set (ie. Feb 10, 80), and add code to be sure
output string is terminated properly with a null.
********************************************************************************
EDIT 1817 FOR MONITO
[SYMPTOM]
SACTF JSYS has several problems: it modifies the JFN it uses, it
returns a zero error code for certain error conditions, and it returns
the updated string pointer in the wrong register.
[DIAGNOSIS]
Code was written to modify the JFN, the zero error codes are the
result of incorrectly using a macro, and the wrong register was just
bad code.
[CURE]
Change the code to correct all of the above.
********************************************************************************
EDIT 1818 FOR MONITO
[SYMPTOM]
TOPS-20 is too big and too slow.
[DIAGNOSIS]
More historical and long unused code uses a construct called
DMPBUF which eats up 10 (octal) pages of address space.
[CURE]
Make the changes necessary to remove DMPBUF.
********************************************************************************
EDIT 1819 FOR MONITO
[SYMPTON]
If echoing has been turned off and a user types question mark,
COMND will output a help message and echo the field.
[DIAGNOSIS]
When seeing a question mark, routine CMRAT2 will set the proper
bit to force a help message and a retype of the line without checking
whether echoing has been turned off.
[CURE]
When a question mark is typed, check if echoing is off and if so,
send a CTRL/G.
********************************************************************************
EDIT 1822 FOR MONITO
[SYMPTON]
The code to handle the KLINIK line added to TTDZDV in edit 1820
makes a number of false assumptions based on existing comments in
the code. These comments are wrong.
[DIAGNOSIS]
The person who originally coded the KS10 terminal device driver
did not understand the way the 8080 console processor functioned.
[CURE]
Rework the KLINIK code in TTDZDV to reflect the correct operation
of the 8080 console processor. Also change KLINIK definitions in the
module PROKS.MAC.
********************************************************************************
EDIT 1823 FOR MONITO
[SYMPTOM]
Remark strings are skewed in the USAGE file when a job
changes sessions at least once during the time it is logged
in.
[DIAGNOSIS]
The session remark in affect at the start of the session is
the one which is placed in the Checkpoint record for that
job. The session remark is not set until after the account
has been changed and, therefore after the Checkpoint record
has been updated. The session remark in the checkpoint
record is, therefore, the session remark in affect for the
last session.
[CURE]
Instead of performing a session end function of the USAGE
JSYS, perform a log in function (.USLGI) and then a log out
function (.USLGO). The logout function of the USAGE JSYS
will update the remark string but not the .USSEN function.
********************************************************************************
EDIT 1824 FOR MONITO
[SYMPTOM]
Lineprinters lose data during on-line/off-line transitions.
[DIAGNOSIS]
Buffer initialization is incorrect, and the buffer size
allocation is calculated incorrectly; it should follow the data byte
size on a per buffer basis.
[CURE]
Change the code to initialize the buffers properly.
********************************************************************************
EDIT 1825 FOR MONITO
[SYMPTOM]
With Edit 1766 installed, an INFORMATION MEMORY command on
an address space with page 777 mapped will cause a FLKTIM
BUGCHK the next time anything is done to the job which
causes the fork structure to be locked.
[DIAGNOSIS]
The RMAP JSYS calls a routine FRKMAP which will fail if it
is called for a non-existent section. When FRKMAP fails, it
generates an ITERR without returning to the calling routine.
This is wrong and so RMAP will never unlock the fork
structure again when it returns to the user.
[CURE]
Change the call to FRKMAP to FKHPTN and include an ITERR
which unlocks the fork structure as the error return to the
routine.
********************************************************************************
EDIT 1826 FOR MONITO
[SYMPTON]
ARCHIVE <*>*.* makes a structure unmountable.
[DIAGNOSIS]
Several <ROOT-DIRECTORY> files should be exempt from migration
that aren't.
[CURE]
Change the structure initialization code to set the right bit in
these files' FDB's.
********************************************************************************
EDIT 1827 FOR MONITO
[SYMPTON]
The monitor will not load after submitting the TOPS20.CTL file.
[DIAGNOSIS]
Routine BUGSR2 was moved in release 4. However, the code was not
properly rewritten to resolve all references to other routines.
[CURE]
Add a label at the end of the BUGSR2 routine and make BUGSR2+2
jump to the new label. Note that this patch is not necessary unless
extensive source modifications have been made to the monitor. Also
note that it is impossible to make this patch to MONITR.EXE, as it is
to code that is run to create the EXE file which then deletes itself.
********************************************************************************
EDIT 1828 FOR MONITO
[SYMPTOM]
If the MSTR JSYS is called with function .MSIMC (increment
the mount count for a job) with an invalid job number, bad
error messages could be returned, the system could crash, or
the job could hang.
[DIAGNOSIS]
If MSTR is called with a valid job number but the job is not
logged in, MSTR will generate an error return but with no
error number. The code is simply missing the error code to
return.
If MSTR is called with an invalid job number, no check is
made as to whether it is valid. The system then tries to
map the JSB, which could fail and cause a BUGHLT, or TOPS-20
could map the JSB and try to lock the JSSTLK. This is where
the job could hang.
[CURE]
Provide an error code for the no such job error return and
make a check for invalid job number at MSTJOB.
********************************************************************************
EDIT 1829 FOR MONITO
[SYMPTOM]
None, but code is wrong.
[DIAGNOSIS]
MODTAB table in PHYSIO is too short, it needs an entry for
high-density mode. Fortunately, the next word happens to have the
right value.
[CURE]
Put in the entry for high-density mode.
********************************************************************************
EDIT 1830 FOR MONITO
[SYMPTOM]
RESBAD and RESBAZ BUGCHK's followed by ILMNRF BUGHLT's when
running DECnet-20 on KL processors.
[DIAGNOSIS]
DTESRV is messing up free core by not handling messages from
the DN20 properly.
[CURE]
Fix DTESRV to handle messages properly.
********************************************************************************
EDIT 1831 FOR MONITO
[SYMPTON]
When attempting to clear address break for self, user gets
invalid fork handle.
[DIAGNOSIS]
When clearing address break for self, T1 gets clobbered.
[CURE]
After the call to SETBRK, restore proper fork handle to T1.
********************************************************************************
EDIT 1832 FOR MONITO
[SYMPTOM]
Poor terminal input response on a KL processor with many users
and two lineprinters printing.
[DIAGNOSIS]
Edit 1824 may cause the KL to step on a line allocation value the
-11 has selected.
[CURE]
Correct the device independent and both KS and KL device
dependent code to handle the situation better, and move edit 1824 into
the device dependent code.
********************************************************************************
EDIT 1833 FOR MONITO
[SYMPTON]
COMND can't parse a keyword with a colon in it.
[DIAGNOSIS]
When COMND sees a colon it assumes that it is parsing a switch,
so it terminates its current parse.
[CURE]
When a colon is found, first check if we are parsing a switch.
If so, terminate the parse. If not, continue parse and ignore the
colon.
********************************************************************************
EDIT 1834 FOR MONITO
[SYMPTOM]
PM%ABT fails to abort changes made to new pages in new files;
RESET causes OF%DUD pages to be written to the disk instead of
aborted.
[DIAGNOSIS]
Code not checking properly for new pages.
[CURE]
Add the code to delete the pages and deallocate the disk space
for the appropriate cases. Note that the RESET case is addressed by
edit 1776, PCO 20-MONITO-235.
********************************************************************************
EDIT 1835 FOR MONITO
[SYMPTOM]
ILMNRF BUGHLT resulting from use of SFTAD JSYS. In addition,
setting a legal offline expiration period may be refused if no system
period was established in 4-CONFIG.CMD.
[DIAGNOSIS]
Capabilities check uses incorrect AC, trashing pointer used a few
instructions later. Expiration period code doesn't check.
[CURE]
Use proper AC instead. Correct expiration/recycle period checks
to use default (.STDFE) if system-wide period not specified.
********************************************************************************
EDIT 1836 FOR MONITO
[SYMPTON]
ILMNRF Bughalt caused by GET'ting a nonshareable save file into a
process that does not have write access to one of the pages needed for
the file.
[DIAGNOSIS]
A GET on a nonshareable save file will read the file in using a
SIN, which does not protect itself against illegal writes.
[CURE]
Insert an ERJMP at SIN1+7 in case a page is write protected.
********************************************************************************
EDIT 1837 FOR MONITO
[SYMPTOM]
MTOPR function .MOSTS to set a printer lowercase does not work.
[DIAGNOSIS]
Code ignores the case entirely. In addition, the code does not
allow the clearing of the MO%LCP status bit for a printer by either
the MTOPR or by the LPINI JSYS.
[CURE]
Add code necessary to make the MTOPR work, and allow MO%LCP to be
cleared by MTOPR and LPINI JSYSes.
********************************************************************************
EDIT 1839 FOR MONITO
[SYMPTOM]
PIDFLF BUGCHKs.
[DIAGNOSIS]
If a monitor is built with MAXPID odd instead of even, the PID
free list is initialized improperly. The initialization code is hard
coded for an even number.
[CURE]
Replace the code that tries to terminate the free list with a
zero by code that handles both even and odd.
********************************************************************************
EDIT 1840 FOR MONITO
[SYMPTOM]
If a user refusing links is already linked to the maximum number
of lines, another link request will still ring the bell and wait.
[DIAGNOSIS]
Code does not check for this case before entering the ring and
wait routine.
[CURE]
Add code to handle this case by returning TLNKX3 immediately.
********************************************************************************
EDIT 1841 FOR MONITO
[SYMPTOM]
Various, including GALAXY component confusion and crash; access
to invalid scheduler classes, etc.
[DIAGNOSIS]
User attaches to a job controlled by the batch processor at an
inopportune moment. In actuality, this should have been illegal
unless the user had WHEEL or OPERATOR privileges enabled.
[CURE]
Correct DTACH and ATACH JSYSes to prevent batch jobs from
detaching, unless enabled, and from attaching to a batch job unless
logged-in and enabled, as it is supposed to be.
********************************************************************************
EDIT 1842 FOR MONITO
[SYMPTOM]
If a call to GTJFN specifies GJ%FOU and the exact generation
number, sometimes error GJFX20 is improperly returned.
[DIAGNOSIS]
The test is incorrect concerning the case of invisible files.
[CURE]
Correct the code to properly find this file generation and return
successfully.
********************************************************************************
EDIT 1843 FOR MONITO
[SYMPTOM]
CRDIR JSYS will create a MAIL.TXT file in a non-files-only
directory if one does not exist.
[DIAGNOSIS]
This should not occur except on directory creation; the mail
file attributes should be preserved, including existence.
[CURE]
Correct the code to only create MAIL.TXT on initial directory
creation.
********************************************************************************
EDIT 1844 FOR MONITO
[SYMPTOM]
Certain JSYSes which are defined to be noops unless directed at a
terminal do not handle this correctly. In addition, some JSYSes, in
handling error conditions, do not return the error in LSTERR. The
affected JSYSes are CFIBF, CFOBF, SFCOC, SFMOD, SFPOS, SIBE, SOBE, and
STPAR.
[DIAGNOSIS]
Code to reject non-terminals is wrong; code doesn't bother to
set LSTERR in certain circumstances.
[CURE]
Correct code to perform as documented.
********************************************************************************
EDIT 1845 FOR MONITO
[SYMPTOM]
MTANOQ BUGCHKs
[DIAGNOSIS]
The monitor patch 20-MONITO-178 called a routine which
marked the current IORB as done. This IORB should not have
been marked as done because the record may not be completly
processed before a SDSTS JSYS is done for that unit.
[CURE]
Instead, simply wait for all IORBs to become non-active and
then update the status.
********************************************************************************
EDIT 1846 FOR MONITO
[SYMPTOM]
TPBLBK BUGCHKS when using labeled tapes.
[DIAGNOSIS]
Magnetic tape race usually manifesting itself when two tape
units on a single controller are active at the same time and
one of the tapes is a labeled tape open for read. When the
monitor reads a tape mark, the labeled tape code wants to
read the trailer labels. The MONITOR would look to see if
there were any active IORBs on the transfer queue for that
unit and if so, would generate a TPBLKB bugchk and leave the
request on the queue. This record would still be read,
positioning the tape one record forward of first trailer
label so the MONITOR would also see a tape label error.
[CURE]
When this condition is noted, remove all IORBs from the
queue.
********************************************************************************
EDIT 1847 FOR MONITO
[SYMPTOM]
Monitors won't build
[DIAGNOSIS]
MTAKIL not defined as external to TAPE
[CURE]
Include it in the EXTN macros at the top of TAPE.
********************************************************************************
EDIT 1848 FOR MONITO
[SYMPTOM]
WATCH statistics seem to indicate an idle system accumulating
very large swap wait times.
[DIAGNOSIS]
The accounting of NBSWP is off, leaving a false indication.
[CURE]
Correct checking of swap wait cases in order to get NBSWP back in
line with reality.
********************************************************************************
EDIT 1849 FOR MONITO
[Symptom]
BUGCHKs and BUGHLTs concerning resident free space.
[Diagnosis]
Wrong register is used when NSPSRV is loeaning up links
[Cure]
Modify the instruction at PRUNE1+3 in NSPSRV to use the correct
register.
********************************************************************************
EDIT 1850 FOR MONITO
[SYMPTOM]
Monitors won't build
[DIAGNOSIS]
MTAKIL not included in GLOBS and MTAKIL not defined as
internal in MAGTAP.
[CURE]
Include it in GLOBS and put double colon after symbol in
MAGTAP.
********************************************************************************
EDIT 1851 FOR MONITO
[SYMPTOM]
Structures are always marked domestic in usage accounting records.
[DIAGNOSIS]
The structure status bits are not send to MOUNTR correctly and the
primary public structure never has bit MS%DOM marked.
[CURE]
Send bits correctly. To achieve the desired results also install MOUNTR
edit 116 to version 4 of MOUNTR.
********************************************************************************
EDIT 1852 FOR MONITO
[SYMPTOM]
Unaccountably long response times for some operations, such as an
INFORMATION MEMORY command.
[DIAGNOSIS]
Fork locking/unlocking code is misaccounting nested locks, and
doing a DISMS during unlocking so as not to "hog" the lock.
[CURE]
Account properly for nested locks so that the gratuitous DISMS is
not performed.
********************************************************************************
EDIT 1853 FOR MONITO
[SYMPTOM]
Lower case characters on EBCDIC labeled tapes are converted to
upper case on input.
[DIAGNOSIS]
The translation table is wrong.
[CURE]
Correct the translation table to produce the proper code values.
********************************************************************************
EDIT 1854 FOR MONITO
[SYMPTOM]
IPCF35 Errors on .MUFPQ function of the MUTIL JSYS when word
two of the argument block contains garbage.
[DIAGNOSIS]
Code checked the arguments for validity with respect to the
.MUSPQ function. When reading the quota, there is no need
to check the contents of the second word in the argument
block.
[CURE]
Have the read quota routine not check the second word in the
argument block.
********************************************************************************
EDIT 1855 FOR MONITO
[SYMPTOM]
OVRDTA and TM2UNA BUGCHKs when reading from Magnetic tapes
and the unit is in error recovery.
[DIAGNOSIS]
The device code which does the retries, does not reset the
overdue timer before starting I/O on the channel.
[CURE]
Reset the overdue timer before starting I/O on the channel.
********************************************************************************
EDIT 1856 FOR MONITO
[SYMPTOM]
Creating a fork and loading the ACs fails to make the fork
non-virgin.
[DIAGNOSIS]
Oversight
[CURE]
After copying the ACs into the processes PSB, call CLRVGN
for the process.
********************************************************************************
EDIT 1857 FOR MONITO
[SYMPTOM]
If the SOUT JSYS is given an infinite indirect pointer, the
job will run in a non-interruptable infinite loop.
[DIAGNOSIS]
The MONITOR doesn't attempt to get a byte from the users
pointer until it is NOINT.
[CURE]
Attempt to get a byte from the pointer before the process is
NOINT.
********************************************************************************
EDIT 1858 FOR MONITO
[SYMPTOM]
Certain MTOPRs to labeled tapes, notably .MOSTA and .MOOFL do not
work unless the JFN is open, contrary to documentation.
[DIAGNOSIS]
MTOPR dispatch table for labeled tapes is wrong.
[CURE]
Correct the table.
********************************************************************************
EDIT 1859 FOR MONITO
[SYMPTOM]
System loses track of beginning-of-tape (BOT) status for a drive.
[DIAGNOSIS]
Rewind done code could be entered via an error recovery as
opposed to normal interrupt code with device status check.
[CURE]
Set US.BOT in the rewind done code also.
********************************************************************************
EDIT 1860 FOR MONITO
[SYMPTOM]
None observed, but possibility of disk error suggested.
[DIAGNOSIS]
Small but finite possiblity of the ECC code used in the
RP04/RP06/RM03 type disks miscorrecting an error burst.
[CURE]
Increase the number of retries before ECC will be applied from
three to eight according to recommendation from Disk Engineering.
********************************************************************************
EDIT 1861 FOR MONITO
[SYMPTOM]
GTSTS JSYS returns inconsistent results.
[DIAGNOSIS]
Code follows different paths for the JFN being currently
available or not. One path fails to mask out the undocumented
internal bits before returning the file status word to the user.
[CURE]
Correct the code to make both paths return the proper result.
********************************************************************************
EDIT 1862 FOR MONITO
[SYMPTOM]
With directories over 400000(8) words in length, recognition
of subdirectories breaks.
[DIAGNOSIS]
The byte pointer which the MONITOR builds for copying the
tail of the directory name to the JFN block looks like POINT
7,4xxxxx(D) where D is 2,,0. The Y field will be sign
extended so the result is a pointer with a negative Y field
or POINT 7,-400000(D).
[CURE]
Build the pointer like POINT 7,0(D) where D is 2,,4xxxxx.
********************************************************************************
EDIT 1863 FOR MONITO
[SYMPTOM]
The COMND JSYS ignores the help settings specified by the user
when parsing a keyword or switch and finding that no item can possibly
match.
[DIAGNOSIS]
The user settings of CM%SDH and CM%HPP are ignored in this case.
[CURE]
Make COMND function as documented.
********************************************************************************
EDIT 1864 FOR MONITO
[SYMPTOM]
Tape label read errors generated from:
DUMPER>REW
DUMPER>SAVE FOO.BAR
DUMPER>REW
DUMPER>SAVE FOO.BAR
DUMPER>... (About 4 or 5 time)
[DIAGNOSIS]
TU45 hardware deficiency. The TU45s creep backwards.
Product support says they connot fix it.
While rewritting the HDR1 label, TOPS-20 will backspace
records until tape is positioned immediately before the HDR1
label, then TOPS-20 rewrites the HDR1 label. TU45s do not
like to backspace records and rewrite that record. Each
time it backspaces over the record, it backspaces slightly
into the IRG until it eventually begins to write over the
previous record. This will cause tape label read errors.
[CURE]
Backspace one extra record at REPOS1, then forward space one
record so that then the tape is positioned before the HDR1
label. In this case there is no TU45 creep.
********************************************************************************
EDIT 1865 FOR MONITO
[SYMPTOM]
Jobs under job 0 have no way of determining if a system
shutdown has passed and the system is currently shut down.
[DIAGNOSIS]
After the system is shutdown, TOPS-20 reset the DWNTIM flag
to 0 which signifies that no shutdown is pending.
[CURE]
Set the DWNTIM flag to -1 to signify that timesharing is
over.
********************************************************************************
EDIT 1866 FOR MONITO
[SYMPTOM]
A structure does not need to be mounted by a job in order
for that job to expunge the contents of a directory on that
structure.
[DIAGNOSIS]
No check is made for a mounted structure or not.
[CURE]
Call CHKMNO in .DELDF and return an error if the structure
is not mounted.
********************************************************************************
EDIT 1867 FOR MONITO
[SYMPTOM]
BAT blocks in the swapping are not marked correctly in the
drum bit table for the structure.
[DIAGNOSIS]
Code not even close.
[CURE]
Rewrite the algorithm which calculates the drum address for
a physical sector address on the disk. This involves taking
into account the physical to logical sector translation and
the interleaving of swapping sectors over all packs in the
structure.
********************************************************************************
EDIT 1868 FOR MONITO
[SYMPTON]
GLFNF Bughalt.
[DIAGNOSIS]
Routine FFORK1, which freezes a specific fork, gets the fork's
system wide fork number out of table SYSFK in the JSB. SYSFK will
contain -1 if the fork does not exist. FFORK1 neglects to check if
SYSFK contains a valid fork number, and then passes -1 along.
[CURE]
Check the fork number we get from SYSFK at FFORK1+2. If it is
-1, don't attempt to freeze the fork, as it doesn't exist.
********************************************************************************
EDIT 1869 FOR MONITO
[SYMPTON]
FLKTIM and FLKNS Bugchecks.
[DIAGNOSIS]
When attempting to lock the fork structure within a job, if it is
already locked, the Monitor will allow this lock under the following
two conditions: this fork is the same fork that originally locked it,
and the lock is nestable. The check for a nestable lock is
unnecessary.
[CURE]
At FLOCK1+5, only check if the current fork is the one who has
the lock. If so, allow this lock.
********************************************************************************
EDIT 1870 FOR MONITO
[SYMPTOM]
With edit 1865 installed, the system will hang at sysetm
shutdown
[DIAGNOSIS]
JOB0 will continually run because it figures it must stay
awake to schedule the shutdown process. This is because
it assumes a -1 in HSYST1 means that the system still needs
to be shut down.
[CURE]
Make check in CHKR for system already shutdown.
********************************************************************************
EDIT 1871 FOR MONITO
[SYMPTOM]
Tape label read errors after edit to fix TPBLKB bugchks is
installed.
[DIAGNOSIS]
Needed to do an MCALL rather than a CALL to MTFLSH
[CURE]
Do that.
********************************************************************************
EDIT 1872 FOR MONITO
[SYMPTOM]
ILSRC BUGHLTs
[DIAGNOSIS]
Illegal value recieved from HSHPG probably because the HSHPG
was in the middle of being updated when the reference to it
to get the offset into the accounting data file was made.
[CURE]
Lock the accounting data base before making this reference.
********************************************************************************
EDIT 1873 FOR MONITO
[SYMPTOM]
GDSTS does not return bytes transferred by a DUMPI or DUMPO
call when doing I/O to a labeled tape.
[DIAGNOSIS]
The labeled tape routine to return the device status does
not get the bytes transferred from MAGTAP when the tape is
opened in dump mode.
[CURE]
Check to see if the tape is opened in dump mode. If so,
trust the bytes transferred returned from the call the
MAGTAPs get status routine.
********************************************************************************
EDIT 1874 FOR MONITO
[SYMPTOM]
ILMREF after 1867 installed.
[DIAGNOSIS]
DSKSIZ index not restored at DSECT1.
[CURE]
Restore it.
********************************************************************************
EDIT 1875 FOR MONITO
[SYMPTON]
Various errors when reading dump mode magtape. One or more of
the pages of the input buffer will contain old data.
RESTORE, PRINT and CHECK commands to DUMPER may give sequence
errors followed by a variety of other error messages, such as "%Tape
has files missing". These problems are most likely to occur on
heavily loaded systems that are low on memory (256K), when reading
long tape records (DUMPER blocking factor of 4 to 8).
[DIAGNOSIS]
Routine MTDIR5 calls WRPGS to set the modified bit in CST0 for
each page of the input buffer. The pages are locked in core at a
later time, and then the IORB is queued.
If the page is swapped out after the modified bit is set but
before the page has been locked, swapping it back in will reset the
modified bit. After the transfer, the page is not written out on
garbage collection because the monitor thinks there is a valid copy of
the page in the swapping space. When that page is swapped back in
from the swapping space, we have invalid data.
[CURE]
Force the modified bit to be set after the page has been locked
and before the transfer.
********************************************************************************
EDIT 1876 FOR MONITO
[SYMPTOM]
Automatic volume switch at end of reel does not occur when
writing a labeled tape in dump mode.
[DIAGNOSIS]
Code does not set ERRF flag on end-of-tape encountered before
returning to caller. Labeled tape code wants it set to key volume
change tests.
[CURE]
Set the flag, analogous to the non-dump mode output case.
********************************************************************************
EDIT 1877 FOR MONITO
[SYMPTOM]
When an operator issues the OPR command 'SET SCHEDULER
BATCH-CLASS BACKGROUND (or NONE), the currently active batch
jobs are not affected.
[DIAGNOSIS]
The .SKBBG function of the SKED% JSYS does not set the
priority of currently active batch jobs.
[CURE]
Loop over all PTYs looking for batch jobs. Then change the
priority of the batch job to reflect the state of the
background flag.
********************************************************************************
EDIT 1878 FOR MONITO
[SYMPTOM]
The CRDIR% JSYS may leave the job with a JFN on a directory
file.
[DIAGNOSIS]
If the directory file is open, the call to CHKOFN at
DELDI6+20 will fail. The error return neglects to release
the JFN on the directory.
[CURE]
Instead of returning, jump to DELDI3, which releases the JFN
and returns an error.
********************************************************************************
EDIT 1879 FOR MONITO
[SYMPTOM]
IPCSOD BUGCHKs.
[DIAGNOSIS]
There is a race in IPCF that when a job is getting
initialized, its senders count is reset while the IPCF data
base is unlocked. This leaves about a 10 line window where
if another job recieves a message sent previously by a job
with the same number as the one which is getting
initialized, the senders count will be over decremented and
an IPCSOD BUGCHK will be generated.
[CURE]
Lock up the data base early in the PIDJBI routine.
********************************************************************************
EDIT 1880 FOR MONITO
[SYMPTOM]
GNJFN JSYS does not return file if the highest generation of
the file is deleted.
[DIAGNOSIS]
VERLUK being told to ignore deleted files.
[CURE]
If user does not want deleted files, then never set IGDLF
before the call to VERLUK.
********************************************************************************
EDIT 1881 FOR MONITO
[SYMPTOM]
If a .CMCMA function is terminated by an escape, the fields
following the comma will not parse correctly. If a noise
word follows, it will not be printed and COMND will act as
if the escape was typed for the first non noise word
function following the comma.
[DIAGNOSIS]
The comma parsing routine does not check the character
following the ',' for an escape. Therefore, it remains in
the buffer, the CM%ESC flag is not set and the following
fucntions will see the escape.
[CURE]
Read the next character after the comma is parsed. If it is
an escape, delete it from the buffer (the CM%ESC flag was
set upon reading it). If it is not an escape, put it back
in the buffer.
********************************************************************************
EDIT 1882 FOR MONITO
[SYMPTOM]
When a nul field is parsed for a switch or keyword for which
there are more than one item in the keyword table, the error
message ?Ambiguous is returned.
[DIAGNOSIS]
No check is made for nul field before returning error code.
[CURE]
Make the check at CMAMB+1.
********************************************************************************
EDIT 1883 FOR MONITO
[SYMPTOM]
Ambiguous error message when a slash is ommitted from a
switch function.
[DIAGNOSIS]
No check is made on a null field for whether a prefix
character should have been typed and whether it was.
Without this check, an error condition can not be
determined.
[CURE]
At CMRATT, check for an unsatisfied prefix condition. If
so, return the PREERR.
********************************************************************************
EDIT 1884 FOR MONITO
[SYMPTOM]
If a bare CRLF is input as a command line to the COMND JSYS,
and if the following input can be parsed by the first
function in the chain, this function will be the one which
parses regardless of whether there are better functions in
the chain.
[DIAGNOSIS]
After resetting the buffers for the input and retyping the
prompt on a bare CRLF, COMND remains on pass2. This means
it will not attempt to find the best function to parse,
rather it will parse the first successful function.
[CURE]
Jump back to XCOMB0 to reset PASS1 rather than XCOMN0 in
CHKDEF.
********************************************************************************
EDIT 1885 FOR MONITO
[SYMPTOM]
Unparsed characters from default string cause parsing of
following function to generate errors.
[DIAGNOSIS]
When an escape is typed, the entire default string is copied
into the command buffer, even if the string contained a
break character. When this string is parsed, the break
character terminates the input for the function yet, the
rest of the default string is still in the command buffer.
This will cause the next function to return an error.
[CURE]
Check the default string when copying the string into the
command buffer. If a break character is encountered,
generate a COMX10 error.
********************************************************************************
EDIT 1886 FOR MONITO
[SYMPTOM]
J0NRUN BUGHLTs, hung jobs.
[DIAGNOSIS]
With working set preloading, the PREPGP routine should return the
page number to be waited for, but the call to SWPIN returns <page
number>,,SWPRT instead of page number, so preloading winds up waiting
for the page number corresponding to the address of SWPRT to be read
in, which is likely to be forever.
[CURE]
Restore the page number into the proper place in T1 after the
call to SWPIN.
********************************************************************************
EDIT 1887 FOR MONITO
[SYMPTOM]
Cannot read variable length records on EBCDIC labeled tapes.
[DIAGNOSIS]
The MONITOR does not make check correctly for a new physical
record just read in, so it never does any BDW processing.
It assumes the RCW is a BDW and thus will return a record
the size of a physical block.
[CURE]
Correct check for new block.
********************************************************************************
EDIT 1888 FOR MONITO
[SYMPTON]
If a carriage return is typed while parsing a noise word, after
having supplied a default value for at least one field, COMND will
reissue the prompt rather than return to the user to perform the
default actions.
[DIAGNOSIS]
Routine NLINE, which decides what to do about a carriage return,
neglects to check if we are parsing a noise word.
[CURE]
Make NLINE check if parsing a noise word, and if so, continue
with current command.
********************************************************************************
EDIT 1889 FOR MONITO
[SYMPTOM]
The tape data mode is reset to job default when a rewind is
done.
[DIAGNOSIS]
When a rewind is performed, the tape is logically closed,
and remains closed even after the rewind function is
complete.
When the next I/O operation is requested, the tape is
reopened. At this time, the data mode is reset to the job
default.
[CURE]
After this open, the the data mode should be set to the
previously requested mode. This requires a new storage
location in the labeled tape storage area which holds the
prevailing tape data mode. When the tape is opened, this
mode should be reset to system default. When the data mode
is set, this location should reflect the change and all
future logical opens should set the data mode to the
prevailing mode.
********************************************************************************
EDIT 1890 FOR MONITO
[SYMPTOM]
ILMNRF BUGHLTs.
[DIAGNOSIS]
SAVE JSYS may inadvertently make reference to a nonexistent fork
page through the mapping into monitor space of the process pages.
This will cause the ILMNRF. This can occur if the state of the
process pages is fluctuating for some reason, such as control by
another fork.
[CURE]
In SSAVB9 where the page is checked for being all zero, ERJMP the
references to the page to trap any potential ILMNRF situations.
********************************************************************************
EDIT 1891 FOR MONITO
[SYMPTOM]
A structure mounted for exclusive use by a job can only be used
by the mounting fork instead of the entire job.
[DIAGNOSIS]
MSTR leaves the structure in initialize mode for exclusive
mounts. Only the initializing fork can access the structure.
[CURE]
Assign the structure to the mounting job for exclusive mounts and
nover leave the structure in initialize mode.
********************************************************************************
EDIT 1892 FOR MONITO
[SYMPTOM]
With edit 1885 installed, certain default strings will not work
[DIAGNOSIS]
1885 checks for characters which would be break characters for
the first function in the chain. The default string may be
valid for functions further down in the chain.
[CURE]
Remove it for now.
********************************************************************************
EDIT 1893 FOR MONITO
[SYMPTOM]
MTA error retry count is wrong.
[DIAGNOSIS]
For the case of a recovered error, the code winds up at ABTNOS
before it accounts for the retry. The retry failed cases account for
the trial.
[CURE]
Count up the retry at the retry succeeded case in RTYNOE.
********************************************************************************
EDIT 1894 FOR MONITO
[SYMPTOM]
Bad DUMPO/DUMPI can cause ILPAG1 if a valid non-blocking DUMPO
was issued.
[DIAGNOSIS]
DUMPO locks all affected pages in memory. A write to a locked
page can cause a new copy of the page to be created if the page is
COPY-ON-WRITE. The routine WCPY causes the locked page to be swapped
out. The swapout routine can cause an ILPAG1 if the page is locked.
[CURE]
If a DUMPI/DUMPO fails wait for all other DUMPIs and DUMPOs to
complete.
********************************************************************************
EDIT 1895 FOR MONITO
[SYMPTOM]
Edit 1894 did not account for all cases.
[DIAGNOSIS]
Edit 1894 accounts only for memory writes done because of another
bad DUMPI/DUMPO any memory write can cause a crash.
[CURE]
Pre-write all pages for a DUMPO.
********************************************************************************
EDIT 1896 FOR MONITO
[SYMPTOM]
GNJFN JSYS does not return file if the highest generation of
the file is deleted.
[DIAGNOSIS]
VERLUK being told to ignore deleted files.
[CURE]
Let the GNJFN code weed out deleted files so always ask the
lookup routines to return deleted files.
********************************************************************************
EDIT 1897 FOR MONITO
See file for edit 1898.
********************************************************************************
EDIT 1898 FOR MONITO
[SYMPTOM]
GETER JSYS returns wrong value after floating point output error.
[DIAGNOSIS]
FLOUT and DFOUT error cases fail to store error properly,
monitor's AC1 is saved instead.
[CURE]
Correct code to save the proper error code in LSTERR.
********************************************************************************
EDIT 1899 FOR MONITO
[SYMPTOM]
If the user is over his logged-in quota, CRDIR will always fail
(with a CRDI21 if nothing else is wrong), regardless of what functions
are selected.
[DIAGNOSIS]
On an existing directory, CRDIR always checks to see if the
logged-in quota is exceeded, and fails (with a CRDI21) if it is.
[CURE]
If neither quota is being changed (CD%LIQ and CD%LOQ both off),
don't check to see if over logged-in quota.
********************************************************************************
EDIT 1900 FOR MONITO
[SYMPTOM]
Edit 1895 can cause massive performance problems in programs
which do alot of DUMPOs such as DUMPER.
[DIAGNOSIS]
Edit 1895 tries to write all pages and usually causes a
copy-on-write page fault. The excessive overhead of creating pages
causes performance problems.
[CURE]
Cause an illegal memory write if WCPY is called for a locked
page. In SCHED cause the failure of the UMOVEM which stores the flags
and PC on the stack for an ERCAL to cause an illegal memory write for
the user.
********************************************************************************
EDIT 1901 FOR MONITO
[SYMPTON]
ILLUUO Bughalts after edit 1834 has been installed.
[DIAGNOSIS]
Edit 1834 put NOSKED/OKSKED into code that could be called by the
scheduler.
[CURE]
Replace the NOSKED/OKSKED with NOSKD1/OKSKD1.
********************************************************************************
EDIT 1902 FOR MONITO
[SYMPTOM]
Edit 1883 contained a typo. No commands would work.
[DIAGNOSIS]
SKIPLE at CMRTIE should be a SKIPG
[CURE]
Change it.
********************************************************************************
EDIT 1903 FOR MONITO
[SYMPTOM]
Inconsistencies with COMND JSYS when parsing .CMFIL with
.GJALL specified as the extension. No error would be
generated unless the line was reparsed, at which point the
error GJFX31 would be returned.
[DIAGNOSIS]
GTJFN places the file string that was parsed into the atom
buffer. When .GJALL is specified, the '*' for the version
is also placed in the atom buffer. When this string is
reparsed, the * is illegal because GJ%IFG was not specified
in the call.
[CURE]
When defaulting the version number of the file, do not allow
.GJALL if GJ%IFG was not specified in the call.
********************************************************************************
EDIT 1904 FOR MONITO
[SYMPTOM]
With edit 1882 installed, improper error messages are returned
when the field is ambiguous
[DIAGNOSIS]
The NOPARS macro is a two word macro. This makes it unsuitable
for use as a skipped instruction. Yet this is how the edit used
it.
[CURE]
Do not use the NOPARS macro. Instead, load the ACs and call
XCOMNE directly.
********************************************************************************
EDIT 1905 FOR MONITO
[SYMPTOM]
MJBUSE does not hold the maximum job number in use.
[DIAGNOSIS]
At HLTJB3-5 the compare instruction for whether the current
job is the current maximum job in use doesn't work because
T2 does not contain the current job number.
[CURE]
Load the job number before making the compare.
********************************************************************************
EDIT 1906 FOR MONITO
[SYMPTOM]
JSYS Trapping programs recieve interrupts from JSYSs
executed from execute only programs. This reveals
information about the execute only program.
[DIAGNOSIS]
This really wasn't addressed before.
[CURE]
Before trapping JSYSs, check for whether executing process
is execute only. If so, perform the JSYS as if no JSYS
trapping was occuring.
********************************************************************************
EDIT 1907 FOR MONITO
[SYMPTOM]
GTDIR clobbers 1 word beyond the end of the user group list or
directory group list if there are too many groups to fit in the list.
[DIAGNOSIS]
GTDIR forgets to subtract 1 from the block size (which inclused
the length word) before using it to decide how many groups to report.
[CURE]
Subtract 1 from the block size before counting with it.
********************************************************************************
EDIT 1908 FOR MONITO
[SYMPTON]
When passing a HRROI style byte pointer to JFNS, and no string is
returned to the user, a null byte is deposited in the destination.
However, the byte pointer is not updated to reflect the null byte.
[DIAGNOSIS]
JFNS deposits a null byte before doing anything else, but fails
to update the user's byte pointer for the case when nothing else gets
returned.
[CURE]
Make JFNS update the user's byte pointer before depositing
the null byte, so it will be pointing before the byte.
********************************************************************************
EDIT 1909 FOR MONITO
[SYMPTOM]
RCUSR fails to see all users which match a wild user string;
when a .CMUSR (or .CMDIR) FDB with CM%DWC set is used to parse a wild
user (or directory) string with no matches, COMND returns a zero user
(or directory) number with CM%NOP clear.
[DIAGNOSIS]
RCUSR calls MDDDIR, which will not return the number of a
directory to which the caller does not have read access; RCUSR and
RCDIR both set RC%NMD when a wild string has no more matches,
regardless of whether RC%STP is set.
[CURE]
Modify MDDDIR so it will not check read access of directories if
called from RCUSR; make RCUSR and RCDIR set RC%NOM instead of RC%NMD
if RC%STP is off.
********************************************************************************
EDIT 1910 FOR MONITO
[SYMPTOM]
Class load average trashing.
[DIAGNOSIS]
Race in SCHED which would cause the class of a logged out
job to get changed.
[CURE]
Since CHGCLS is called NOSKED, check in CHGCLS if the job is
logged in. If it is not, don't decrement or increment class
counts.
********************************************************************************
EDIT 1911 FOR MONITO
[SYMPTOM]
If TT%LCA and TT%UOC are set then delete causes a backspace of
too many characters.
[DIAGNOSIS]
TT%LCA causes TT%UOC to be ignored but TEXTI, RDTTY and COMND
don't know this and they cause a backspace of 2 characters instead of
1.
[CURE]
If TT%LCA is set ignore TT%UOC.
********************************************************************************
EDIT 1912 FOR MONITO
[SYMPTOM]
Edit 1900 Forgot to save the T regs in SCHED. No symptoms
observed but very risky.
[DIAGNOSIS]
As above.
[CURE]
Save T regs.
********************************************************************************
EDIT 1913 FOR MONITO
[SYMPTOM]
A disk powered up on a pack which was just switched to this
system is not seen by MOUNTR but the MONITOR knows about it.
[DIAGNOSIS]
The disk initialization code does not cause a PSI to be generated
for MOUNTR.
[CURE]
Set bit US.PSI in RP4INI which will cause a PSI to MOUNTR.
********************************************************************************
EDIT 1914 FOR MONITO
[SYMPTOM]
DIRFDB, DIRDNL, ULKSIZ, and RELINT BUGCHKs
[DIAGNOSIS]
When releasing a parse only JFN, it sometimes may be
associated with a new file. In this case, an attempt will
be made to delete the new FDB. It is possible, though, that
the FDB will have already been deleted due to a close abort
or a delete and a lookup will have to be performed to
acquire the address of the FDB to delete. Since the JFN is
a no parse JFN, it is assumed that no FDB is associated with
it. The lookup routine (VERLKX) will return success but
with the directory unlocked. This will make GETFDB return
success also. A call will subsequently be made to USTDIR
which will generate the series of BUGCHKs. The problem
arises because a parse only JFN is given a new file FDB.
[CURE]
If it is noted early in the GTJFN JSYS, that we are parsing
a parse only JFN, then no FDB will be created. This will
have two side affects, mostly preferable. Parse only JFNs
will never acquire an FDB, regardless of whether stars are
typed. This means, file I/O will never be allowed to occur
to a parse only JFN. Currently, if no stars are typed in
the string, the JFN can be opened and I/O can occur. (ie.
it is treated as if the JFN were not a parse only JFN). The
second effect is that the bits GJ%NEW and GJ%OLD will have
no bearing on the parsing of the parse only JFN. Currently,
if the bit GJ%OLD is set, the file name must exist for the
GTJFN to succeed.
********************************************************************************
EDIT 1915 FOR MONITO
[SYMPTON]
Ctrl/R sends the screen clearing code twice.
[DIAGNOSIS]
Bug in the code.
[CURE]
Insert enclosed patch.
********************************************************************************
EDIT 1916 FOR MONITO
[SYMPTOM]
Edit 1903 broke DUMPER.
[DIAGNOSIS]
After an asterick is typed, the bit which says that astericks are
allowed is cleared and a bit which says an asterick has been typed
is set. Edit 1903 needed to test both bits.
[CURE]
Test whether astericks are allowed as well as whether an asterick
has been typed.
********************************************************************************
EDIT 1917 FOR MONITO
[SYMPTOM]
DELF JSYS with arguments DF%NRJ and DF%CNO for an offline file
returns error code ARGX25 - "Invalid class".
[DIAGNOSIS]
Wrong code; should be ARGX26 - "File is offline".
[CURE]
Change the code to ARGX26.
********************************************************************************
EDIT 1918 FOR MONITO
[SYMPTON]
A quoted recognition character parsed by the .CMTXT function of
COMND, will cause the monitor to send CTRL/G to the user's terminal
when the user attempts to terminate the field.
[DIAGNOSIS]
Routine CMCINT neglects to check if the current character is
quoted.
[CURE]
Check if the current character is quoted and, if so, don't set
the recognition character bits.
********************************************************************************
EDIT 1919 FOR MONITO
[SYMPTOM]
Fortran can die with Memory Protection Violation
after edit 1857 is installed.
[DIAGNOSIS]
Edit 1857 performs a LDB on a byte pointer which may
point to a non-existent page. We should perform an
ILDB on the pointer.
[CURE]
Do it.
********************************************************************************
END OF TOPS-20-KL-ARPA-V4