Unprovoked crash

Is this a known issue? Multics was just idling:

CONSOLE: ALERT
sys_trouble: Fault while in masked environment.
bce (crash) 0132.6:

azm: M-> sld 1

ERF 1 in directory >dumps dumped at 08/02/90 0847.8 edt Thu.
System-ID MR12.3X Version-ID MR12.3X
Proc 0 DBR 17451250 running on cpu a Initializer.SysDaemon.z

azm: M-> why

Crash Message:
sys_trouble: Fault while in masked environment.
Fault while in masked environment
Overflow Fault (33)
By: 44|4366 bound_tc_priv$pxss|4366
Ref: 112|1112 tc_data|1112

Assuming a 12.3 boot tape; so use 12.3 system book and pxss.alm

bound_tc_priv                      44  (0, 0, 0) read execute privileged encacheable wired
     pxss                                        wired length: 4096 words;
     usage_values                     meter_response_time

Yay, pxss at offset 0; makes math easier.

ac x >ldd>sl1>s>bound_tc_priv.s pxss.alm
alm pxss -ls

Edit the listing, looking for offset 4366

                                  3942
    004356  aa  2 00021 2201 00   3943            ldx0      bp|apte.wct_index   Update work_class data.
    004357  aa  6 00154 2371 00   3944            ldaq      delta_t             Workclasses get % of tcpu - not vcpu
    004360  aa  3 00024 2341 10   3945            szn       bb|wcte.realtime,0  Realtime not add to bank.
    004361  0a   004363 6010 00   3946            tnz       *+2
    004362  aa  3 00402 0561 00   3947            asq       bb|credit_bank      But others do.
                                  3948
    004363  aa  3 00006 0771 10   3949            adaq      bb|wcte.cpu_sum,0   Add to time gotten
    004364  aa  3 00006 7571 10   3950            staq      bb|wcte.cpu_sum,0
    004365  aa  6 00155 3361 00   3951            lcq       delta_t+1           Decrement credits.
--------
    004366  aa  3 00002 0561 10   3952            asq       bb|wcte.credits,0
--------
    004367  aa  3 00001 2351 10   3953            lda       bb|wcte.governed_word,0       Is W.C. governed
    004370  aa   040000 3150 03   3954            cana      wcte.governed,du
    004371  0a   004407 6000 00   3955            tze       m_unlock            no
    004372  aa  3 00063 0561 10   3956            asq       bb|wcte.governing_credits,0
    004373  0a   004407 7100 00   3957            tra       m_unlock            Now go unlock metering data.
                                  3958

asq uses the generic AddSub36, whose overflow logic has been highly tested and is almost certainly correct.

tc_meters.incl.alm: " Under present format, the wcte's begin at 1110 (octal),"

wcte.incl.alm" equ wcte.credits,2

So "Ref: 112|1112 tc_data|1112" is wcte.credits; so the addressing appears correct.

Obtained the dump tape from RCC; analyzing:

azm:  M-> sld 1

  ERF 1   in directory >dumps dumped at 08/02/90  0847.8 edt Thu.
  System-ID MR12.3X Version-ID MR12.3X
Proc   0 DBR  17451250 running        on cpu a   Initializer.SysDaemon.z

azm:  M-> why

Crash Message:
    sys_trouble: Fault while in masked environment.

Fault while in masked environment
Overflow Fault (33)
By: 44|4366  bound_tc_priv$pxss|4366
Ref: 112|1112  tc_data|1112

 azm:  stack 231

Reverse trace of >pdd>!zzzzzzzbBBBBBB>stack_1 (Seg 231)
Number of stack frames 3.
Stack begin = 231|2000 Stack end = 231|5260
FRAME       RETURN_PTR
231|3660    441|14704    >sss>bound_mseg_$mseg_check_access_|454
231|2060    441|12160    >sss>bound_mseg_$mseg_mbx_ms_gate_target_|12160
231|2000    440|307      >sss>message_segment_|307
Previous stack frame 234|14040

azm:  stack 234

Reverse trace of >pdd>!zzzzzzzbBBBBBB>stack_4 (Seg 234)
Number of stack frames 18.
Stack begin = 234|2000 Stack end = 234|16100
FRAME       RETURN_PTR
234|14040   400|47522    >t>bound_as_misc_$as_request_server_|1604

;;; as_request_server:  A procedure to get requests from user processes and dispatch
;;;  them to the correct answering service module.

