MOO-cows Mailing List Archive

[Prev][Next][Index][Thread]

Re: PANIC on renumber()



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.


References:

Home | Subject Index | Thread Index