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");