[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 L
From: |
Taylor Venable |
Subject: |
Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux |
Date: |
Mon, 16 Mar 2009 09:32:26 -0400 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
On Sun, Mar 15, 2009 at 12:31:21PM +0100, felix winkelmann wrote:
> On Wed, Mar 11, 2009 at 7:25 PM, Taylor Venable <address@hidden> wrote:
> >
> > Well I was able to trigger a hang in my build with the debugging
> > symbols by setting the nursery stack size to 10k. ?Debug log from GDB
> > is attached. ?The three entries here were taken from allowing the
> > program to run for varying periods of time. ?The behaviour I got
> > spiked the CPU but the memory usage did not increase visibly. ?Hope
> > this sheds a little more light; if not let me know and I can go back
> > at it. ?(I notice here that the proc parameter to C_reclaim is the
> > null pointer, don't know if that's meaningful or not...)
>
> The proc being 0 is ok. Apparently the GC looping: it might be that
> some sort of stack-limit check is constantly failing which results in
> one GC after the other. It would be cool, if you could step out of
> the GC (reclaim) and follow the execution - does it trigger a new
> GC right away?
My testing has all been done using Chicken 3.4.7 so line numbers
reference source code from that devel release.
Usually when it hangs, I end up sending it ^C when it's inside mark().
So if I step out to C_reclaim() I can step through from line 2802 (or
sometimes 2805; in runtime.c) to line 3016. This I do in GDB using
the "next" command. When I hit line 3016 which is
C_longjmp(C_restart, 1);
the program hangs again. If I send it ^C again I'm back in that same
region of code again inside C_reclaim. This happens infinitely, as
far as I can tell.
And tracing a bit further, it looks like C_library_toplevel() is
continuously calling C_reclaim(). The code that looks like (library.c
line 6616):
if(!C_demand(931)){
C_save(t1);
C_reclaim((void*)toplevel_trampoline,NULL);}
keeps getting run; this is what's calling the C_reclaim() over and
over again. In fact, it seems that execution never makes it out of
this loop; just these three lines ad infinitum.
I found that the result of C_demand is based on C_stack_pointer and
C_stack_limit. I was unable to determine the former using GDB, but in
this case C_stack_limit is always 0x7FFF83326C30.
Hope this helps. I've put my library.c on my website, since it seems
to be generated code: http://real.metasyntax.net:2357/tmp/library.c.gz
--
Taylor Christopher Venable
http://real.metasyntax.net:2357/
- [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/04
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, felix winkelmann, 2009/03/06
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/06
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, felix winkelmann, 2009/03/07
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/09
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, felix winkelmann, 2009/03/10
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/11
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, felix winkelmann, 2009/03/15
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux,
Taylor Venable <=
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, felix winkelmann, 2009/03/16
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/16
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/17
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, felix winkelmann, 2009/03/18
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/18
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, felix winkelmann, 2009/03/20
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Ivan Raikov, 2009/03/22
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Taylor Venable, 2009/03/23
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, felix winkelmann, 2009/03/23
- Re: [Chicken-users] Build Failure (maybe infinite recursion) on x86_64 Linux, Alex Shinn, 2009/03/24