GNU bug report logs - #10336
Holidays vs. release

Previous Next

Package: guile;

Reported by: <dsmich <at> roadrunner.com>

Date: Wed, 21 Dec 2011 05:37:02 UTC

Severity: normal

Done: Andy Wingo <wingo <at> pobox.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 10336 in the body.
You can then email your comments to 10336 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guile <at> gnu.org:
bug#10336; Package guile. (Wed, 21 Dec 2011 05:37:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to <dsmich <at> roadrunner.com>:
New bug report received and forwarded. Copy sent to bug-guile <at> gnu.org. (Wed, 21 Dec 2011 05:37:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: <dsmich <at> roadrunner.com>
To: guile-devel <at> gnu.org, Ludovic Courtès <ludo <at> gnu.org>, 
	dsmich <at> roadrunner.com, bug-guile <at> gnu.org
Subject: Re: Holidays vs. release
Date: Tue, 20 Dec 2011 19:59:34 -0500
---- dsmich <at> roadrunner.com wrote: 
> 
> ---- "Ludovic Courtès" <ludo <at> gnu.org> wrote: 
> > Hello Guilers!
> > 
> > I initially thought it would be great to push a 2.0.4 tarball by the end
> > of the year, but since I’ll be on holidays starting from tomorrow until
> > Jan. 3rd, I won’t be able to make it.  Sorry about that!
> 
> I'm still getting that one failure in make check.  Something about gc a lexicals?  (Sorry I'm not at that machine.)  Probably would be a good idea to tune that up before release anyway.
> 
> I'll post details when I can.

I'm on a 32bit Debian intel system.  libgc is 7.2alpha4

git describe is
v2.0.3-82-ga2c6601

The single failure running make check is

Running gc.test
FAIL: gc.test: gc: Lexical vars are collectable


-Dale





Information forwarded to bug-guile <at> gnu.org:
bug#10336; Package guile. (Thu, 05 Jan 2012 00:02:02 GMT) Full text and rfc822 format available.

Message #8 received at 10336 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: <dsmich <at> roadrunner.com>
Cc: Andy Wingo <wingo <at> pobox.com>, 10336 <at> debbugs.gnu.org
Subject: Re: Holidays vs. release
Date: Thu, 05 Jan 2012 00:57:41 +0100
<dsmich <at> roadrunner.com> skribis:

> I'm on a 32bit Debian intel system.  libgc is 7.2alpha4
>
> git describe is
> v2.0.3-82-ga2c6601
>
> The single failure running make check is
>
> Running gc.test
> FAIL: gc.test: gc: Lexical vars are collectable

Same problem on Hydra, but only i686, not x86_64.

Andy: is it on purpose that this test doesn’t have a call to
‘stack-cleanup’ like those above?  Should we add one?

Ludo’.




Information forwarded to bug-guile <at> gnu.org:
bug#10336; Package guile. (Wed, 25 Jan 2012 16:12:02 GMT) Full text and rfc822 format available.

Message #11 received at 10336 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: <dsmich <at> roadrunner.com>
Cc: Andy Wingo <wingo <at> pobox.com>, 10336 <at> debbugs.gnu.org
Subject: Re: bug#10336: Holidays vs. release
Date: Wed, 25 Jan 2012 17:10:41 +0100
Hello!

ludo <at> gnu.org (Ludovic Courtès) skribis:

> <dsmich <at> roadrunner.com> skribis:
>
>> I'm on a 32bit Debian intel system.  libgc is 7.2alpha4
>>
>> git describe is
>> v2.0.3-82-ga2c6601
>>
>> The single failure running make check is
>>
>> Running gc.test
>> FAIL: gc.test: gc: Lexical vars are collectable
>
> Same problem on Hydra, but only i686, not x86_64.

So I looked into it, and there’s at least one thing wrong: the test must
be compiled with #:partial-eval? #f, otherwise the ‘let’ vanishes, which
defeats the test.

