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

Incrementing an untyped, undefined variable makes Rakudo dump core #569

Closed
p6rt opened this issue Jan 2, 2009 · 6 comments
Closed

Incrementing an untyped, undefined variable makes Rakudo dump core #569

p6rt opened this issue Jan 2, 2009 · 6 comments

Comments

@p6rt
Copy link

p6rt commented Jan 2, 2009

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

Searchable as RT61924$

@p6rt
Copy link
Author

p6rt commented Jan 2, 2009

From markus@mnslaker.f9.co.uk

Two things are unexpected here​: the fact that Rakudo thinks $x is
an instance of class Timer, and the corrupted double-linked list.

Please let me know if there's more I can do to help characterise the
bug, or if I can report it in some more useful form.

Best regards,

Markus

msl@​edward​:~/perl/6$ ~/bin/perl6 -e 'my Any $x; ++$x; $x.say'
1
msl@​edward​:~/perl/6$ ~/bin/perl6 -e 'my $x = 0; ++$x; $x.say'
1
msl@​edward​:~/perl/6$ ~/bin/perl6 -e 'my $x; ++$x; $x.say'
increment() not implemented in class 'Timer'
current instr.​: 'prefix​:++' pc 17895 (src/builtins/op.pir​:60)
called from Sub '_block14' pc 69 (EVAL_9​:43)
called from Sub 'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.pir​:508)
called from Sub 'parrot;PCT;HLLCompiler;command_line' pc 1436 (src/PCT/HLLCompiler.pir​:768)
called from Sub 'parrot;Perl6;Compiler;main' pc 19057 (perl6.pir​:162)
*** glibc detected *** /home/msl/bin/perl6​: corrupted double-linked list​: 0x08702000 ***
======= Backtrace​: =========
/lib/tls/i686/cmov/libc.so.6[0xb77e268e]
/lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb77e5e30]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(mem_sys_free+0x23)[0xb7b9d343]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7b9de3d]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bab23f]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_exit+0x70)[0xb7b933e0]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7b92d46]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_ex_throw_from_c+0x61)[0xb7b92db1]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7b92fb1]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7cf3e26]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_default_increment+0x23)[0xb7cf4a23]
[0xb7653801]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_inc_p+0x4b)[0xb7b3081b]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bdb535]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7badc09]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bae723]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bae95c]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_runops_fromc_args+0x43)[0xb7baf0b3]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_ex_throw_from_c+0x1cc)[0xb7b92f1c]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7b92fb1]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bceb1a]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7db0824]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_Class_init_pmc+0x21f)[0xb7db141f]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(pmc_new_init+0x107)[0xb7bda1b7]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_newclass_p_p+0x58)[0xb7b4c7f8]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bdb535]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7badc09]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bae723]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bae95c]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_runops_fromc_args+0x43)[0xb7baf0b3]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_ex_throw_from_c+0x1cc)[0xb7b92f1c]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7b92fb1]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bceb1a]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7db0824]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_Class_init_pmc+0x21f)[0xb7db141f]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(pmc_new_init+0x107)[0xb7bda1b7]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_newclass_p_p+0x58)[0xb7b4c7f8]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bdb535]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7badc09]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bae723]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bae95c]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_runops_fromc_args+0x43)[0xb7baf0b3]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_ex_throw_from_c+0x1cc)[0xb7b92f1c]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7b92fb1]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bceb1a]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7db0824]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_Class_init_pmc+0x21f)[0xb7db141f]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(pmc_new_init+0x107)[0xb7bda1b7]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_newclass_p_p+0x58)[0xb7b4c7f8]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bdb535]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7badc09]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bae723]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bae95c]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_runops_fromc_args+0x43)[0xb7baf0b3]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_ex_throw_from_c+0x1cc)[0xb7b92f1c]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7b92fb1]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bceb1a]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7db0824]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_Class_init_pmc+0x21f)[0xb7db141f]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(pmc_new_init+0x107)[0xb7bda1b7]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2(Parrot_newclass_p_p+0x58)[0xb7b4c7f8]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7bdb535]
/home/msl/parrot/blib/lib/libparrot.so.0.8.2[0xb7badc09]
======= Memory map​: ========
08048000-08263000 r-xp 00000000 08​:01 8586467 /home/msl/parrot/languages/perl6/perl6
08263000-08264000 rw-p 0021a000 08​:01 8586467 /home/msl/parrot/languages/perl6/perl6
08264000-0872c000 rw-p 08264000 00​:00 0 [heap]
b6511000-b6516000 r--s 00000000 08​:01 8539484 /home/msl/parrot/runtime/parrot/library/P6object.pbc
b6617000-b6644000 r--s 00000000 08​:01 8539304 /home/msl/parrot/runtime/parrot/library/PGE.pbc
b6644000-b6646000 r--s 00000000 08​:01 8539591 /home/msl/parrot/runtime/parrot/library/PCT/Grammar.pbc
b6646000-b6647000 r--s 00000000 08​:01 8539589 /home/msl/parrot/runtime/parrot/library/PCT.pbc
b7026000-b702b000 r--s 00000000 08​:01 8539478 /home/msl/parrot/runtime/parrot/library/Getopt/Obj.pbc
b702b000-b704e000 r--s 00000000 08​:01 8539590 /home/msl/parrot/runtime/parrot/library/PCT/PAST.pbc
b704e000-b7055000 r-xp 00000000 08​:01 8981757 /lib/tls/i686/cmov/librt-2.5.so
b7055000-b7057000 rw-p 00006000 08​:01 8981757 /lib/tls/i686/cmov/librt-2.5.so
b7600000-b7621000 rw-p b7600000 00​:00 0
b7621000-b7700000 ---p b7621000 00​:00 0
b7716000-b7721000 r-xp 00000000 08​:01 8978494 /lib/libgcc_s.so.1
b7721000-b7722000 rw-p 0000a000 08​:01 8978494 /lib/libgcc_s.so.1
b7736000-b7737000 rw-p b7736000 00​:00 0
b7737000-b7771000 r-xp 00000000 08​:01 8978504 /lib/libncurses.so.5.5
b7771000-b777a000 rw-p 00039000 08​:01 8978504 /lib/libncurses.so.5.5
b777a000-b777b000 rw-p b777a000 00​:00 0
b777b000-b78b6000 r-xp 00000000 08​:01 8981727 /lib/tls/i686/cmov/libc-2.5.so
b78b6000-b78b7000 r--p 0013b000 08​:01 8981727 /lib/tls/i686/cmov/libc-2.5.so
b78b7000-b78b9000 rw-p 0013c000 08​:01 8981727 /lib/tls/i686/cmov/libc-2.5.so
b78b9000-b78bc000 rw-p b78b9000 00​:00 0
b78bc000-b78e8000 r-xp 00000000 08​:01 8978542 /lib/libreadline.so.5.2
b78e8000-b78ec000 rw-p 0002c000 08​:01 8978542 /lib/libreadline.so.5.2
b78ec000-b78ed000 rw-p b78ec000 00​:00 0
b78ed000-b7931000 r-xp 00000000 08​:01 6883224 /usr/lib/libgmp.so.3.4.1
b7931000-b7932000 rw-p 00044000 08​:01 6883224 /usr/lib/libgmp.so.3.4.1
b7932000-b7937000 r-xp 00000000 08​:01 8981731 /lib/tls/i686/cmov/libcrypt-2.5.so
b7937000-b7939000 rw-p 00004000 08​:01 8981731 /lib/tls/i686/cmov/libcrypt-2.5.so
b7939000-b7960000 rw-p b7939000 00​:00 0
b7960000-b7973000 r-xp 00000000 08​:01 8981753 /lib/tls/i686/cmov/libpthread-2.5.so
b7973000-b7975000 rw-p 00013000 08​:01 8981753 /lib/tls/i686/cmov/libpthread-2.5.so
b7975000-b7977000 rw-p b7975000 00​:00 0
b7977000-b799c000 r-xp 00000000 08​:01 8981735 /lib/tls/i686/cmov/libm-2.5.so
b799c000-b799e000 rw-p 00024000 08​:01 8981735 /lib/tls/i686/cmov/libm-2.5.so
b799e000-b799f000 rw-p b799e000 00​:00 0
b799f000-b79a1000 r-xp 00000000 08​:01 8981733 /lib/tls/i686/cmov/libdl-2.5.so
b79a1000-b79a3000 rw-p 00001000 08​:01 8981733 /lib/tls/i686/cmov/libdl-2.5.so
b79a6000-b79a8000 r--s 00000000 08​:01 8539476 /home/msl/parrot/runtime/parrot/library/dumper.pbc
b79a8000-b79a9000 r--s 00000000 08​:01 8539488 /home/msl/parrot/runtime/parrot/library/Parrot/Exception.pbc
b79a9000-b79b1000 r--s 00000000 08​:01 8539592 /home/msl/parrot/runtime/parrot/library/PCT/HLLCompiler.pbc
b79b1000-b79b3000 r--s 00000000 08​:01 8539493 /home/msl/parrot/runtime/parrot/library/PGE/Util.pbc
b79b7000-b7f49000 r-xp 00000000 08​:01 8538694 /home/msl/parrot/blib/lib/libparrot.so.0.8.2
b7f49000-b7f93000 rw-p 00591000 08​:01 8538694 /home/msl/parrot/blib/lib/libparrot.so.0.8.2
b7f93000-b7f95000 rw-p b7f93000 00​:00 0
b7f95000-b7fae000 r-xp 00000000 08​:01 8978453 /lib/ld-2.5.so
b7fae000-b7fb0000 rw-p 00019000 08​:01 8978453 /lib/ld-2.5.so
bfeb4000-bfee5000 rw-p bfeb4000 00​:00 0 [stack]
ffffe000-fffff000 r-xp 00000000 00​:00 0 [vdso]
Aborted (core dumped)
msl@​edward​:~/perl/6$ uname -a
Linux edward 2.6.20-17-generic #​2 SMP Wed Aug 20 16​:47​:34 UTC 2008 i686 GNU/Linux
msl@​edward​:~/perl/6$ gcc --version
gcc (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu4)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

