ldmud-3.2.9/doc/
ldmud-3.2.9/doc/efun/
ldmud-3.2.9/mud/
ldmud-3.2.9/mud/heaven7/
ldmud-3.2.9/mud/heaven7/lib/
ldmud-3.2.9/mud/lp-245/
ldmud-3.2.9/mud/lp-245/banish/
ldmud-3.2.9/mud/lp-245/doc/
ldmud-3.2.9/mud/lp-245/doc/examples/
ldmud-3.2.9/mud/lp-245/doc/sefun/
ldmud-3.2.9/mud/lp-245/log/
ldmud-3.2.9/mud/lp-245/obj/Go/
ldmud-3.2.9/mud/lp-245/players/lars/
ldmud-3.2.9/mud/lp-245/room/death/
ldmud-3.2.9/mud/lp-245/room/maze1/
ldmud-3.2.9/mud/lp-245/room/sub/
ldmud-3.2.9/mud/lp-245/secure/
ldmud-3.2.9/mud/morgengrauen/
ldmud-3.2.9/mud/morgengrauen/lib/
ldmud-3.2.9/mud/sticklib/
ldmud-3.2.9/mud/sticklib/src/
ldmud-3.2.9/mudlib/uni-crasher/
ldmud-3.2.9/pkg/
ldmud-3.2.9/pkg/debugger/
ldmud-3.2.9/pkg/diff/
ldmud-3.2.9/pkg/misc/
ldmud-3.2.9/src/autoconf/
ldmud-3.2.9/src/bugs/
ldmud-3.2.9/src/bugs/MudCompress/
ldmud-3.2.9/src/bugs/b-020916-files/
ldmud-3.2.9/src/bugs/doomdark/
ldmud-3.2.9/src/bugs/ferrycode/ferry/
ldmud-3.2.9/src/bugs/ferrycode/obj/
ldmud-3.2.9/src/bugs/psql/
ldmud-3.2.9/src/done/
ldmud-3.2.9/src/done/order_alist/
ldmud-3.2.9/src/done/order_alist/obj/
ldmud-3.2.9/src/done/order_alist/room/
ldmud-3.2.9/src/gcc/
ldmud-3.2.9/src/gcc/2.7.0/
ldmud-3.2.9/src/gcc/2.7.1/
ldmud-3.2.9/src/hosts/
ldmud-3.2.9/src/hosts/GnuWin32/
ldmud-3.2.9/src/hosts/amiga/NetIncl/
ldmud-3.2.9/src/hosts/amiga/NetIncl/netinet/
ldmud-3.2.9/src/hosts/amiga/NetIncl/sys/
ldmud-3.2.9/src/hosts/i386/
ldmud-3.2.9/src/hosts/msdos/byacc/
ldmud-3.2.9/src/hosts/msdos/doc/
ldmud-3.2.9/src/hosts/os2/
ldmud-3.2.9/src/hosts/win32/
ldmud-3.2.9/src/util/
ldmud-3.2.9/src/util/erq/
ldmud-3.2.9/src/util/indent/hosts/next/
ldmud-3.2.9/src/util/xerq/
ldmud-3.2.9/src/util/xerq/lpc/
ldmud-3.2.9/src/util/xerq/lpc/www/
Short: Apply destructed in heart_beat_error
Date: 981222
Type: Bug
State: Fixed in 3.2-dev.36
From: Christian 'Chameloid' Kirschbaum <chrissy@cs.tu-berlin.de>

Reason: calls to apply_master_ob() did not check if argument objects were
destructed or not.

Bei uns gab es vor ein paar Stunden einen recht boesen Crash, der auch
nochvollziehbar ist.  Hier ein Auszug aus dem debug log:

[...]
calling select
'     heart_beat' in 'players/hepp/mymo/lfox.c' ('players/hepp/mymo/lfox')line 250
'      lair_beat' in 'players/hepp/mymo/lfox.c' ('players/hepp/mymo/lfox')line 171
Time: Mon Dec 21 21:59:24 1998
apply() on destructed object 'players/hepp/mymo/lfox' function 'handle_heart_beat_error'
Current object was kernel/master
kernel/master kernel/master.c line 367
18a359:  17          assign                    (2)      line 367
18a35a:  41          !                         (1)
18a35b:  16 63803177 ||                        (1)
18a360:  65        4 branch_when_zero          (1)
18a362: 203          this_interactive          (0)      line 368
18a363:  52        4 push_local_variable_lvalue (1)
18a365:  81          void_assign               (2)
18a366:  32        4 local                     (0)      line 370
18a368:  15          &&                        (1)
18a380:  65          branch_when_zero          (1)      line 371
18a3b5:  40        8 catch                     (0)      line 379
18a3b7:  32        4 local                     (0)
18a3b9:  75       52 cstring0                  (1)      line 380
18a3bb: 199          tell_object               (2)
18a3bf:  43          pop_value                 (1)
18a3c0:  75       53 cstring0                  (0)      line 381
18a3c2: 134          find_object               (1)
18a3c3:  65          branch_when_zero          (1)
18a411:   5        2 identifier                (0)      line 393
18a413: 207          time                      (1)
18a414:  79       60 clit                      (2)
18a416:  19          subtract                  (3)
18a417:  22          <                         (2)
18a418:  65       34 branch_when_zero          (1)
18a41a: 207          time                      (0)      line 394
18a41b:  47        2 push_identifier_lvalue    (1)
18a41d:  81          void_assign               (2)
18a41e:  40       17 catch                     (0)      line 395
18a420:  11    -3795 closure                   (0)
18a423:  59          const0                    (1)
18a424:  75       46 cstring0                  (2)
18a426: 207          time                      (3)
18a427: 120          ctime                     (4)
18a428:  18          +                         (4)
18a429:  75        3 cstring0                  (3)
18a42b:  18          +                         (4)
18a42c: 110        3 call_out                  (3)
18a42e:  59          const0                    (0)
18a42f: 258        2 end_catch                 (1)
18a431:  43          pop_value                 (1)
18a432:  75       46 cstring0                  (0)      line 396
18a434: 207          time                      (1)
18a435: 120          ctime                     (2)
18a436:  18          +                         (2)
18a437:  75        3 cstring0                  (1)
18a439:  18          +                         (2)
18a43a: 389     -123 debug_message             (1)
18a43c:  70          return0                   (0)      line 398
18aa53:  32        0 local                     (0)      line 930
18aa55: 298       42 query_ip_number           (1)
18aa57:  65          branch_when_zero          (1)
18aa5e:  32        0 local                     (0)      line 937
18aa60:  15       14 &&                        (1)
18aa62:  32        0 local                     (0)      line 938
18aa64:  75     -114 cstring0                  (1)
18aa66:  32        1 local                     (2)
18aa68:  32        2 local                     (3)
18aa6a:  32        3 local                     (4)      line 939
18aa6c:  32        4 local                     (5)
18aa6e: 109          call_other                (6)
18aa70:   6  70   0   0   0  16 -76 -122
'heart_beat_error' in '     kernel/master.c' ('       kernel/master')line 939
Floating exception (core dumped)
tubmud 5 (~): select returns 1
queried all childs
read: EOF
Read 0, should be 9!
External Request Demon gives up.
read: EOF
read 0, should be 9!
External Request Demon subserver gives up.

Hier trat also wohl ein Fehler in einem zerstoerten Objekt waerend der
Ausfuehrung von heart_beat() auf.  Kannst du was damit anfangen?

Und was merkwuerdig ist: Im Code des Drivers wird das Objekt noch auf
Existenz abgetestet, denn da steht etwas wie:

	return ob && call_other(ob,"handle_heart_beat_error");