# PANIC on renumber()

dave@ipac.caltech.edu (dave@ipac.caltech.edu)
Tue, 9 Jan 1996 15:54:50 PST

- Messages sorted by:[ date ][ thread ][ subject ][ author ]

    I also had a server panic under 1.8.0 alpha 4 in some code using eval (actually using $code_utils:eval_d).

    Jan  9 13:15:28: *** PANIC: Caught signal 11
    Jan  9 13:15:28: #60:eval_d, line 7:  server panic
    Jan  9 13:15:28: ... called from #83:_include_filter (this == #109), line 30
    Jan  9 13:15:28: ... called from #-1:Input to EVAL, line 3
    Jan  9 13:15:28: ... called from built-in function eval()
    Jan  9 13:15:28: ... called from #59:eval_cmd_string (this == #2), line 18
    Jan  9 13:15:28: ... called from #59:eval*-d (this == #2), line 10

    @list #60:eval_d
    #60:"eval_d"   any any any
     1:  ":eval_d(code...) => {compiled?,result}";
     2:  "This works exactly like the builtin eval() except that the code is
    evaluated ";
     3:  "as if the d flag were unset.";
     4:  code = {"set_verb_code(this,\"1\",{\"\\\"Do not remove this verb!  This is
    an auxiliary verb for :eval_d().\\\";\"});", "dobj=iobj=this=#-1;",
    "dobjstr=iobjstr=prepstr=argstr=verb=\"\";", tostr("caller=", caller, ";"),
    "set_task_perms(caller_perms());", @args};
     5:  if (!caller_perms().programmer)
     6:    return E_PERM;
     7:  elseif (svc = set_verb_code(this, "1", code))
     8:    lines = {};
     9:    for line in (svc)
    10:      if (index(line, "Line ") == 1 && (n = tonum(line[6..(colon =
    index(line + ":", ":")) - 1])))
    11:        lines = {@lines, tostr("Line ", n - 5, line[colon..length(line)])};
    12:      else
    13:        lines = {@lines, line};
    14:      endif
    15:    endfor
    16:    return {0, lines};
    17:  else
    18:    set_task_perms(caller_perms());
    19:    return {1, this:("1")()};
    20:  endif

    The problem was reproducible (restarting the server and typing the same command line panicked again).  I should have kept the code calling this for reference, but did not.  If I see the problem again I'll do some more serious testing to isolate the problem with the simplest possible verb.