msl@​edward​:~/perl/6$

@p6rt
Copy link
Author

p6rt commented Jan 8, 2009

From mike@mikebaas.org

I just ran all three examples using Parrot 0.8.2
and did not experience this bug​:

my Any $x; ++$x; $x.say;
my $x = 0; ++$x; $x.say;
my $x; ++$x; $x.say;

Output​:
1
1
2

@p6rt
Copy link
Author

p6rt commented Jan 8, 2009

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

@p6rt
Copy link
Author

p6rt commented Jan 10, 2009

From markus@mnslaker.f9.co.uk

On Wed Jan 07 23​:25​:54 2009, initself wrote​:

I just ran all three examples using Parrot 0.8.2
and did not experience this bug​:

my Any $x; ++$x; $x.say;
my $x = 0; ++$x; $x.say;
my $x; ++$x; $x.say;

Output​:
1
1
2

Shouldn't that last command have printed 1, rather than 2?

In any case, with this morning's code, the problem seems to have been
solved​:

msl@​edward​:~/parrot/languages/perl6$ ~/bin/perl6 -v
This is Rakudo Perl 6, revision 35333 built on parrot 0.8.2-devel
for i486-linux-gnu-thread-multi.

Copyright 2006-2008, The Perl Foundation.

msl@​edward​:~/parrot/languages/perl6$ ~/bin/perl6 -e 'my $x; ++$x; $x.say'
1
msl@​edward​:~/parrot/languages/perl6$ ~/bin/perl6 -e 'my Int $x; ++$x;
$x.say'
1
msl@​edward​:~/parrot/languages/perl6$ ~/bin/perl6 -e 'my Any $x; ++$x;
$x.say'
1
msl@​edward​:~/parrot/languages/perl6$ ~/bin/perl6 -e 'my $x = 0; ++$x;
$x.say'
1
msl@​edward​:~/parrot/languages/perl6$

I think this bug is fixed. I'm not sure what the correct procedure is,
so I won't set the status to Resolved, but I'll be happy if someone else
does so.

@p6rt
Copy link
Author

p6rt commented Jan 11, 2009

From @pmichaud

Resolved.

Pm

@p6rt
Copy link
Author

p6rt commented Jan 11, 2009

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

@p6rt p6rt closed this as completed Jan 11, 2009
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