Segmentation fault

Wouter de Geus <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.general
Message-ID <[email protected]>
Hej folks,

While writing perl tests for a framework I'm working on I ran into some weird segmentation faults today.
I started noticing them in a test after changing they way error were returned in some unrelated object, which involves returning an internal error string that appends $DBI::errstr if available. We check $dbh->err() if available and $DBI::errstr for errors.
Funny thing is: the segfault only occurs 2 out of 5 times orso.

The segfault always seems to happen after disconnect(), I'm guessing on termination of the program when perl starts cleaning up stuff.

Here's a stacktrace when it segfaults on DBI:
===
1..20

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5cd7471 in err_hash.isra.6 () from /usr/local/lib64/perl5/auto/DBI/DBI.so
(gdb) bt full
#0  0x00007ffff5cd7471 in err_hash.isra.6 () from /usr/local/lib64/perl5/auto/DBI/DBI.so
No symbol table info available.
#1  0x00007ffff5cdbfe6 in XS_DBI_dispatch () from /usr/local/lib64/perl5/auto/DBI/DBI.so
No symbol table info available.
#2  0x00007ffff7b0a416 in Perl_pp_entersub () from /usr/lib64/perl5/CORE/libperl.so
No symbol table info available.
#3  0x00007ffff7a942f6 in Perl_call_sv () from /usr/lib64/perl5/CORE/libperl.so
No symbol table info available.
#4  0x00007ffff7b13471 in ?? () from /usr/lib64/perl5/CORE/libperl.so
No symbol table info available.
#5  0x00007ffff7b13bb0 in Perl_sv_clear () from /usr/lib64/perl5/CORE/libperl.so
No symbol table info available.
#6  0x00007ffff7b1423d in Perl_sv_free2 () from /usr/lib64/perl5/CORE/libperl.so
No symbol table info available.
#7  0x00007ffff7b0b7e7 in ?? () from /usr/lib64/perl5/CORE/libperl.so
No symbol table info available.
#8  0x00007ffff7b147f6 in Perl_sv_clean_objs () from /usr/lib64/perl5/CORE/libperl.so
No symbol table info available.
#9  0x00007ffff7a96570 in perl_destruct () from /usr/lib64/perl5/CORE/libperl.so
No symbol table info available.
#10 0x0000000000400ed1 in main ()
No symbol table info available.
(gdb) 
===
Does anyone have any idea what causes this? Or how to debug this properly?
I just installed the latest versions of DBI and DBD::mysql, that didn't help.

Thanks for reading.

Wouter.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.