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

calling .hash on a list of pairs segfaults in rakudo #1983

Closed
p6rt opened this issue Jul 30, 2010 · 6 comments
Closed

calling .hash on a list of pairs segfaults in rakudo #1983

p6rt opened this issue Jul 30, 2010 · 6 comments

Comments

@p6rt
Copy link

p6rt commented Jul 30, 2010

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

Searchable as RT76826$

@p6rt
Copy link
Author

p6rt commented Jul 30, 2010

From @moritz

14​:02 < moritz_> does 'say (a => 1, b => 2).hash.perl' segfault for
anybody else?
14​:03 < gfldex> yes
14​:03 < tadzik> yes
14​:03 < gfldex> 50e0e7ee7263b401ffe95aa7585ee07ee7188d6d, last commit i got
14​:03 < tadzik> even (a => 1, b => 2).hash
14​:04 < tadzik> This is Rakudo Perl 6, version 2010.07-54-g94cfd5e built
on parrot 2.6.0 r48225
14​:04 < briang> moritz_​: no segfault, but no output either
14​:04 * moritz_ submits rakudobug

(gdb) run -e '(a => 1, b => 2).hash'
Starting program​: /nocrypt-home/moritz/source/rakudo/perl6 -e '(a => 1,
b => 2).hash'
[Thread debugging using libthread_db enabled]
warning​: Lowest section in /usr/lib/libicudata.so.36 is .hash at
0000000000000120
[New Thread 0x7f1b53fde6f0 (LWP 10237)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f1b53fde6f0 (LWP 10237)]
0x00007f1b53af2a1c in Parrot_CallContext_mark (interp=0x30a2010,
  _self=0x892a4c0) at ./src/pmc/callcontext.c​:1009
1009 Parrot_CallContext_mark(PARROT_INTERP, PMC *_self)
#​0 0x00007f1b53af2a1c in Parrot_CallContext_mark (interp=0x30a2010,
  _self=0x892a4c0) at ./src/pmc/callcontext.c​:1009
#​1 0x00007f1b53a6d0d8 in Parrot_gc_mark_PMC_alive_fun (interp=0x30a2010,
  obj=0x892a4c0) at src/gc/api.c​:181
#​2 0x00007f1b53af31f8 in Parrot_CallContext_mark (interp=0x30a2010,
  _self=0x892a4e0) at ./src/pmc/callcontext.pmc​:552
#​3 0x00007f1b53a6d0d8 in Parrot_gc_mark_PMC_alive_fun (interp=0x30a2010,
  obj=0x892a4e0) at src/gc/api.c​:181
#​4 0x00007f1b53af31f8 in Parrot_CallContext_mark (interp=0x30a2010,
  _self=0x892a500) at ./src/pmc/callcontext.pmc​:552
#​5 0x00007f1b53a6d0d8 in Parrot_gc_mark_PMC_alive_fun (interp=0x30a2010,
  obj=0x892a500) at src/gc/api.c​:181
#​6 0x00007f1b53af31f8 in Parrot_CallContext_mark (interp=0x30a2010,
  _self=0x892a520) at ./src/pmc/callcontext.pmc​:552
#​7 0x00007f1b53a6d0d8 in Parrot_gc_mark_PMC_alive_fun (interp=0x30a2010,
  obj=0x892a520) at src/gc/api.c​:181
#​8 0x00007f1b53af31f8 in Parrot_CallContext_mark (interp=0x30a2010,
  _self=0x892a540) at ./src/pmc/callcontext.pmc​:552
#​9 0x00007f1b53a6d0d8 in Parrot_gc_mark_PMC_alive_fun (interp=0x30a2010,
  obj=0x892a540) at src/gc/api.c​:181
#​10 0x00007f1b53af31f8 in Parrot_CallContext_mark (interp=0x30a2010,
  _self=0x892a560) at ./src/pmc/callcontext.pmc​:552
#​11 0x00007f1b53a6d0d8 in Parrot_gc_mark_PMC_alive_fun (interp=0x30a2010,

GDB segfaults when I try to obtain the tail of the stack trace, here's
as far as I got (from a different gdb run)​:

(gdb) bt -20
#​10722 0x00007f1a34f0e375 in Parrot_Object_mark (interp=0x2116010,
  _self=<value optimized out>) at ./src/pmc/object.pmc​:304
#​10723 0x00007f1a34e62a91 in parrot_mark_hash (interp=0x2116010,
  hash=0x21f3070) at src/hash.c​:565
#​10724 0x00007f1a34e5e0d8 in Parrot_gc_mark_PMC_alive_fun (interp=0x2116010,
  obj=0x21a7260) at src/gc/api.c​:181
#​10725 0x00007f1a34ef874e in Parrot_FixedPMCArray_mark (interp=0x2116010,
  _self=<value optimized out>) at ./src/pmc/fixedpmcarray.pmc​:794
#​10726 0x00007f1a34e5e0d8 in Parrot_gc_mark_PMC_alive_fun (interp=0x2116010,
  obj=0x21a02e0) at src/gc/api.c​:181
#​10727 0x00007f1a34e60a60 in Parrot_gc_trace_root (interp=0x2116010,
  mem_pools=0x2116870, trace=GC_TRACE_FULL) at src/gc/mark_sweep.c​:179
#​10728 0x00007f1a34e5f771 in gc_ms_mark_and_sweep (interp=0x2116010,
flags=2)
  at src/gc/gc_ms.c​:1442
#​10729 0x00007f1a34e5f917 in gc_ms_more_traceable_objects (interp=0x2116010,
  mem_pools=<value optimized out>, pool=0x2136bb0) at src/gc/gc_ms.c​:1532
#​10730 0x00007f1a34e5e90c in gc_ms_get_free_object (interp=0x2116010,
  mem_pools=0x2116870, pool=0x2136bb0) at src/gc/gc_ms.c​:1617
Segmentation fault

@p6rt
Copy link
Author

p6rt commented Jul 30, 2010

@coke - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Jul 30, 2010

From 0briang0@gmail.com

On Fri Jul 30 05​:12​:26 2010, moritz wrote​:

14​:04 < briang> moritz_​: no segfault, but no output either

After viewing my logs, it *was* logged, but no
segfault error on screen.

@p6rt
Copy link
Author

p6rt commented Jan 19, 2011

From @felliott

Hello,

This works in recent Rakudo, and I've added a test for it into
S29-conversions/hash.t. I believe it can be marked as 'resolved'.

Cheers,
Fitz Elliott

1 similar comment
@p6rt
Copy link
Author

p6rt commented Jan 19, 2011

From @felliott

Hello,

This works in recent Rakudo, and I've added a test for it into
S29-conversions/hash.t. I believe it can be marked as 'resolved'.

Cheers,
Fitz Elliott

@p6rt
Copy link
Author

p6rt commented Jan 19, 2011

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

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