develooper Front page | perl.perl5.porters | Postings from August 2008

Occasional assertion failure in S_sv_del_backref

Thread Next
From:
Nicholas Clark
Date:
August 22, 2008 02:18
Subject:
Occasional assertion failure in S_sv_del_backref
Message ID:
20080822091759.GU40282@plum.flirble.org
I'm sometimes getting an assertion failure in S_sv_del_backref()

Core was generated by `/home/nick/p4perl/perl/perl ../lib/base/t/warnings.t'.
Program terminated with signal 6, Aborted.
#0  0x00002ab3a544e07b in raise () from /lib/libc.so.6
(gdb) where
#0  0x00002ab3a544e07b in raise () from /lib/libc.so.6
#1  0x00002ab3a544f84e in abort () from /lib/libc.so.6
#2  0x00002ab3a5447af4 in __assert_fail () from /lib/libc.so.6
#3  0x0000000000535935 in S_sv_del_backref (my_perl=0x8d9010, tsv=0x8fa7a0, 
    sv=0xa2cd50) at sv.c:5107
#4  0x000000000053962d in Perl_sv_clear (my_perl=0x8d9010, sv=0xa2cd50)
    at sv.c:5506
#5  0x0000000000539dc4 in Perl_sv_free2 (my_perl=0x8d9010, sv=0xa2cd50)
    at sv.c:5676
#6  0x000000000050de6f in do_clean_all (my_perl=0x8d9010, sv=0xa2cd50)
    at sv.c:524
#7  0x000000000050ce68 in S_visit (my_perl=0x8d9010, 
    f=0x50dda2 <do_clean_all>, flags=0, mask=0) at sv.c:396
#8  0x000000000050deb4 in Perl_sv_clean_all (my_perl=0x8d9010) at sv.c:543
#9  0x00000000004d8c50 in perl_destruct (my_perl=0x8d9010) at perl.c:1132
#10 0x000000000041e03e in main (argc=2, argv=0x7fff05e8c408, 
    env=0x7fff05e8c420) at perlmain.c:115
(gdb) 


The assertion is here:

    if (!av)
	Perl_croak(aTHX_ "panic: del_backref");

    assert(!SvIS_FREED(av));


Part of me thinks "well, all bets are off during global destruction"
but wasn't this array given a higher reference count to make it last longer
than its parent during global destruction? So is this exposing a bug?

Nicholas Clark

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About