234|12700   252|4232     >sl1>bound_ipc_$ipc_real_|3646
234|12520   252|335      >sl1>bound_ipc_$ipc_fast_|263
234|11520   257|2255     >sl1>bound_oc_$ocd_|2255

;;;  ocd_: Outer module of the operator's console DIM. (Driver interface module).

234|11040   264|6422     >sl1>bound_system_control_$sc_signal_io_handler_|272
234|10740   264|7611     >sl1>bound_system_control_$sc_admin_mode_|553

;;; sc_admin_mode: System control request to enter admin mode

sc_admin_mode_|553 appears to be at the end of:

      102           on signal_io_ call sc_signal_io_handler_;         /* make sure our handler takes */

The way the pl1 code generates 'on signal code' is by generating code to install a closure, jumping aroung the closure, and the generate the closure; so the "sc_admin_mode_|533" is the actual call to sc_signal_io_handler; sc_admin_code is doing I/O somewhere; we need to dissect the signal frame.

azm:  stack 234 -ag 
Reverse trace of >pdd>!zzzzzzzbBBBBBB>stack_4 (Seg 234)
Number of stack frames 18.
Stack begin = 234|2000 Stack end = 234|16100
FRAME       RETURN_PTR
234|14040   400|47522    >t>bound_as_misc_$as_request_server_|1604

          Entry ptr 400|47021 >t>bound_as_misc_$as_request_server_|1103
          Operator/Link ptr 315|21736
          Arg ptr 234|13600
          ARG  1: 234|13006  >pdd>!zzzzzzzbBBBBBB>stack_4|13006

234|12700   252|4232     >sl1>bound_ipc_$ipc_real_|3646

          Entry ptr 252|2600 >sl1>bound_ipc_$ipc_real_|2214
          Operator/Link ptr 315|21736
          Arg ptr 234|12666
          ARG  1: 353|15742  >pdd>!zzzzzzzbBBBBBB>!BBBJfCWwmMCcZD.area.linker|1
\c5742
          ARG  2: 234|11632  >pdd>!zzzzzzzbBBBBBB>stack_4|11632
          ARG  3: 000000000000

234|12520   252|335      >sl1>bound_ipc_$ipc_fast_|263

          Entry ptr 252|64 >sl1>bound_ipc_$ipc_fast_|12
          Operator/Link ptr 315|21736
          Arg ptr 234|12234
          ARG  1: 353|15742  >pdd>!zzzzzzzbBBBBBB>!BBBJfCWwmMCcZD.area.linker|1
\c5742
          ARG  2: 234|11632  >pdd>!zzzzzzzbBBBBBB>stack_4|11632
          ARG  3: 000000000000

234|11520   257|2255     >sl1>bound_oc_$ocd_|2255

          Entry ptr 257|1406 >sl1>bound_oc_$ocd_|1406
          Operator/Link ptr 315|21736
          Arg ptr 234|11304
          ARG  1: 353|15416  >pdd>!zzzzzzzbBBBBBB>!BBBJfCWwmMCcZD.area.linker|1
\c5416
          ARG  2: 234|7560  >pdd>!zzzzzzzbBBBBBB>stack_4|7560
          ARG  3: 000000000200
          ARG  4: 000000000000
          ARG  5: 000000000000

234|11040   264|6422     >sl1>bound_system_control_$sc_signal_io_handler_|272

          Entry ptr 264|6240 >sl1>bound_system_control_$sc_signal_io_handler_|1
\c10
          Operator/Link ptr 315|21736
          Arg ptr 234|11016
          No arguments.

234|10740   264|7611     >sl1>bound_system_control_$sc_admin_mode_|553

          Entry ptr 264|7600 >sl1>bound_system_control_$sc_admin_mode_|542
          Operator/Link ptr 315|21736
          Arg ptr 234|10666
          ARG  1: 77777|1  NULL POINTER
          ARG  2: "signal_io_"
          ARG  3: 77777|1  NULL POINTER
          ARG  4: 234|7744  >pdd>!zzzzzzzbBBBBBB>stack_4|7744
          ARG  5: 000000000000

Okay now I'm confused.

Start at the other end of the stack:

