GNU bug report logs - #2403
23.0.90; emacs bootstrap under AIX hangs at lisp/international/characters.el

Previous Next

Package: emacs;

Reported by: Ulrich Mueller <ulm <at> gentoo.org>

Date: Fri, 20 Feb 2009 05:05:05 UTC

Severity: normal

Tags: patch

Done: Ulrich Mueller <ulm <at> gentoo.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Harald Maier <harald <at> maierh.de>
Cc: 2403 <at> debbugs.gnu.org
Subject: bug#2403: 23.0.90; emacs bootstrap under AIX hangs at lisp/international/characters.el
Date: Thu, 26 Feb 2009 15:47:41 -0500
> I digged a little bit deeper to this problem. temacs is in an endless
> loop in the following for loop in the alloca.c file:

> --- alloca.c:5101 ---
> #if (GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS \
>      || GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS)
>   mark_stack ();
> #else
>   {
>     register struct gcpro *tail;
> =>  for (tail = gcprolist; tail; tail = tail->next)
>       for (i = 0; i < tail->nvars; i++)
>         mark_object (tail->var[i]);
>   }
> #endif
> ---------------------
> If I examine the values in gdb then I see that the second element of
> gcprolist points to itself in the next element. That's why emacs loops.

> Any idea how to fix that?

No idea.  This should never happen, obviously.  The gcprolist (and its
elements) should only ever be touched by the macros GCPRO<n> and
UNGCPRO, so the only thing that comes to mind is that someone does
GCPRO1 twice in the same block.
You may want to add some

   eassert(gcprolist != &gcpro<n>);

to the GCPRO macros which may catch the bug.  Alternatively, if you look
at the backtrace, the problematic uses of GCPRO<n> should be nearby.

Of course, maybe the problem really is one of the stack being clobbered.


        Stefan




This bug report was last modified 16 years and 82 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.