Thanks for the report. I'm attaching a copy of your test script for reference. I can confirm that this happens in 5.10.1 and blead. Perl segfaults in do_clean_objs: (gdb) bt full #0 0x081aa5d0 in do_clean_objs (my_perl=0x83f7008, ref=0x83fc9c4) at sv.c:489 target = 0x0 __PRETTY_FUNCTION__ = "do_clean_objs" #1 0x081aa378 in S_visit (my_perl=0x83f7008, f=0x81aa413 <do_clean_objs>, flags=2048, mask=2048) at sv.c:440 svend = 0x8d810fa4 sv = 0x83fc9c4 sva = 0x83fc5e4 visited = 0 __PRETTY_FUNCTION__ = "S_visit" #2 0x081ab3d2 in Perl_sv_clean_objs (my_perl=0x83f7008) at sv.c:548 No locals. #3 0x0808c1e1 in perl_destruct (my_perl=0x83f7008) at perl.c:770 destruct_level = 0 '\000' hv = 0x0 __PRETTY_FUNCTION__ = "perl_destruct" #4 0x08064942 in main (argc=2, argv=0xbffff2f4, env=0xbffff300) at perlmain.c:126 exitstatus = 0 i = 69 At that point Perl is working with a scalar that seems corrupted. It claims to be a reference but isn't: (gdb) p SvFLAGS(ref) & SVf_ROK $14 = 2048 (Equivalent to SvRV() but gdb doesn't grok it): (gdb) p ref->sv_u.svu_rv $16 = (SV *) 0x0 Or in another session: (gdb) p ref->sv_u.svu_rv $5 = (SV *) 0x1 Or: (gdb) p target $1 = (SV * const) 0xabababab Which then segfaults on: SvOBJECT(SvRV(ref))Thread Previous | Thread Next