234|14040   400|47522    >t>bound_as_misc_$as_request_server_|1604
234|12700   252|4232     >sl1>bound_ipc_$ipc_real_|3646
234|12520   252|335      >sl1>bound_ipc_$ipc_fast_|263
234|11520   257|2255     >sl1>bound_oc_$ocd_|2255
234|11040   264|6422     >sl1>bound_system_control_$sc_signal_io_handler_|272
234|10740   264|7611     >sl1>bound_system_control_$sc_admin_mode_|553
234|10400   314|11206    >sl1>bound_library_1_$signal_|1470
234|7620    373|4510     >sss>bound_misc_io_modules_$signal_io_|2414
234|7320    546|34435    >sss>bound_command_loop_$listen_|471
234|6740    264|7746     >sl1>bound_system_control_$sc_admin_mode_|710
234|6420    365|7337     >sss>bound_ssu_$ssu_execute_|551
234|6160    264|11672    >sl1>bound_system_control_$sc_abort_line_util_|276
234|5220    374|2140     >sl1>bound_multics_bce_$command_processor_|2140
234|4200    365|4526     >sss>bound_ssu_$ssu_request_processor_|1010
234|3700    264|4457     >sl1>bound_system_control_$sc_execute_command_line_|54
\c3
234|2700    365|4134     >sss>bound_ssu_$ssu_request_processor_|416
234|2400    264|1637     >sl1>bound_system_control_$sc_process_command_line_|11
\c75
234|2000    264|433      >sl1>bound_system_control_$system_control_|433
234|2000    264|433      >sl1>bound_system_control_$system_control_|433

; end of line 146:

      137 SYSTEM_CONTROL_LISTENER:
      138           do while ("1"b);
      139                mc_atep = sc_stat_$initzer_ttyp;             /* it may get set at any time */
      140                if ^sc_stat_$Multics | (mc_atep = null ())
      141                then call ioa_$ioa_switch (sc_stat_$master_iocb, "Ready");
      142                else call ioa_$ioa_switch (sc_stat_$master_iocb, "Ready^[ (^a)^;^s^]^[ (Not signed on.)^]",
      143                          mc_ate.signed_on, mc_ate.personid,
      144                          as_data_$rs_ptrs (0) -> installation_parms.require_operator_login & ^mc_ate.signed_on);
      145                command_line_length = 0;
      146                call iox_$get_line (sc_stat_$master_iocb, addr (buffer), length (buffer), command_line_length, (0));
      147                if command_line_length > 0
      148                then call sc_process_command_line_ (sc_stat_$master_sci_ptr, addr (buffer), command_line_length);
      149           end;

234|2400    264|1637     >sl1>bound_system_control_$sc_process_command_line_|1175

          Entry ptr 264|1065 >sl1>bound_system_control_$sc_process_command_line
\c_|423
          Operator/Link ptr 315|21736
          Arg ptr 234|2330
          ARG  1: 353|26222  >pdd>!zzzzzzzbBBBBBB>!BBBJfCWwmMCcZD.area.linker|2
\c6222
          ARG  2: 234|2114  >pdd>!zzzzzzzbBBBBBB>stack_4|2114
          ARG  3: 000000000006

azm:  d 234|2114 6 -ch
Segno 234 >pdd>!zzzzzzzbBBBBBB>stack_4|2114
  2114      0 admin...................
234|14040   400|47522    >t>bound_as_misc_$as_request_server_|1604
234|12700   252|4232     >sl1>bound_ipc_$ipc_real_|3646
234|12520   252|335      >sl1>bound_ipc_$ipc_fast_|263
234|11520   257|2255     >sl1>bound_oc_$ocd_|2255
234|11040   264|6422     >sl1>bound_system_control_$sc_signal_io_handler_|272
234|10740   264|7611     >sl1>bound_system_control_$sc_admin_mode_|553
234|10400   314|11206    >sl1>bound_library_1_$signal_|1470
234|7620    373|4510     >sss>bound_misc_io_modules_$signal_io_|2414
234|7320    546|34435    >sss>bound_command_loop_$listen_|471
234|6740    264|7746     >sl1>bound_system_control_$sc_admin_mode_|710
234|6420    365|7337     >sss>bound_ssu_$ssu_execute_|551
234|6160    264|11672    >sl1>bound_system_control_$sc_abort_line_util_|276
234|5220    374|2140     >sl1>bound_multics_bce_$command_processor_|2140
234|4200    365|4526     >sss>bound_ssu_$ssu_request_processor_|1010
234|3700    264|4457     >sl1>bound_system_control_$sc_execute_command_line_|54
\c3
234|2700    365|4134     >sss>bound_ssu_$ssu_request_processor_|416
234|2400    264|1637     >sl1>bound_system_control_$sc_process_command_line_|11
\c75
234|2000    264|433      >sl1>bound_system_control_$system_control_|433                         148: call sc_process_command_line_ (sc_stat_$master_sci_ptr, "admin", 6);
234|2400    264|1637     >sl1>bound_system_control_$sc_process_command_line_|1175

          Entry ptr 264|1065 >sl1>bound_system_control_$sc_process_command_line
