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

spec test failures on rakudo 7517e39, parrot r48909 (using --gen-parrot) on 64bit linux #2154

Closed
p6rt opened this issue Sep 10, 2010 · 12 comments

Comments

@p6rt
Copy link

p6rt commented Sep 10, 2010

Migrated from rt.perl.org#77778 (status was 'resolved')

Searchable as RT77778$

@p6rt
Copy link
Author

p6rt commented Sep 10, 2010

From jaleto@gmail.com

Howdy,

I am seeing these spectest failures​:

Test Summary Report


t/spec/S05-modifier/ignorecase.rakudo (Wstat​:
256 Tests​: 0 Failed​: 0)
  Non-zero exit status​: 1
  Parse errors​: No plan found in TAP output
t/spec/S19-command-line/dash-e.t (Wstat​:
139 Tests​: 0 Failed​: 0)
  Non-zero wait status​: 139
  Parse errors​: No plan found in TAP output
Files=515, Tests=23596, 1157 wallclock secs ( 8.78 usr 1.81 sys +
1919.48 cusr 57.85 csys = 1987.92 CPU)
Result​: FAIL
(datura)(/git/rakudo master )$ ./perl6 -e 'say $*VM<config><revision>'
48909
(datura)(
/git/rakudo master )$ git rev-parse master
7517e39ef7fd59aa3f9a88475289e33726c0998a
(datura)(~/git/rakudo master )$ uname -a
Linux datura 2.6.32-24-generic #​42-Ubuntu SMP Fri Aug 20 14​:21​:58 UTC
2010 x86_64 GNU/Linux

(datura)(/git/rakudo master )$ ./perl6 t/spec/S05-modifier/ignorecase.t
===SORRY!===
Unable to parse postcircumfix​:sym<( )>, couldn't find final ')' at line 41
(datura)(
/git/rakudo master )$ ./perl6 t/spec/S05-modifier/ignorecase.rakudo
===SORRY!===
Unable to parse postcircumfix​:sym<( )>, couldn't find final ')' at line 41
(datura)(~/git/rakudo master )$ ./perl6 t/spec/S19-command-line/dash-e.t
Segmentation fault (core dumped)

Duke

--
Jonathan "Duke" Leto
jonathan@​leto.net
http://leto.net

@p6rt
Copy link
Author

p6rt commented Sep 10, 2010

From jonathan@leto.net

Backtrace​:

(gdb) bt
#​0 0x0000000000000000 in ?? ()
#​1 0x00007f505f349bab in runops_fast_core (interp=0x2df9010,
runcore_unused=<value optimized out>, pc=0x7f505c005fc0) at
src/runcore/cores.c​:514
#​2 0x00007f505f3496cd in runops_int (interp=0x2df9010, offset=<value
optimized out>) at src/runcore/main.c​:224
#​3 0x00007f505f32136e in runops (interp=<value optimized out>,
offs=<value optimized out>) at src/call/ops.c​:127
#​4 0x00007f505f31d5b1 in Parrot_pcc_invoke_from_sig_object
(interp=0x2df9010, sub_obj=<value optimized out>, call_object=<value
optimized out>)
  at src/call/pcc.c​:325
#​5 0x00007f505f312aad in Parrot_ext_call (interp=0x2df9010,
sub_pmc=0x33296d0, signature=<value optimized out>) at src/extend.c​:322
#​6 0x0000000000400eae in main (argc=2, argv=0x7fffa3857858) at
perl6.c​:948489

@p6rt
Copy link
Author

p6rt commented Sep 10, 2010

The RT System itself - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Sep 11, 2010

From @Util

On the parrot-dev mailing list, several posts were made under the
subject "Rakudo coredumps on a spectest on 64bit linux". Those emails
are not auto-included in the ticket, so I am adding them here manually,
as one entry per email.

@p6rt
Copy link
Author

p6rt commented Sep 11, 2010

From @Util

