Opened 9 years ago

Last modified 5 years ago

#69 new defect

Invoking trace_stack in admin mode crashes Multics

Reported by: Eric Swenson Owned by: Eric Swenson
Priority: major Milestone:
Component: Tools Version: MR12.6e
Keywords: Cc:

Description

If you invoke the "trace_stack" ("ts") command from admin mode, the system crashes when Initializer runs out of stack. It recurses trying to report a "null pointer" exception, getting another "null pointer" exception in the condition handler.

Change History (1)

comment:1 by Eric Swenson, 5 years ago

The apparent reason for this is that trace_stack (ts) invokes trace_stack_, which invokes list_frame_args_. list_frame_args_ establishes an any_other condition handler, but doesn't invoke sc_signal_io_handler_ upon signal_io_ conditions. This, apparently, is required in order to not get into a recursive loop, eventually running off the end of the ring-4 stack and terminating the Initializer process.

Simply adding an "on signal_io_ call sc_signal_io_handler_;" fixes the issue.

However, this points to a larger problem -- admin mode is very brittle. Any program that establishes an any_other handler, but doesn't establish a signal_io_ handler, or otherwise handle signal_io_ in its any_other handler will cause Initializer process to recurse off the end of its stack, crashing the system.

Version 0, edited 5 years ago by Eric Swenson (next)
Note: See TracTickets for help on using tickets.