\c_|423
          Operator/Link ptr 315|21736
          Arg ptr 234|2330
          ARG  1: 353|26222  >pdd>!zzzzzzzbBBBBBB>!BBBJfCWwmMCcZD.area.linker|2
\c6222
          ARG  2: 234|2114  >pdd>!zzzzzzzbBBBBBB>stack_4|2114
          ARG  3: 000000000006
      242                     call ssu_$execute_line (sci_ptr, line_ptr, line_lth, code);
234|2700    365|4134     >sss>bound_ssu_$ssu_request_processor_|416

          Entry ptr 365|3705 >sss>bound_ssu_$ssu_request_processor_|167
          Operator/Link ptr 315|21736
          Arg ptr 234|2574
          ARG  1: 353|26222  >pdd>!zzzzzzzbBBBBBB>!BBBJfCWwmMCcZD.area.linker|2
\c6222
          ARG  2: 234|2114  >pdd>!zzzzzzzbBBBBBB>stack_4|2114
          ARG  3: 000000000006
          ARG  4: 000000000000

I think:

          call sci.entries.execute_line (sci_ptr, P_request_line_ptr, P_request_line_lth, code);

[code]]
234|14040 400|47522 >t>bound_as_misc_$as_request_server_|1604
234|12700 252|4232 >sl1>bound_ipc_$ipc_real_|3646
234|12520 252|335 >sl1>bound_ipc_$ipc_fast_|263
234|11520 257|2255 >sl1>bound_oc_$ocd_|2255
234|11040 264|6422 >sl1>bound_system_control_$sc_signal_io_handler_|272
234|10740 264|7611 >sl1>bound_system_control_$sc_admin_mode_|553
234|10400 314|11206 >sl1>bound_library_1_$signal_|1470
234|7620 373|4510 >sss>bound_misc_io_modules_$signal_io_|2414
234|7320 546|34435 >sss>bound_command_loop_$listen_|471
234|6740 264|7746 >sl1>bound_system_control_$sc_admin_mode_|710
234|6420 365|7337 >sss>bound_ssu_$ssu_execute_|551
234|6160 264|11672 >sl1>bound_system_control_$sc_abort_line_util_|276
234|5220 374|2140 >sl1>bound_multics_bce_$command_processor_|2140
234|4200 365|4526 >sss>bound_ssu_$ssu_request_processor_|1010
234|3700 264|4457 >sl1>bound_system_control_$sc_execute_command_line_|543
234|2700 365|4134 >sss>bound_ssu_$ssu_request_processor_|416 196: call sci.entries.execute_line (sci_ptr, P_request_line_ptr, P_request_line_lth, code);

234|2400 264|1637 >sl1>bound_system_control_$sc_process_command_line_|1175 242: call ssu_$execute_line (sci_ptr, line_ptr, line_lth, code);
234|2000 264|433 >sl1>bound_system_control_$system_control_|433 148: call sc_process_command_line_ (sc_stat_$master_sci_ptr, "admin", 6);
[[/code]]

234|3700    264|4457     >sl1>bound_system_control_$sc_execute_command_line_|543

          Entry ptr 264|4150 >sl1>bound_system_control_$sc_execute_command_line
\c_|234
          Operator/Link ptr 315|21736
          Arg ptr 234|3516
          ARG  1: 353|26222  >pdd>!zzzzzzzbBBBBBB>!BBBJfCWwmMCcZD.area.linker|2
\c6222
          ARG  2: 234|2114  >pdd>!zzzzzzzbBBBBBB>stack_4|2114
          ARG  3: 6
          ARG  4: " admin"
234|14040   400|47522    >t>bound_as_misc_$as_request_server_|1604
234|12700   252|4232     >sl1>bound_ipc_$ipc_real_|3646
234|12520   252|335      >sl1>bound_ipc_$ipc_fast_|263
234|11520   257|2255     >sl1>bound_oc_$ocd_|2255
234|11040   264|6422     >sl1>bound_system_control_$sc_signal_io_handler_|272
234|10740   264|7611     >sl1>bound_system_control_$sc_admin_mode_|553
234|10400   314|11206    >sl1>bound_library_1_$signal_|1470
234|7620    373|4510     >sss>bound_misc_io_modules_$signal_io_|2414
234|7320    546|34435    >sss>bound_command_loop_$listen_|471
234|6740    264|7746     >sl1>bound_system_control_$sc_admin_mode_|710
234|6420    365|7337     >sss>bound_ssu_$ssu_execute_|551
234|6160    264|11672    >sl1>bound_system_control_$sc_abort_line_util_|276
234|5220    374|2140     >sl1>bound_multics_bce_$command_processor_|2140
234|4200    365|4526     >sss>bound_ssu_$ssu_request_processor_|1010
234|3700    264|4457     >sl1>bound_system_control_$sc_execute_command_line_|543       201: call sc_subsystem_info.real_execute_line (sci_ptr, request_line_ptr, request_line_lth, code);
234|2700    365|4134     >sss>bound_ssu_$ssu_request_processor_|416                             196: call sci.entries.execute_line (sci_ptr, P_request_line_ptr, P_request_line_lth, code);

234|2400    264|1637     >sl1>bound_system_control_$sc_process_command_line_|1175     242: call ssu_$execute_line (sci_ptr, line_ptr, line_lth, code);
234|2000    264|433      >sl1>bound_system_control_$system_control_|433                         148: call sc_process_command_line_ (sc_stat_$master_sci_ptr, "admin", 6);
234|4200    365|4526     >sss>bound_ssu_$ssu_request_processor_|1010

          Entry ptr 365|4205 >sss>bound_ssu_$ssu_request_processor_|467
          Operator/Link ptr 315|21736
          Arg ptr 234|4100
          ARG  1: 353|26222  >pdd>!zzzzzzzbBBBBBB>!BBBJfCWwmMCcZD.area.linker|2
\c6222
          ARG  2: 234|2114  >pdd>!zzzzzzzbBBBBBB>stack_4|2114
          ARG  3: 000000000006
          ARG  4: 000000000000
234|14040   400|47522    >t>bound_as_misc_$as_request_server_|1604
234|12700   252|4232     >sl1>bound_ipc_$ipc_real_|3646
234|12520   252|335      >sl1>bound_ipc_$ipc_fast_|263
234|11520   257|2255     >sl1>bound_oc_$ocd_|2255
234|11040   264|6422     >sl1>bound_system_control_$sc_signal_io_handler_|272
234|10740   264|7611     >sl1>bound_system_control_$sc_admin_mode_|553
234|10400   314|11206    >sl1>bound_library_1_$signal_|1470
234|7620    373|4510     >sss>bound_misc_io_modules_$signal_io_|2414
234|7320    546|34435    >sss>bound_command_loop_$listen_|471
234|6740    264|7746     >sl1>bound_system_control_$sc_admin_mode_|710
234|6420    365|7337     >sss>bound_ssu_$ssu_execute_|551
234|6160    264|11672    >sl1>bound_system_control_$sc_abort_line_util_|276
234|5220    374|2140     >sl1>bound_multics_bce_$command_processor_|2140
234|4200    365|4526     >sss>bound_ssu_$ssu_request_processor_|1010                           251:           else call command_processor_$subsys_execute_line (ssu_$get_subsystem_and_request_name (sci_ptr), sci_ptr,

234|3700    264|4457     >sl1>bound_system_control_$sc_execute_command_line_|543       201: call sc_subsystem_info.real_execute_line (sci_ptr, request_line_ptr, request_line_lth, code);
234|2700    365|4134     >sss>bound_ssu_$ssu_request_processor_|416                             196: call sci.entries.execute_line (sci_ptr, P_request_line_ptr, P_request_line_lth, code);

234|2400    264|1637     >sl1>bound_system_control_$sc_process_command_line_|1175     242: call ssu_$execute_line (sci_ptr, line_ptr, line_lth, code);
234|2000    264|433      >sl1>bound_system_control_$system_control_|433                         148: call sc_process_command_line_ (sc_stat_$master_sci_ptr, "admin", 6);
234|5220    374|2140     >sl1>bound_multics_bce_$command_processor_|2140

          Entry ptr 374|511 >sl1>bound_multics_bce_$command_processor_|511
          Operator/Link ptr 315|21736
          Arg ptr 234|5042
          ARG  1: "system_control"
          ARG  2: 353|26222  >pdd>!zzzzzzzbBBBBBB>!BBBJfCWwmMCcZD.area.linker|2
\c6222
          ARG  3: 365|552  >sss>bound_ssu_$ssu_|140
          ARG  4: 353|26524  >pdd>!zzzzzzzbBBBBBB>!BBBJfCWwmMCcZD.area.linker|2
\c6524
          ARG  5: "admin
"
          ARG  6: 0
234|14040   400|47522    >t>bound_as_misc_$as_request_server_|1604
234|12700   252|4232     >sl1>bound_ipc_$ipc_real_|3646
234|12520   252|335      >sl1>bound_ipc_$ipc_fast_|263
234|11520   257|2255     >sl1>bound_oc_$ocd_|2255
234|11040   264|6422     >sl1>bound_system_control_$sc_signal_io_handler_|272
234|10740   264|7611     >sl1>bound_system_control_$sc_admin_mode_|553
234|10400   314|11206    >sl1>bound_library_1_$signal_|1470
234|7620    373|4510     >sss>bound_misc_io_modules_$signal_io_|2414
234|7320    546|34435    >sss>bound_command_loop_$listen_|471
234|6740    264|7746     >sl1>bound_system_control_$sc_admin_mode_|710
234|6420    365|7337     >sss>bound_ssu_$ssu_execute_|551
234|6160    264|11672    >sl1>bound_system_control_$sc_abort_line_util_|276
234|5220    374|2140     >sl1>bound_multics_bce_$command_processor_|2140                    556: call execute_request (P_subsystem_info_ptr, command_name, addr (arg_list), code); 
    execute_request points to >sss>bound_ssu_$ssu_|140; I think ssu_ transfers to abort_line.

234|4200    365|4526     >sss>bound_ssu_$ssu_request_processor_|1010                           251: else call command_processor_$subsys_execute_line ("system_control", ...."admin");
234|3700    264|4457     >sl1>bound_system_control_$sc_execute_command_line_|543       201: call sc_subsystem_info.real_execute_line (sci_ptr, request_line_ptr, request_line_lth, code);
234|2700    365|4134     >sss>bound_ssu_$ssu_request_processor_|416                             196: call sci.entries.execute_line (sci_ptr, P_request_line_ptr, P_request_line_lth, code);

234|2400    264|1637     >sl1>bound_system_control_$sc_process_command_line_|1175     242: call ssu_$execute_line (sci_ptr, line_ptr, line_lth, code);
234|2000    264|433      >sl1>bound_system_control_$system_control_|433                         148: call sc_process_command_line_ (sc_stat_$master_sci_ptr, "admin", 6);
234|6160    264|11672    >sl1>bound_system_control_$sc_abort_line_util_|276

          Entry ptr 264|11471 >sl1>bound_system_control_$sc_abort_line_util_|75
          Operator/Link ptr 315|21736
          Arg ptr 234|6126
          ARG  1: 353|26222  >pdd>!zzzzzzzbBBBBBB>!BBBJfCWwmMCcZD.area.linker|2
\c6222
          ARG  2: "admin"
          ARG  3: 234|5526  >pdd>!zzzzzzzbBBBBBB>stack_4|5526
          ARG  4: 000000000000

Gotta love the documentation:

       11 /* sc_abort_line_util_.pl1 --                                                */
       12 /*    Procedure to implement (hopefully) temporary sc feature of mapping     */
       13 /* abort_line into "abort_request".  The reasons for this mapping are not    */
       14 /* fully understood.                                                         */
       15 /*                                                                           */
       16 /*    This procedure also contains the ssu_-replacable procedure for         */
       17 /* ssu_$invoke_request.  This replacement procedure sets up the label for    */
       18 /* the abort_request function, and also performs masking of IPC event calls  */
       19 /* on a per-request basis.  This masking must properly be done on a          */
       20 /* per-request basis.  Masking is done based upon the value of               */
       21 /* sc_request_flags.dont_mask_calls which is defined for each request in the */
       22 /* sc_request_table_.                                                        */
       23 /*                                                                           */
       24 /*    The sequence in which procedures are called in order to invoke a       */
       25 /* request is as follows:                                                    */
       26 /*                                                                           */
       27 /*    ssu_$listen                                                            */
       28 /*     |__sc_execute_command_line_                                           */
       29 /*         |__check for special commands; if special                         */
       30 /*             |__INVOKE_SPECIAL_PROCEDURE                                   */
       31 /*            if not special                                                 */
       32 /*             |__SSU's execute_command_line                                 */
       33 /*                 |__sc_abort_line_util_$invoke_request                     */
       34 /*                    |__SSU's locate_request                                */
       35 /*                    |__if event calls should be masked for this request    */
       36 /*                    |   |__ipc_$mask_ev_calls                              */
       37 /*                    |                                                      */
       38 /*                    |__SSU's invoke_request                                */
       39 /*                    |   |__sc_execute_command_line_$locate_request         */
       40 /*                    |   |   |__SSU's locate request                        */
       41 /*                    |   |   |__check_restrictions                          */
       42 /*                    |   |                                                  */
       43 /*                    |   |__REQUEST PROCEDURE                               */
       44 /*                    |                                                      */
       45 /*                    |__if event calls were masked                          */
       46 /*                        |__ipc_$unmask_ev_calls                            */

Lost again….

Let's try the middle: 'listen'

234|7320    546|34435    >sss>bound_command_loop_$listen_|471

          Entry ptr 546|34014 >sss>bound_command_loop_$listen_|50
          Operator/Link ptr 315|21736
          Arg ptr 234|7244
          ARG  1: "}\000\000\000\002\000\004\000\000\000\000\000\234\400#&\000\
\c000\000\002\000\004\000\002\000\000\000\234\400#\237\000\000\000\264\400#+\00
\c[[code]]
234|14040   400|47522    >t>bound_as_misc_$as_request_server_|1604
234|12700   252|4232     >sl1>bound_ipc_$ipc_real_|3646
234|12520   252|335      >sl1>bound_ipc_$ipc_fast_|263
234|11520   257|2255     >sl1>bound_oc_$ocd_|2255
234|11040   264|6422     >sl1>bound_system_control_$sc_signal_io_handler_|272
234|10740   264|7611     >sl1>bound_system_control_$sc_admin_mode_|553
234|10400   314|11206    >sl1>bound_library_1_$signal_|1470
234|7620    373|4510     >sss>bound_misc_io_modules_$signal_io_|2414
234|7320    546|34435    >sss>bound_command_loop_$listen_|471                                    193  call iox_$get_line (iox_$user_input, read_ptr, buffer_length * 4 - total_input_length, input_length, code);

234|6740    264|7746     >sl1>bound_system_control_$sc_admin_mode_|710
234|6420    365|7337     >sss>bound_ssu_$ssu_execute_|551
234|6160    264|11672    >sl1>bound_system_control_$sc_abort_line_util_|276
234|5220    374|2140     >sl1>bound_multics_bce_$command_processor_|2140                    556: call execute_request (P_subsystem_info_ptr, command_name, addr (arg_list), code); 
    execute_request points to >sss>bound_ssu_$ssu_|140; I think ssu_ transfers to abort_line.

234|4200    365|4526     >sss>bound_ssu_$ssu_request_processor_|1010                           251: else call command_processor_$subsys_execute_line ("system_control", ...."admin");
234|3700    264|4457     >sl1>bound_system_control_$sc_execute_command_line_|543       201: call sc_subsystem_info.real_execute_line (sci_ptr, request_line_ptr, request_line_lth, code);
234|2700    365|4134     >sss>bound_ssu_$ssu_request_processor_|416                             196: call sci.entries.execute_line (sci_ptr, P_request_line_ptr, P_request_line_lth, code);

234|2400    264|1637     >sl1>bound_system_control_$sc_process_command_line_|1175     242: call ssu_$execute_line (sci_ptr, line_ptr, line_lth, code);
234|2000    264|433      >sl1>bound_system_control_$system_control_|433                         148: call sc_process_command_line_ (sc_stat_$master_sci_ptr, "admin", 6);0\000\000\234\400# \000\000\000\264\400#8\000\000\000\264\400#9\000\000\000\2
\c64\400#3\000\000?\777\400#"

Okay, the listener was sitting in get_line() when the wheels came off.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License