View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000099 | LDMud 3.3 | Runtime | public | 2004-07-21 22:49 | 2005-05-15 13:02 |
Reporter | Assigned To | ||||
Priority | normal | Severity | feature | Reproducibility | sometimes |
Status | closed | Resolution | fixed | ||
Fixed in Version | 3.3 | ||||
Summary | 0000099: Destructed objects leak their program name | ||||
Description | After an object was destroyed I got the following message from the garbage collector: freeing small block 0x141e78d8 (user 0x141e78e0) prolang.y 16124 By object: secure/master By program: secure/master.c (/secure/master/preload.inc) line:44 141e78f4: 00 00 00 00 20 05 00 00 44 b4 20 14 0a 00 00 60 .... ...D´ ....` 141e7904: b6 a4 89 bd 88 7c 20 14 00 00 00 ¶¤.½.| .... freeing small block 0x1420b428 (user 0x1420b430) prolang.y 16124 By object: secure/master By program: secure/master.c (/secure/master/preload.inc) line:44 1420b444: 0c 00 00 00 00 00 61 70 70 73 2f 77 68 6f 69 73 ......apps/whois 1420b454: 2e 63 00 14 0a 00 00 30 30 58 2a fc 18 0d 98 08 .c.....00X*ü.... 1420b464: 01 00 00 ... 2 small blocks freed I got it for other objects too. At one time I could reproduce it by just destroying an object that was loaded in the epilog, but that has gone after I restarted the driver. (But I got it also for objects which were not loaded by the master object.) | ||||
Additional Information | The first block is the management structure of the program name, the second the actual program name. The problem was found by Gnomi and Menaures with the crasher program. | ||||
Tags | No tags attached. | ||||
related to | 0000343 | closed | Garbage collection leaks object name |
|
I have to disappoint you, but this isn't related to 0000343 as I thought earlier. This leak is still there in 3.3.659: 2005.01.17 12:57:27 --- Garbage Collection --- clearing M_REF in chunk 10280180, end 1428018c clearing M_REF in chunk 08234000, end 0824000c scanning chunk 10280180, end 1428018c for unref'd blocks freeing small block 0x13528c38 (user 0x13528c40) prolang.y 16333 By object: secure/master By program: secure/master.c (/secure/master/preload.inc) line:44 13528c54: 15 00 00 00 00 00 72 6f 6f 6d 2f 72 61 74 68 61 ......room/ratha 13528c64: 75 73 2f 67 69 6c 64 65 6e 2e 63 00 38 8c 52 13 us/gilden.c.8.R. 13528c74: 0f 00 00 30 08 3c 09 71 f0 dd ff bf 00 00 00 ...0.<.qðÝÿ¿... freeing small block 0x1353cb34 (user 0x1353cb3c) prolang.y 16333 By object: secure/master By program: secure/master.c (/secure/master/preload.inc) line:44 1353cb50: 00 00 00 00 92 04 00 00 54 8c 52 13 0a 00 00 30 ........T.R....0 1353cb60: 30 58 2a fc f0 dd ff bf 00 00 00 0X*üðÝÿ¿... scanning chunk 08234000, end 0824000c for unref'd blocks 2 small blocks freed 2005.01.17 12:57:29 GC freed 0 destructed objects. Greetings, Gnomi |
|
'Related to' in this case means that this problem might have a cause similar to 0000343. ...and indeed (I just tested it): using the same test code as for 0000343 and just replacing clone_object() with load_object(): object dest = load_object("/a"); mixed * x = ({ dest, 0 }); x[1] = x; destruct(dest) followed by two GCs produces exactly this GC log. |
|
Like in Bug 0000343, the program's name's references weren't cleared if the only reference left was from a destructed object. Fixed in 3.3.660 . |
Date Modified | Username | Field | Change |
---|---|---|---|
2004-07-21 22:49 |
|
New Issue | |
2005-01-15 01:29 |
|
Relationship added | related to 0000343 |
2005-01-17 07:50 | Gnomi | Note Added: 0000305 | |
2005-01-17 15:10 |
|
Note Added: 0000306 | |
2005-01-17 16:32 |
|
Status | new => resolved |
2005-01-17 16:32 |
|
Fixed in Version | => 3.3 |
2005-01-17 16:32 |
|
Resolution | open => fixed |
2005-01-17 16:32 |
|
Assigned To | => lars |
2005-01-17 16:32 |
|
Note Added: 0000308 | |
2005-05-15 13:02 |
|
Status | resolved => closed |