Grupy dyskusyjne Google nie obsługują już nowych postów ani subskrypcji z Usenetu. Treści historyczne nadal będą dostępne.

[perl #40990] [BUG] Parrot segfaults in perl6 08-regex.t (GC/pointer bug?)

5 wyświetleń
Przejdź do pierwszej nieodczytanej wiadomości

Patrick R . Michaud

nieprzeczytany,
26 lis 2006, 11:23:4826.11.2006
do bugs-bi...@rt.perl.org
# New Ticket Created by Patrick R. Michaud
# Please include the string: [perl #40990]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=40990 >


---
osname= linux
osvers= 2.6.16
arch= x86_64-linux-thread-multi
cc= cc
---
Flags:
category=core
severity=high
ack=no
---
Here's another segfault arising in the parrot core as a result
of running perl6.pbc on a test file. This may or may not be
related to RT #40966; I'm entering it as a separate ticket
just in case the two are different.

As before, the test works when the -G flag is present, but
segfaults when it isn't. The problem appears in r15837:

1. build parrot
2. cd languages/perl6
3. make

The core dump appears when running t/00-parrot/08-regex.t:

$ ../../parrot perl6.pbc t/00-parrot/08-regex.t
Segmentation fault (core dumped)

It works fine if -G is present:

$ ../../parrot -G perl6.pbc t/00-parrot/08-regex.t
1..11
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11

The backtrace (complete copy below) shows a worrisome
"0x00000000deadbeef":

(gdb) backtrace
#0 0x00000000deadbeef in ?? ()
#1 0x00002ad8a1631762 in parrot_hash_put (interp=0x50c010,
hash=0x2aaaaadcfcb0, key=0x2aaaaad48f28, value=0x2aaaaadcfc10)
at src/hash.c:850
#2 0x00002ad8a1631af9 in parrot_hash_clone (interp=0x50c010, hash=0x754050,
dest=0x2aaaaadcfcd8) at src/hash.c:967
#3 0x00002ad8a16d56f1 in Parrot_Hash_clone (interp=0x50c010,
pmc=0x2aaaaadcfd78) at src/pmc/hash.pmc:205
#4 0x00002ad8a1561882 in Parrot_clone_p_p (cur_opcode=0x2aaaaacd0ab8,
interp=0x50c010) at src/ops/set.ops:524
#5 0x00002ad8a162b031 in runops_slow_core (interp=0x50c010, pc=0x2aaaaacd0ab8)
at src/runops_cores.c:184
#6 0x00002ad8a161314a in runops_int (interp=0x50c010, offset=137)
at src/interpreter.c:775
#7 0x00002ad8a1618a0e in runops (interp=0x50c010, offs=137)
at src/inter_run.c:87
#8 0x00002ad8a1618ca8 in runops_args (interp=0x50c010, sub=0x7e6c58,
obj=0x550350, meth=0x0, sig=0x2ad8a17481b2 "vP", ap=0x7fff097c0110)
at src/inter_run.c:193
#9 0x00002ad8a1618e9b in Parrot_runops_fromc_args (interp=0x50c010,
sub=0x7e6c58, sig=0x2ad8a17481b2 "vP") at src/inter_run.c:295
#10 0x00002ad8a16391d8 in Parrot_runcode (interp=0x50c010, argc=2,
argv=0x7fff097c0430) at src/embed.c:806
#11 0x00000000004035a6 in main (argc=2, argv=0x7fff097c0430)
at compilers/imcc/main.c:723

Thanks!

Pm


====complete transcript including backtrace====
$ ../../parrot perl6.pbc t/00-parrot/08-regex.t
Segmentation fault (core dumped)
$ ../../parrot -G perl6.pbc t/00-parrot/08-regex.t
1..11
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11
$ gdb ../../parrot core.15950
GNU gdb 6.4
Copyright 2005 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-suse-linux"...Using host libthread_db library "/lib64/libthread_db.so.1".

