# another panic with 1.7.9p1

asb@media.mit.edu (asb@media.mit.edu)
Mon, 23 Oct 1995 08:53:03 PDT

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

    MediaMOO panic'd again this morning.  I'm running 1.7.9p1 on a
    Sun SPARCstation ipc running SunOS Release 4.1.4 (GENERIC) #2.
    I enabled the outbound network connection and command logging options.

    Looks like the panic was in the following match expression:
    m = match((verb + " ") + argstr, "%(%++?%)%([^ ]*%) *%(.*%)$");
    Where verb is "+swb" and argstr is "waves. "Morning""

    Here's the output from the log file:

    Oct 23 09:10:55: *** PANIC: Caught signal 10
    Oct 23 09:10:55: *** COMMAND HISTORY:
    [ordinary looking stuff deleted]
    Oct 23 09:10:54: #10560: +swb waves. "Morning"
    Oct 23 09:10:55: #9340:+* (this == #10560), line 6:  server panic
    Oct 23 09:10:55: (End of traceback)
    Oct 23 09:10:55: PANIC-DUMPING on MediaMOO.db.new.PANIC ...
    Oct 23 09:17:23: PANIC-DUMPING on MediaMOO.db.new.PANIC finished

    Here's some info from the core file:
    (dbx) where
    warning: core file read error: address not in data space
    kill() at 0xf775f040
    abort_server(), line 117 in "code/MOO-1.7.9p1/server.c"
    panic(), line 145 in "code/MOO-1.7.9p1/server.c"
    panic_signal(), line 154 in "code/MOO-1.7.9p1/server.c"
    _sigtramp() at 0xf7732c4c
    rx_handle_cache_miss(), line 4051 in "code/MOO-1.7.9p1/rx.c"
    rx_cache_malloc_or_get(), line 3128 in "code/MOO-1.7.9p1/rx.c"
    superset_allocator(), line 3194 in "code/MOO-1.7.9p1/rx.c"
    rx_hash_store(), line 1007 in "code/MOO-1.7.9p1/rx.c"
    rx_superset_cons(), line 3397 in "code/MOO-1.7.9p1/rx.c"
    rx_superstate_eclosure_union(), line 3428 in "code/MOO-1.7.9p1/rx.c"
    solve_destination(), line 3730 in "code/MOO-1.7.9p1/rx.c"
    rx_handle_cache_miss(), line 4051 in "code/MOO-1.7.9p1/rx.c"
    re_search_2(rxb = 0x41f9c, string1 = (nil), size1 = 0, size2 = 21, startpos = 0,
     range = 45736072, regs = 0x43cf8, stop = 21), line 7925 in "code/MOO-1.7.9p1/rx
    .c"
    re_search(), line 8070 in "code/MOO-1.7.9p1/rx.c"
    do_match(), line 794 in "code/MOO-1.7.9p1/list.c"
    bf_match(), line 846 in "code/MOO-1.7.9p1/list.c"
    call_bi_func(), line 224 in "code/MOO-1.7.9p1/functions.c"
    run(result = (nil)), line 1134 in "code/MOO-1.7.9p1/execute.c"
    do_task(), line 1295 in "code/MOO-1.7.9p1/execute.c"
    do_input_task(), line 1412 in "code/MOO-1.7.9p1/execute.c"
    do_command_task(), line 498 in "code/MOO-1.7.9p1/tasks.c"
    run_ready_tasks(), line 882 in "code/MOO-1.7.9p1/tasks.c"
    main_loop(), line 337 in "code/MOO-1.7.9p1/server.c"
    main(), line 1002 in "code/MOO-1.7.9p1/server.c"
    (dbx)

    Here's the complete listing of that verb:

    #9340:1
    "Remote-Emote           Page: +<player> [<message>]";
    "                    Respond: + <message>";
    "Use a ++ instead of + to effect a no-space emote (such as ::).";
    "Remote-Emote responds to the player last contacted with \"'\" or \"+\".";
    "Original remote-emote code from Quinn and others on LambdaMOO.";
    m = match((verb + " ") + argstr, "%(%++?%)%([^ ]*%) *%(.*%)$");
    if (!(string = substitute("%2", m)))
    who = this.last_player_paged;
    else
    who = $string_utils:match_player(string);
    if ($command_utils:player_match_failed(who, string))
    return;
    endif
    this.last_player_paged = who;
    endif
    if (!(who in connected_players()))
    player:tell(who:page_absent_msg());
    return;
    endif
    who:tell("(from ", player.location:title(), ") ", player.name, (substitute("%1"
    m) == "++") ? "" | " ", substitute("%3", m));
    player:tell(who.name, " has received your emote.");
    .

    -- Amy