GC failure w/ THREAD_LOCAL_ALLOC ?

Michael Smith msmith@spinnakernet.com
Wed Mar 27 12:48:00 GMT 2002


Boehm, Hans wrote:
> Can you put a breakpoint in close() to verify that the descriptor is being
> closed by a finalizer?
>> If you can repeat this, and the GC is responsible, and you can figure out
> which object is getting collected, a good thing to do is to put a breakpoint
> in GC_finish_collection() during the offending GC, and then invoke
> GC_is_marked() on all objects in the reference chain from the debugger, with
> the process still stopped in GC_finish_collection. If you find a marked
> object pointing to an unmarked one, it would be good to know the results of 
>> print *GC_find_header(<last marked>)
>> If it's a gcj object, so would the mark descriptor.
>> I'm also suspicious that this is a completely separate problem, possibly
> outside the GC.

After a bit of investigation, I can confidently say that the GC is not 
collecting objects prematurely, causing my /dev/urandom file descriptor 
to get closed.
It turns out, I was hitting a double-close related to a failed Process 
exec, which had been fixed in CVS since I got my version. I've pulled 
down the patches to natPosixProcess.cc, applied them to my local tree 
and my file descriptors are no longer disappearing unexpectedly.
thanks,
michael


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /