Re[2]: [Gc] Segfault for certain sizes of GC_Thread_Rep
Ivan Maidanski
ivmai at mail.ru
Mon Sep 19 01:11:48 PDT 2011
Hi Petter,
Ok. (Probably, can't help you with it these days.)
Later, please send me merge request to add this test to gc.
Regards.
19 09 2011, 11:01 Petter Urkedal <urkedal at nbi.dk>:
> On 2011-09-19, Ivan Maidanski wrote:
> > Hi Petter,
> >
> > According to the backtrace, GC_lookup_thread can't find the thread descriptor. Please try to find out who alter the corresponding GC_threads element.
>
> Hi Ivan,
>
> Thanks for the response. I had a closer look at this yesterday,
> enabling the THERAD_DEBUG messages, and adding some more. I also wrote
> a test which exposes the issue without modification to the GC code:
> https://github.com/paurkedal/bdwgc/blob/t/thread_create_bug/tests/subthread_create.c
> This also should the issue is independent of pthread key destructors.
>
> Looking at the thread ID that gets mapped to NULL, it appear neither
> GC_delete_thread nor GC_delete_gc_thread is called on it, and in some
> cases the pointer is invalid rather than NULL. With the above test
> case, it appears that the issue has to do with nested thread creation,
> since if the thread creation depth is 0 or the origin thread joins the
> subthread before exiting (with DECAY_NUMER/DECAY_DENOM < 1!), then I
> can't reproduce the issue. Maybe it has to do with resources used by
> the subthread which gets cleaned up too early. I can see a semaphores
> is used to prevent this, though.
>
> Petter
>
More information about the Gc
mailing list