Created
July 7, 2017 16:31
-
-
Save anonymous/64e9b793e3ca115532002a2a1104aeed to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
MIME-Version: 1.0 | |
Content-Type: text/plain; charset=UTF-8; | |
format=flowed | |
Content-Transfer-Encoding: 7bit | |
Date: Fri, 07 Jul 2017 12:18:45 -0400 | |
From: Justin DeVuyst <justin@devuyst.com> | |
To: <rakudobug@perl.org> | |
Subject: [BUG] Segfault seemingly related to MVMCallCapture's | |
=?UTF-8?Q?gc=5Fmark=2C=20and=20async?= | |
Message-ID: <14024834675b6a5e6e2c3daea3c56e26@mail.devuyst.com> | |
X-Sender: justin@devuyst.com | |
User-Agent: Roundcube Webmail/0.6 | |
I golfed it as much as I could. See Below. | |
jdv@new-host-2 t]$ cat html_decode.pl | |
use strict; | |
use warnings; | |
use HTML::Entities; | |
use JSON::XS; | |
my $in = decode_json(join('', <STDIN>)); | |
decode_entities($in->{html}) for 1..($in->{iterations} // 1); | |
print JSON::XS->new->utf8->canonical->pretty->encode( | |
{ html => $in->{html} }); | |
[jdv@new-host-2 t]$ | |
[jdv@new-host-2 t]$ cat 01-basic.t | |
use v6; | |
use XML; | |
class Agent::RedditAgent { | |
method html-decode (:$html is copy, :$iterations = 1) { | |
my $p = run 'perl', './html_decode.pl', :in, | |
:out; | |
$p.in.print(to-json({ :$html, :$iterations })); | |
$p.in.close; | |
from-json($p.out.slurp-rest)<html>; | |
} | |
method run { loop { | |
sleep 1; | |
my $content = run( 'curl', '-s', '-A', '', | |
<https://www.reddit.com/r/perl6/.rss>, :out | |
).out.slurp(:close); | |
my %entries = map { | |
self.html-decode(html => '', :2iterations); | |
|(); | |
}, from-xml($content).lookfor(:TAG<entry>); | |
} } | |
} | |
await start { Agent::RedditAgent.new.run } | |
[jdv@new-host-2 t]$ | |
[jdv@new-host-2 t]$ perl6-gdb-m 01-basic.t | |
================================================================================================ | |
This is Rakudo Perl 6 running in the GNU debugger, which often allows | |
the user to generate useful back- | |
traces to debug or report issues in Rakudo, the MoarVM backend or the | |
currently running code. | |
This Rakudo version is 2017.06.170.gb.0.c.8.e.18 built on MoarVM | |
version 2017.06.37.g.4.e.29.e.4.c, | |
running on fedora (25.Workstation.Edition) / linux | |
(4.11.5.200.fc.25.x.86._.64) | |
Type `bt full` to generate a backtrace if applicable, type `q` to quit | |
or `help` for help. | |
------------------------------------------------------------------------------------------------ | |
Reading symbols from /home/jdv/rakudo/install/bin/moar...done. | |
Starting program: /home/jdv/rakudo/install/bin/moar | |
--execname=/home/jdv/rakudo/install/bin/perl6-gdb-m | |
--libpath=/home/jdv/rakudo/install/share/nqp/lib | |
--libpath=/home/jdv/rakudo/install/share/perl6/lib | |
--libpath=/home/jdv/rakudo/install/share/perl6/runtime | |
/home/jdv/rakudo/install/share/perl6/runtime/perl6.moarvm 01-basic.t | |
[Thread debugging using libthread_db enabled] | |
Using host libthread_db library "/lib64/libthread_db.so.1". | |
[New Thread 0x7ffff453b700 (LWP 28134)] | |
[New Thread 0x7ffff3939700 (LWP 28136)] | |
[New Thread 0x7ffff2d37700 (LWP 28137)] | |
Detaching after fork from child process 28138. | |
[New Thread 0x7ffff2135700 (LWP 28139)] | |
[New Thread 0x7ffff1533700 (LWP 28142)] | |
[New Thread 0x7fffdb3fc700 (LWP 28148)] | |
Detaching after fork from child process 28149. | |
[New Thread 0x7fffda7fa700 (LWP 28150)] | |
[New Thread 0x7fffd9bf8700 (LWP 28151)] | |
[New Thread 0x7fffd8ff6700 (LWP 28152)] | |
[New Thread 0x7fffcbfff700 (LWP 28153)] | |
[New Thread 0x7fffca7fb700 (LWP 28155)] | |
[New Thread 0x7fffcaffc700 (LWP 28154)] | |
[New Thread 0x7fffc9bf9700 (LWP 28156)] | |
[New Thread 0x7fffc8bf6700 (LWP 28157)] | |
[New Thread 0x7fffb3fff700 (LWP 28158)] | |
Detaching after fork from child process 28159. | |
[New Thread 0x7fffb33fd700 (LWP 28160)] | |
[New Thread 0x7fffb27fb700 (LWP 28161)] | |
Detaching after fork from child process 28162. | |
... | |
Detaching after fork from child process 28490. | |
Thread 2 "moar" received signal SIGSEGV, Segmentation fault. | |
[Switching to Thread 0x7ffff453b700 (LWP 28134)] | |
0x00007ffff782e2b7 in gc_mark (tc=0x38fd470, st=<optimized out>, | |
data=<optimized out>, worklist=0x7fffeea2ecc0) | |
at src/6model/reprs/MVMCallCapture.c:54 | |
54 if (flag_map[flag] & MVM_CALLSITE_ARG_NAMED) { | |
Missing separate debuginfos, use: dnf debuginfo-install | |
glibc-2.24-6.fc25.x86_64 | |
(gdb) bt | |
#0 0x00007ffff782e2b7 in gc_mark (tc=0x38fd470, st=<optimized out>, | |
data=<optimized out>, worklist=0x7fffeea2ecc0) | |
at src/6model/reprs/MVMCallCapture.c:54 | |
#1 0x00007ffff7808bd0 in process_worklist (tc=tc@entry=0x38fd470, | |
worklist=worklist@entry=0x7fffeea2ecc0, | |
wtp=wtp@entry=0x7ffff453a990, | |
gen=gen@entry=0 '\000') at src/gc/collect.c:313 | |
#2 0x00007ffff780926d in MVM_gc_collect (tc=0x38fd470, | |
what_to_do=<optimized out>, | |
gen=gen@entry=0 '\000') at src/gc/collect.c:129 | |
#3 0x00007ffff7805085 in run_gc (tc=tc@entry=0x38fd470, | |
what_to_do=what_to_do@entry=0 '\000') at src/gc/orchestrate.c:357 | |
#4 0x00007ffff7805a31 in MVM_gc_enter_from_allocator | |
(tc=tc@entry=0x38fd470) | |
at src/gc/orchestrate.c:470 | |
#5 0x00007ffff7805c28 in MVM_gc_allocate_nursery (tc=0x38fd470, | |
size=56) | |
at src/gc/allocation.c:32 | |
#6 0x00007ffff7805e64 in MVM_gc_allocate_object (tc=0x38fd470, | |
st=<optimized out>) | |
at src/gc/allocation.c:86 | |
#7 0x00007ffff7818a03 in MVM_repr_alloc_init (tc=0x38fd470, | |
type=<optimized out>) | |
at src/6model/reprconv.c:13 | |
#8 0x00007ffff5d8437a in p6scalarfromdesc () | |
from | |
/home/jdv/rakudo/install/share/perl6/runtime/dynext/libperl6_ops_moar.so | |
#9 0x00007ffff5c06c89 in ?? () | |
#10 0x0000000000000008 in ?? () | |
#11 0x00007ffff78c34c8 in ?? () | |
from //home/jdv/rakudo/nqp/MoarVM/install/lib/libmoar.so | |
#12 0x00007fffece09d10 in ?? () | |
#13 0x00007ffff77ec942 in MVM_frame_invoke (tc=<optimized out>, | |
static_frame=<optimized out>, callsite=<optimized out>, | |
args=<optimized out>, | |
outer=<optimized out>, code_ref=<optimized out>, | |
spesh_cand=<optimized out>) | |
at src/core/frame.c:571 | |
#14 0x0000000000e5e0f8 in ?? () | |
#15 0x00007ffff58c6c46 in ?? () | |
#16 0x00007ffff786eb19 in MVM_jit_enter_code (tc=<optimized out>, | |
cu=<optimized out>, code=<optimized out>) at src/jit/compile.c:139 | |
#17 0x00007ffff77d7733 in MVM_interp_run (tc=tc@entry=0x38fd470, | |
initial_invoke=0x7fffee90fbb0, invoke_data=0x7fffeea53a68, | |
invoke_data@entry=0x38fc700) at src/core/interp.c:5499 | |
#18 0x00007ffff77f40fe in start_thread (data=0x38fc700) at | |
src/core/threads.c:85 | |
#19 0x00007ffff78bc847 in uv.thread_start () | |
from //home/jdv/rakudo/nqp/MoarVM/install/lib/libmoar.so | |
#20 0x00007ffff6d7973a in start_thread () from /lib64/libpthread.so.0 | |
#21 0x00007ffff73a0e7f in clone () from /lib64/libc.so.6 | |
(gdb) jdv@new-host-2 t]$ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment