Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Intermittent failure when running t/spec/S04-exceptions/fail.t #2623

Closed
dogbert17 opened this Issue Jan 18, 2019 · 4 comments

Comments

Projects
None yet
3 participants
@dogbert17
Copy link
Contributor

dogbert17 commented Jan 18, 2019

The Problem

MasterDuke++ for finding this

Sometimes when running the above test the following error crops up

dogbert@dogbert-VirtualBox ~/repos/rakudo $ ./perl6 --ll-exception t/spec/S04-exceptions/fail.t
WARNINGS for /home/dogbert/repos/rakudo/t/spec/S04-exceptions/fail.t:
Useless use of constant integer 1 in sink context (line 83)
Useless use of "so " in expression "so my $f = failer" in sink context (line 172)
1..38
ok 1 - Default message for Failure is "Failed" without $!
ok 2 - fail() doesn't cause our sub to not get executed
ok 3 - fail() causes our sub to return (1)
...
ok 35 - Failure.self
ok 36 - Failure.new(Exception.new) does not segfault
No such method 'message' for invocant of type 'AnEx'
   at SETTING::src/core/Exception.pm6:62  (./CORE.setting.moarvm:throw)
 from SETTING::src/core/Exception.pm6:2770  (./CORE.setting.moarvm:)
 from gen/moar/BOOTSTRAP.nqp:3707  (./blib/Perl6/BOOTSTRAP.moarvm:)
 from SETTING::src/core/Failure.pm6:93  (./CORE.setting.moarvm:mess)
 from SETTING::src/core/Failure.pm6:34  (./CORE.setting.moarvm:DESTROY)
 from gen/moar/BOOTSTRAP.nqp:3729  (./blib/Perl6/BOOTSTRAP.moarvm:)
 from SETTING::src/core/Seq.pm6:11  (./CORE.setting.moarvm:new)
 from SETTING::src/core/Iterable.pm6:79  (./CORE.setting.moarvm:flat)
 from SETTING::src/core/Mu.pm6:645  (./CORE.setting.moarvm:)
 from SETTING::src/core/Mu.pm6:618  (./CORE.setting.moarvm:)
 from SETTING::src/core/Mu.pm6:612  (./CORE.setting.moarvm:)
 from SETTING::src/core/Mu.pm6:609  (./CORE.setting.moarvm:perlseen)
 from SETTING::src/core/Mu.pm6:643  (./CORE.setting.moarvm:perl)
 from SETTING::src/core/Mu.pm6:634  (./CORE.setting.moarvm:perl)
 from SETTING::src/core/Mu.pm6:647  (./CORE.setting.moarvm:)
 from SETTING::src/core/Mu.pm6:645  (./CORE.setting.moarvm:)
 from SETTING::src/core/Mu.pm6:618  (./CORE.setting.moarvm:)
 from SETTING::src/core/Mu.pm6:612  (./CORE.setting.moarvm:)
 from SETTING::src/core/Mu.pm6:609  (./CORE.setting.moarvm:perlseen)
 from SETTING::src/core/Mu.pm6:630  (./CORE.setting.moarvm:)
 from SETTING::src/core/Mu.pm6:609  (./CORE.setting.moarvm:perlseen)
 from SETTING::src/core/Mu.pm6:643  (./CORE.setting.moarvm:perl)
 from SETTING::src/core/Mu.pm6:634  (./CORE.setting.moarvm:perl)
 from SETTING::src/core/Failure.pm6:88  (./CORE.setting.moarvm:perl)
 from SETTING::src/core/Mu.pm6:634  (./CORE.setting.moarvm:perl)
 from t/spec/S04-exceptions/fail.t:184  (<ephemeral file>:)
 from t/spec/S04-exceptions/fail.t:183  (<ephemeral file>:)
 from t/spec/S04-exceptions/fail.t:182  (<ephemeral file>:<unit>)
 from t/spec/S04-exceptions/fail.t:1  (<ephemeral file>:<unit-outer>)
 from gen/moar/stage2/NQPHLL.nqp:1685  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:eval)
 from gen/moar/stage2/NQPHLL.nqp:1928  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:evalfiles)
 from gen/moar/stage2/NQPHLL.nqp:1851  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:command_eval)
 from src/Perl6/Compiler.nqp:48  (blib/Perl6/Compiler.moarvm:command_eval)
 from gen/moar/stage2/NQPHLL.nqp:1777  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:command_line)
 from gen/moar/main.nqp:54  (/home/dogbert/repos/rakudo/perl6.moarvm:MAIN)
 from gen/moar/main.nqp:42  (/home/dogbert/repos/rakudo/perl6.moarvm:<mainline>)
 from <unknown>:1  (/home/dogbert/repos/rakudo/perl6.moarvm:<main>)
 from <unknown>:1  (/home/dogbert/repos/rakudo/perl6.moarvm:<entry>)

Expected Behavior

No test failure

Actual Behavior

See above

Steps to Reproduce

See above

Environment

dogbert@dogbert-VirtualBox ~/repos/rakudo $ ./perl6 -v
This is Rakudo version 2018.12-238-g99d30be built on MoarVM version 2018.12-35-gc001ce2
implementing Perl 6.d.

@AlexDaniel AlexDaniel added the BLOCKER label Jan 18, 2019

@AlexDaniel

This comment has been minimized.

Copy link
Member

AlexDaniel commented Jan 21, 2019

Looking at zofflops, I can't see it there, which suggests that maybe this issue appeared recently. Perhaps bisecting it can give some useful info?

@dogbert17

This comment has been minimized.

Copy link
Contributor Author

dogbert17 commented Jan 21, 2019

A manual bisect points to 053f929

@jnthn

This comment has been minimized.

Copy link
Member

jnthn commented Jan 25, 2019

The bottom part of the stack trace changes from time to time, but:

No such method 'message' for invocant of type 'AnEx'
   at SETTING::src/core/Exception.pm6:62  (./CORE.setting.moarvm:throw)
 from SETTING::src/core/Exception.pm6:2770  (./CORE.setting.moarvm:)
 from gen/moar/BOOTSTRAP.nqp:3707  (./blib/Perl6/BOOTSTRAP.moarvm:)
 from SETTING::src/core/Failure.pm6:93  (./CORE.setting.moarvm:mess)
 from SETTING::src/core/Failure.pm6:34  (./CORE.setting.moarvm:DESTROY)

Is common. Note the DESTROY. One consequence of the change the bissect points to is that object lifetimes can be shortened, since variables that are not closed over are not referenced by closures. So I suspect that a Failure is getting destroyed earlier than it once was, and then something (which I'll now look in to) goes wrong with reporting it.

@jnthn jnthn closed this in d499bd4 Jan 25, 2019

@jnthn

This comment has been minimized.

Copy link
Member

jnthn commented Jan 25, 2019

Since this already showed up in a test sometimes failing, I'll take it as covered.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.