From​: jaleto@​gmail.com
Subject​: Rakudo coredumps on a spectest on 64bit linux
Date​: September 10, 2010 2​:17​:32 PM CDT

Howdy,

If anybody has any tuits about this​:

http://rt.perl.org/rt3/Ticket/Display.html?id=77778

it would be greatly appreciated.

Duke

@p6rt
Copy link
Author

p6rt commented Sep 11, 2010

From @Util

From​: chromatic@​wgz.org
Date​: September 10, 2010 4​:11​:09 PM CDT

A backtrace from a build with debugging symbols enabled would help. I use
these flags to configure Parrot​:

  perl Configure.pl --maintainer --optimize="-O3 -g"

... and my binaries include debugging symbols.

@p6rt
Copy link
Author

p6rt commented Sep 11, 2010

From @Util

From​: bruce.gray@​acm.org
Date​: September 10, 2010 5​:28​:16 PM CDT

Progress so far​:

When built on Ubuntu Lucid x86_64 with ICU packages installed
(libicu-dev libicu42), ignorecase.rakudo and dash-e.t run correctly.

After removing the two ICU packages, the two tests fail exactly as you
described.

@p6rt
Copy link
Author

p6rt commented Sep 11, 2010

From @Util

From​: bruce.gray@​acm.org
Date​: September 10, 2010 8​:41​:31 PM CDT

1) ignorecase.t - reduced to bare bones.
On a 64-bit system that lacks ICU;
Running this code​:
  use v6;
  $_ = 'a';
  #m​:i/δ/;
  m​:i/ß/;
gives this (appropriate) error​:
  ===SORRY!===
  no ICU lib loaded
Uncommenting line 3 changes the error to​:
  ===SORRY!===
  Confused at line 3, near "m​:i/\u03b4/;\nm​:"

I do not know why the two lines produce different errors, but I suspect
it is a bug.

2) dash-e.t - reduced a single line.
On a 64-bit system that lacks ICU;
  my $c = "\c[LATIN SMALL LETTER A WITH DOT ABOVE]";
This produces the same error (segfault) as the whole dash-e.t file.
When I run it this way​:
  parrot_install/bin/parrot perl6.pbc d1.p6
I get​:
  ===SORRY!===
  attempt to access code outside of current code segment

I do not have a 32-bit system that lacks ICU,
but when I ran both examples on 32-bit Darwin with Parrot configured
--without-icu,
I get the exact same results.
Therefore, I think you can move this from 64-bit issues, to no-ICU issues.
Perhaps this will allow a larger pool of people to assist.

--
Hope this helps,
Bruce Gray (Util)

@p6rt
Copy link
Author

p6rt commented Sep 11, 2010

From @Util

From​: julian.notfound@​gmail.com
Date​: September 10, 2010 8​:46​:37 PM CDT

2) dash-e.t - reduced a single line.
On a 64-bit system that lacks ICU;
my $c = "\c[LATIN SMALL LETTER A WITH DOT ABOVE]";
This produces the same error (segfault) as the whole dash-e.t file.
When I run it this way​:
parrot_install/bin/parrot perl6.pbc d1.p6
I get​:
===SORRY!===
attempt to access code outside of current code segment

I do not have a 32-bit system that lacks ICU,
but when I ran both examples on 32-bit Darwin with Parrot configured
--without-icu,
I get the exact same results.

Looks like the classic problem of exception handling and throwing from
an inner runloop. Some exception handler needs a finalize opcode.

@p6rt
Copy link
Author

p6rt commented Sep 11, 2010

From @Util

From​: bruce.gray@​acm.org
Date​: September 10, 2010 9​:01​:53 PM CDT

On Sep 10, 2010, at 4​:11 PM, chromatic wrote​:

A backtrace from a build with debugging symbols enabled would help. I use
these flags to configure Parrot​:

 perl Configure\.pl \-\-maintainer \-\-optimize="\-O3 \-g"

... and my binaries include debugging symbols.

