SegFault in AnyEvent::Fork::Pool

Robert Schmidt rjeschmi at gmail.com
Sat Oct 25 19:08:07 CEST 2014


I like the way the code looks at:
http://search.cpan.org/~mlehmann/AnyEvent-Fork-Pool-1.1/Pool.pm

Using the on_destroy callback to trigger the exit condition variable is a
pretty clean. Unfortunately it seems to segfault on 5.20.1

here is the backtrace from the core, ideas or suggestions on what other
info I should provide are appreciated.

my test code is here: https://github.com/rjeschmi/AnyEvent-Fork-Pool-Test


(gdb) bt full
#0  0x00007f339cd59475 in set_idx (sv=0x0, sv=0x0, idx=0) at Heap.xs:79
No locals.
#1  downheap (cmp=cmp at entry=0x7f339cd58d10 <cmp_nv>,
cmp_data=cmp_data at entry=0x0,
N=0, k=k at entry=0,
    flags=1, av=<optimized out>) at Heap.xs:188
        heap = 0xebeea0
        he = 0x0
#2  0x00007f339cd59528 in adjustheap (av=<optimized out>,
cmp=cmp at entry=0x7f339cd58d10
<cmp_nv>,
    cmp_data=cmp_data at entry=0x0, N=<optimized out>, k=k at entry=0,
flags=flags at entry=1) at Heap.xs:221
        heap = <optimized out>
#3  0x00007f339cd596e4 in adjust_heap (flags=1, idx=0, cmp_data=0x0,
cmp=0x7f339cd58d10 <cmp_nv>,
    av=<optimized out>) at Heap.xs:293
No locals.
#4  XS_Array__Heap_adjust_heap (cv=<optimized out>) at Heap.xs:417
        heap = 0xd38868
        idx = 0
        sp = <optimized out>
        ax = <optimized out>
        mark = <optimized out>
        items = <optimized out>
        ix = 1
#5  0x00000000004a58a7 in Perl_pp_entersub () at pp_hot.c:2794
        markix = 3
        sp = <optimized out>
        sv = 0xd88d78
        gv = 0x100000000
        cv = 0xd88d90
        cx = <optimized out>
        gimme = 1
        hasargs = <optimized out>
#6  0x000000000049e943 in Perl_runops_standard () at run.c:42
        op = <optimized out>
#7  0x000000000043b488 in S_run_body (oldscope=<optimized out>) at
perl.c:2451
No locals.
#8  perl_run (my_perl=<optimized out>) at perl.c:2372
        oldscope = 1
        ret = <optimized out>
        cur_env = {je_prev = 0x781b40 <PL_start_env>, je_buf = {{__jmpbuf =
{0,
                -7837322615112956929, 4317076, 140736196396272, 0, 0,
7837206077716202495,
                -7837323158876421121}, __mask_was_saved = 0, __saved_mask =
{__val = {1, 12984216,
                  13, 4316929, 148565664, 0, 0, 4906802, 0, 4317076, 0,
4611719, 0, 0, 0,
                  4317076}}}}, je_ret = 3, je_mustcatch = false}
#9  0x000000000041df85 in main (argc=2, argv=0x7fffb2fe44f8,
env=0x7fffb2fe4510) at perlmain.c:114
        exitstatus = <optimized out>
        i = <optimized out>


-- 
Rob Schmidt
phone: 613-203-8529 email: rjeschmi at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.schmorp.de/pipermail/anyevent/attachments/20141025/d004ac10/attachment.html>


More information about the anyevent mailing list