Core was generated by `../../parrot perl6.pbc t/00-parrot/08-regex.t'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /home/pmichaud/parrot/trunk/blib/lib/libparrot.so.0.4.7...done.
Loaded symbols for /home/pmichaud/parrot/trunk/blib/lib/libparrot.so.0.4.7
Reading symbols from /lib64/libdl.so.2...done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /lib64/libcrypt.so.1...done.
Loaded symbols for /lib64/libcrypt.so.1
Reading symbols from /lib64/libpthread.so.0...done.
Loaded symbols for /lib64/libpthread.so.0
Reading symbols from /lib64/librt.so.1...done.
Loaded symbols for /lib64/librt.so.1
Reading symbols from /lib64/libreadline.so.5...done.
Loaded symbols for /lib64/libreadline.so.5
Reading symbols from /lib64/libncurses.so.5...done.
Loaded symbols for /lib64/libncurses.so.5
Reading symbols from /usr/lib64/libstdc++.so.6...done.
Loaded symbols for /usr/lib64/libstdc++.so.6
Reading symbols from /lib64/libm.so.6...done.
Loaded symbols for /lib64/libm.so.6
Reading symbols from /lib64/libgcc_s.so.1...done.
Loaded symbols for /lib64/libgcc_s.so.1
Reading symbols from /lib64/libc.so.6...done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /home/pmichaud/parrot/trunk/runtime/parrot/dynext/perl6_group.so...done.
Loaded symbols for /home/pmichaud/parrot/trunk/runtime/parrot/dynext/perl6_group.so
#0 0x00000000deadbeef in ?? ()
(gdb) backtrace
#0 0x00000000deadbeef in ?? ()
#1 0x00002ad8a1631762 in parrot_hash_put (interp=0x50c010,
hash=0x2aaaaadcfcb0, key=0x2aaaaad48f28, value=0x2aaaaadcfc10)
at src/hash.c:850
#2 0x00002ad8a1631af9 in parrot_hash_clone (interp=0x50c010, hash=0x754050,
dest=0x2aaaaadcfcd8) at src/hash.c:967
#3 0x00002ad8a16d56f1 in Parrot_Hash_clone (interp=0x50c010,
pmc=0x2aaaaadcfd78) at src/pmc/hash.pmc:205
#4 0x00002ad8a1561882 in Parrot_clone_p_p (cur_opcode=0x2aaaaacd0ab8,
interp=0x50c010) at src/ops/set.ops:524
#5 0x00002ad8a162b031 in runops_slow_core (interp=0x50c010, pc=0x2aaaaacd0ab8)
at src/runops_cores.c:184
#6 0x00002ad8a161314a in runops_int (interp=0x50c010, offset=137)
at src/interpreter.c:775
#7 0x00002ad8a1618a0e in runops (interp=0x50c010, offs=137)
at src/inter_run.c:87
#8 0x00002ad8a1618ca8 in runops_args (interp=0x50c010, sub=0x7e6c58,
obj=0x550350, meth=0x0, sig=0x2ad8a17481b2 "vP", ap=0x7fff097c0110)
at src/inter_run.c:193
#9 0x00002ad8a1618e9b in Parrot_runops_fromc_args (interp=0x50c010,
sub=0x7e6c58, sig=0x2ad8a17481b2 "vP") at src/inter_run.c:295
#10 0x00002ad8a16391d8 in Parrot_runcode (interp=0x50c010, argc=2,
argv=0x7fff097c0430) at src/embed.c:806
#11 0x00000000004035a6 in main (argc=2, argv=0x7fff097c0430)
at compilers/imcc/main.c:723
(gdb)

---
Summary of my parrot 0.4.7 (r15837) configuration:
configdate='Sun Nov 26 10:12:50 2006'
Platform:
osname=linux, archname=x86_64-linux-thread-multi
jitcapable=0, jitarchname=nojit,
jitosname=linux, jitcpuarch=x86_64
execcapable=0
perl=/usr/bin/perl
Compiler:
cc='ccache gcc', ccflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC',
Linker and Libraries:
ld='ccache g++', ldflags=' -L/usr/local/lib64',
cc_ldflags='',
libs='-lm -ldl -lcrypt -lpthread -lrt -lreadline -lncurses'
Dynamic Linking:
share_ext='.so', ld_share_flags='-shared -L/usr/local/lib64 -fPIC',
load_ext='.so', ld_load_flags='-shared -L/usr/local/lib64 -fPIC'
Types:
iv=long, intvalsize=8, intsize=4, opcode_t=long, opcode_t_size=8,
ptrsize=8, ptr_alignment=1 byteorder=12345678,
nv=double, numvalsize=8, doublesize=8

---
Environment:
HOME LANG LANGUAGE LD_LIBRARY_PATH LOGDIR PATH SHELL

Patrick R . Michaud

nieprzeczytany,
2 gru 2006, 00:19:532.12.2006
do bugs-bi...@rt.perl.org
# New Ticket Created by Patrick R. Michaud
# Please include the string: [perl #41035]

# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=41035 >
Nowe wiadomości: 0