-- c

This is from a Parrot configured with --maintainer --optimize=-g.
d1.t contained one line​:
  my $c = "\c[LATIN SMALL LETTER A WITH DOT ABOVE]";
I do not know what would be helpful to show besides bt/up/l

ubuntu@​domU-12-31-39-14-F0-B4​:~/Rakudo4/rakudo$ gdb --quiet ./perl6
Reading symbols from /home/ubuntu/Rakudo4/rakudo/perl6...done.
(gdb) run d1.t
Starting program​: /home/ubuntu/Rakudo4/rakudo/perl6 d1.t
[Thread debugging using libthread_db enabled]

Program received signal SIGSEGV, Segmentation fault.
0x00000000023d84b0 in ?? ()
(gdb) bt
#​0 0x00000000023d84b0 in ?? ()
#​1 0x00007ffff7a2befd in runops_fast_core (interp=0x22f3010,
runcore_unused=0x23e6700, pc=0x7ffff46a2fc0)
  at src/runcore/cores.c​:514
#​2 0x00007ffff7a2b326 in runops_int (interp=0x22f3010, offset=324311)
at src/runcore/main.c​:224
#​3 0x00007ffff79ef429 in runops (interp=0x22f3010, offs=324311) at
src/call/ops.c​:127
#​4 0x00007ffff79ea136 in Parrot_pcc_invoke_from_sig_object
(interp=0x22f3010, sub_obj=0x2823670, call_object=0x5bdd1e0)
  at src/call/pcc.c​:325
#​5 0x00007ffff79da85a in Parrot_ext_call (interp=0x22f3010,
sub_pmc=0x2823670, signature=0x7ffff7b4348a "P->")
  at src/extend.c​:322
#​6 0x00007ffff79d7ab5 in Parrot_runcode (interp=0x22f3010, argc=2,
argv=0x7fffffffe6f8) at src/embed.c​:811
#​7 0x0000000000400ee5 in main (argc=2, argv=0x7fffffffe6f8) at
perl6.c​:947484
(gdb) l
947446 return program_code;
947447 }
947448 #define RUNCORE 1
947449 int main(int argc, const char *argv[])
947450 {
947451 PackFile *pf;
947452 Parrot_Interp interp;
947453 const unsigned char *program_code_addr;
947454
947455 program_code_addr = (const unsigned char
*)get_program_code();
(gdb) up
#​1 0x00007ffff7a2befd in runops_fast_core (interp=0x22f3010,
runcore_unused=0x23e6700, pc=0x7ffff46a2fc0)
  at src/runcore/cores.c​:514
514 DO_OP(pc, interp);
(gdb) l
509 * Fast-core cause segfaults even on test suite
510 if (pc < code_start || pc >= code_end)
511 Parrot_ex_throw_from_c_args(interp, NULL, 1,
512 "attempt to access code outside of current code
segment");
513 */
514 DO_OP(pc, interp);
515 }
516
517 return pc;
518 }
(gdb) up
#​2 0x00007ffff7a2b326 in runops_int (interp=0x22f3010, offset=324311)
at src/runcore/main.c​:224
224 (*core)(interp, interp->run_core, pc);
(gdb) l
219 const runcore_runops_fn_type core = interp->run_core->runops;
220
221 interp->resume_offset = 0;
222 interp->resume_flag &= ~(RESUME_RESTART | RESUME_INITIAL);
223
224 (*core)(interp, interp->run_core, pc);
225
226 /* if we have fallen out with resume and we were running
CGOTO, set
227 * the stacktop again to a sane value, so that restarting
the runloop
228 * is ok. */
(gdb) q

@p6rt
Copy link
Author

p6rt commented Jan 9, 2011

From @moritz

I'm curious, do you still see similar failures on newest Rakudo?

@p6rt p6rt closed this as completed Mar 31, 2012
@p6rt
Copy link
Author

p6rt commented Mar 31, 2012

@moritz - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant