#241 closed defect (fixed)
help_listen_util_$display_prompt loops on vt102 terminal type in command: help ls
| Reported by: | Gary Dixon | Owned by: | Gary Dixon |
|---|---|---|---|
| Priority: | major | Milestone: | MR12.8 |
| Component: | Standard Library | Version: | MR12.7 |
| Keywords: | Cc: |
Description
If logged into Multics without using the video system (using tty_ instead of window_io_), with terminal type set to vt102 (24 80-character lines per screen), the algorithms used by help_ to generate prompts asking about display of the next info seg paragraphs can enter an infinite loop, hanging the terminal output until a quit condition occurs (telnet "send break" request is sent).
When displaying output from the command: help ls
the expected output displaying contents of list.info is produced up to the point shown in the failure scenario log below.
help ls
...
Control arguments (entry type) (6 more).
More help? y
-link, -lk
list links.
-all, -a
list information about all entry types in the following order:
segments, MSFs, DM files, directories, and links.
Control arguments (column) (16).
More help? y
Control arguments (column): (see also "Notes on columns" below)
-date_time_entry_modified, -dtem
print date-time-entry-modified in the modification-date column.
-date_time_contents_modified, -dtcm
print date-time-contents-modified in the modification-date column.
-date_time_used, -dtu
print date-time-used column.
-mode, -md
print mode column.
-record, -rec
print records used in size column.
-length, -ln
print length computed from bit count in size column.
-name, -nm
print names column.
telnet> send break
QUIT
r 08:22 49.038 77 level 2
ts -bf
quit condition:
234|10160 help_listen_util_$display_prompt|3363 (bound_info_rtns_|70037) in o
\cperator cat_realloc_chars
234|5640 ssu_listen_$listen|377 (bound_ssu_|2545)
234|4440 help_$help_|6335 (bound_info_rtns_|60253)
234|3640 help$help|4340 (bound_info_rtns_|51366)
234|2700 command_processor_$command_processor_|2101 (bound_multics_bce_|2101)
234|2400 listen_$listen_|554 (bound_command_loop_|34522)
234|2000 initialize_process_$initialize_process_|704 (bound_process_init_|704
\c)
r 08:23 0.224 22 level 2
stty -all
Type: VT102
Modes: ll80,pl23,can_type=replace,^edited,tabs,can,esc,erkl,^rawi,^rawo,^red,^ve
\crtsp,crecho,lfecho,^tabecho,hndlquit,fulldpx,echoplex,^capo,^replay,^polite,^c
\ctl_char,^blk_xfer,^breakall,scroll,^prefixnl,^wake_tbl,^iflow,^oflow,^no_outp,
\c^8bit,^oddp.
Erase: #, Kill: @
Frame_begin: \000, Frame_end: \000
Delays: vert_nl 0, horz_nl 0.500, const_tab 0, var_tab 0.000, backspace 0, vt_
\cff 0
output suspend: \023; output resume: \021
r 08:30 0.023 0 level 2
pat
cl_save_!BBBKQKmQMhWlZc
syn_ user_i/o -inh close get_line get_chars
cl_save_!BBBKQKmQMhWjjn
syn_ user_i/o -inh close get_line get_chars
cl_save_!BBBKQKmQMhWgPC
syn_ user_i/o -inh close put_chars
error_output syn_ user_i/o -inh close get_line get_chars
user_output syn_ user_i/o -inh close get_line get_chars
user_input syn_ user_i/o -inh close put_chars
user_i/o tty_ -login_channel -suppress_dial_manager
stream_input_output
r 08:30 0.018 0 level 2
This infinite loop is not encountered when using a terminal type supporting longer lines and more lines per page (such as VT102_132C, VT102_132C_50L, VT102_132C_78L).
This problem was introduced by the new help_ implementation in MR12.7.
The looping can occur at several places in the help_listen_util_$display_prompt code. Besides the offset shown in the trace_stack output above, it was also seen at:
ts quit in help_listen_util_$display_prompt|5352 (>system_library_standard>bound_info_rtns_|72026)
Code in the looping do-group calls an internal subroutine to determine if more info seg paragraphs can be described in the current prompt. So offsets within a fairly wide range of code can be involved in this infinite loop.
Change History (5)
comment:2 by , 5 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → accepted |
comment:3 by , 5 years ago
| Milestone: | → MR12.8 |
|---|
comment:4 by , 5 years ago
| Resolution: | → fixed |
|---|---|
| Status: | accepted → closed |

https://s3.amazonaws.com/eswenson-multics/public/mcrs/MCR10094.pdf|MCR10094 was created to propose a repair for this problem.