Re: Yet another DOD bug

2004-01-06 Thread Leopold Toetsch
Dan Sugalski [EMAIL PROTECTED] wrote:
 Looks like we've a bug in the DOD tracing. As far as I can tell (and
 it's somewhat tough, as my program's rather large) there's a bug
 where metadata on loadlib-loaded libraries doesn't get properly
 marked as live.

Yep. Good catch. The library PMC was constructed as a ConstParrotLibrary
PMC (which means that its not marked during trace_system_areas) *but*
its contents, mainly the meta_data wasn't constant.

OTOH if the lib PMC was in the root set, it should have been marked (and
the meta_data) so I'm not sure if I did fully catch the bug.

 I don't know if this affects all property hashes, or only those on
 loaded libraries.

The property hash is marked in trace_children().

leo


Yet another DOD bug

2004-01-05 Thread Dan Sugalski
Looks like we've a bug in the DOD tracing. As far as I can tell (and 
it's somewhat tough, as my program's rather large) there's a bug 
where metadata on loadlib-loaded libraries doesn't get properly 
marked as live.

The symptoms are straightforward -- the getprop call inside dynext.c 
during library loading fails with a get_pmc_keyed() not implemented 
in class NCI message. Littering the source with debugging messages, 
the property PMC on the entries in the library hash changes type. 
Throwing a sweepoff/sweepon pair around the library loading code 
makes the problem go away, so it seems like the PMC is getting 
collected and reused.

I don't have a test case at the moment, though I'll try and work one 
up. (I'm running on 2 hours sleep and far too much caffeine, so I'm 
not at my best. Sorry)

I don't know if this affects all property hashes, or only those on 
loaded libraries.
--
Dan

--it's like this---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk