[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Serious GC bug in GUILE 1.6 CVS
From: |
Han-Wen Nienhuys |
Subject: |
Re: Serious GC bug in GUILE 1.6 CVS |
Date: |
Thu, 9 Sep 2004 01:15:43 +0200 |
address@hidden writes:
> Han-Wen Nienhuys <address@hidden> writes:
>
> > Compile GUILE with
> >
> > #define SCM_DEBUG_CELL_ACCESSES 1
> >
> > in config.h. Then apply this patch
> >
> > + (set-debug-cell-accesses! 5000)
> >
> > then compilation bombs out with:
>
> I have found the bug. init_heap_seg was using SCM_SET_CELL_TYPE to
> initialize fresh memory to 'free cells', but with DEBUG_CELL_ACCESSES,
> SCM_SET_CELL_TYPE could run a GC, which might see the half initialized
> heap segment during conservative scanning and would access
> uninitialozed memory which caused it to fail.
>
> I have fixed this by using the new macro SCM_SET_FREE_CELL_TYPE, which
> does no checking.
Hmm... That's unfortunate. We have reports of GC flakiness with 1.6
on Cygwin. This means that there's still another bug lurking.
--
Han-Wen Nienhuys | address@hidden | http://www.xs4all.nl/~hanwen