Second thing, it suffices to insert a function call like
((lambda (x) #f) #f) just before calls to ‘gc’ to solve the problem.

So I’m thinking we may have a real bug here.

I’ve changed the test this way:

  (pass-if "Lexical vars are collectable"
    (pair?
     (compile
      '(begin
         (define guardian (make-guardian))
         (let ((f (list 1 2 3)))
            (guardian f))

         ;; Note: no `stack-cleanup' call should be needed here since
         ;; leaving `let' should have the same effect.

         ;((lambda (x) x) #f)
         (gc)(gc)(gc)
         (guardian))

      ;; Turn the partial evaluator off so that `let' is preserved.
      #:opts '(#:partial-eval? #f)
      #:env (current-module))))

The assembly code does seem to push ‘void’ in all cases, though, but
this needs to be double-checked.

Thanks,
Ludo’.




Information forwarded to bug-guile <at> gnu.org:
bug#10336; Package guile. (Wed, 25 Jan 2012 18:08:02 GMT) Full text and rfc822 format available.

Message #14 received at 10336 <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> pobox.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: dsmich <at> roadrunner.com, 10336 <at> debbugs.gnu.org
Subject: Re: bug#10336: Holidays vs. release
Date: Wed, 25 Jan 2012 19:07:03 +0100
Hi Ludovic,

I pushed a couple patches that should help this bug out, though for some
reason I wasn't able to reproduce the issue before.  I wonder why.

On Wed 25 Jan 2012 17:10, ludo <at> gnu.org (Ludovic Courtès) writes:

> So I looked into it, and there’s at least one thing wrong: the test must
> be compiled with #:partial-eval? #f, otherwise the ‘let’ vanishes, which
> defeats the test.

Indeed.  I think I fixed that now.

> Second thing, it suffices to insert a function call like
> ((lambda (x) #f) #f) just before calls to ‘gc’ to solve the problem.

Strange.  Another thing was that the function was a constant, not a
closure, so it wasn't going to be collectable in the first place.

Can you retry the test now, Dale?

Thanks,

Andy
-- 
http://wingolog.org/




Information forwarded to bug-guile <at> gnu.org:
bug#10336; Package guile. (Wed, 25 Jan 2012 20:36:01 GMT) Full text and rfc822 format available.

Message #17 received at 10336 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: <dsmich <at> roadrunner.com>
Cc: Andy Wingo <wingo <at> pobox.com>, 10336 <at> debbugs.gnu.org
Subject: Re: bug#10336: Holidays vs. release
Date: Wed, 25 Jan 2012 21:34:45 +0100
Hello,

Andy Wingo <wingo <at> pobox.com> skribis:

> I pushed a couple patches that should help this bug out,

As I wrote, it doesn’t solve the problem.  :-/

However, I suspect it’s just one or two words on the stack that fail to
be cleared, which is why I ended up looking at the assembly in search of
a real bug.

> Can you retry the test now, Dale?

It’s retried at every commit.  ;-)

  http://hydra.nixos.org/jobset/gnu/guile-2-0/

(It’s on i686-linux-gnu.)

Ludo’.




Information forwarded to bug-guile <at> gnu.org:
bug#10336; Package guile. (Wed, 25 Jan 2012 23:07:01 GMT) Full text and rfc822 format available.

Message #20 received at 10336 <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> pobox.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: dsmich <at> roadrunner.com, 10336 <at> debbugs.gnu.org
Subject: Re: bug#10336: Holidays vs. release
Date: Thu, 26 Jan 2012 00:05:30 +0100
Hi,

On Wed 25 Jan 2012 21:34, ludo <at> gnu.org (Ludovic Courtès) writes:

> Andy Wingo <wingo <at> pobox.com> skribis:
>
>> I pushed a couple patches that should help this bug out,
>
> As I wrote, it doesn’t solve the problem.  :-/

Ah sorry, I misunderstood.

> I suspect it’s just one or two words on the stack that fail to be
> cleared, which is why I ended up looking at the assembly in search of
> a real bug.

Interesting.  That would explain why it would be architecture-specific,
as well.

Thanks for the patience :)

Andy
-- 
http://wingolog.org/




Information forwarded to bug-guile <at> gnu.org:
bug#10336; Package guile. (Thu, 26 Jan 2012 04:42:02 GMT) Full text and rfc822 format available.

Message #23 received at 10336 <at> debbugs.gnu.org (full text, mbox):

From: <dsmich <at> roadrunner.com>
To: Ludovic Courtès <ludo <at> gnu.org>, 
	Andy Wingo <wingo <at> pobox.com>
Cc: 10336 <at> debbugs.gnu.org
Subject: Re: bug#10336: Holidays vs. release
Date: Wed, 25 Jan 2012 23:40:18 -0500
---- Andy Wingo <wingo <at> pobox.com> wrote: 
> Hi Ludovic,
> 
> I pushed a couple patches that should help this bug out, though for some
> reason I wasn't able to reproduce the issue before.  I wonder why.
> 
> On Wed 25 Jan 2012 17:10, ludo <at> gnu.org (Ludovic Courtès) writes:
> 
> > So I looked into it, and there’s at least one thing wrong: the test must
> > be compiled with #:partial-eval? #f, otherwise the ‘let’ vanishes, which
> > defeats the test.
> 
> Indeed.  I think I fixed that now.
> 
> > Second thing, it suffices to insert a function call like
> > ((lambda (x) #f) #f) just before calls to ‘gc’ to solve the problem.
> 
> Strange.  Another thing was that the function was a constant, not a
> closure, so it wasn't going to be collectable in the first place.
> 
> Can you retry the test now, Dale?

Sure.  v2.0.3-190-gf5e772b still has the same failure.

-Dale





Information forwarded to bug-guile <at> gnu.org:
bug#10336; Package guile. (Fri, 27 Jan 2012 18:37:01 GMT) Full text and rfc822 format available.

Message #26 received at 10336 <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> pobox.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: dsmich <at> roadrunner.com, 10336 <at> debbugs.gnu.org
Subject: Re: bug#10336: lexical vars are collectable test is failing
Date: Fri, 27 Jan 2012 19:36:12 +0100
retitle 10366 lexical vars are collectable test is failing

On Wed 25 Jan 2012 17:10, ludo <at> gnu.org (Ludovic Courtès) writes:

> Second thing, it suffices to insert a function call like
> ((lambda (x) #f) #f) just before calls to ‘gc’ to solve the problem.
>
> So I’m thinking we may have a real bug here.

I pushed an experimental patch that attempts to NULL out variables that
are local to the VM.  Let's see what hydra does with it.

Andy
-- 
http://wingolog.org/




Reply sent to Andy Wingo <wingo <at> pobox.com>:
You have taken responsibility. (Wed, 01 Feb 2012 23:17:02 GMT) Full text and rfc822 format available.

Notification sent to <dsmich <at> roadrunner.com>:
bug acknowledged by developer. (Wed, 01 Feb 2012 23:17:02 GMT) Full text and rfc822 format available.

Message #31 received at 10336-done <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> pobox.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 10336-done <at> debbugs.gnu.org
Subject: Re: bug#10336: lexical vars are collectable test is failing
Date: Thu, 02 Feb 2012 00:16:04 +0100
On Fri 27 Jan 2012 19:36, Andy Wingo <wingo <at> pobox.com> writes:

> On Wed 25 Jan 2012 17:10, ludo <at> gnu.org (Ludovic Courtès) writes:
>
>> Second thing, it suffices to insert a function call like
>> ((lambda (x) #f) #f) just before calls to ‘gc’ to solve the problem.
>>
>> So I’m thinking we may have a real bug here.
>
> I pushed an experimental patch that attempts to NULL out variables that
> are local to the VM.  Let's see what hydra does with it.

In the end that failed.  I pushed a different patch that tried to NULL
out recursively called C stack frames.  Perhaps it worked?  As tests are
passing, I will close this one for now.  It's possible that simply
recursing through the VM wouldn't work well, as there might be stack
slots in vm_engine that don't get set in all code paths.  If we see
errors in the future, let's just mark those as flaky and move on.  Let's
also try to reduce the number of UNRESOLVED results in general, so that
these hacks will be more visible.

Regards,

Andy
-- 
http://wingolog.org/




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 01 Mar 2012 12:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 13 years and 116 days ago.

Previous Next


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