Bug#723805: perl: Seg faults sometimes (presumably due to "use threads;")

Niels Thykier niels at thykier.net
Thu Sep 19 23:09:39 UTC 2013


Package: perl
Version: 5.18.1-3
Severity: normal

Hi,

I am experiencing a regular segmentation faul in perl when running the
Lintian test suite.  It appears to be our test runner that seg. faults
and does so only at the "end".

The test runner uses "threads", which is probably why it is the only
script in the Lintian code base that seems to make perl seg. fault.  Below
is the output from gdb and a back trace.

~Niels

$ gdb --args perl t/runtests --dump-logs -k -j 8 t /tmp/lintian-tests deb-format-wrong-order
GNU gdb (GDB) 7.6 (Debian 7.6-5)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/perl...Reading symbols from /usr/lib/debug/usr/bin/perl...done.
done.
(gdb) run
Starting program: /usr/bin/perl t/runtests --dump-logs -k -j 8 t /tmp/lintian-tests deb-format-wrong-order
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff4cae700 (LWP 17250)]
[New Thread 0x7fffeffff700 (LWP 17251)]
[New Thread 0x7fffef7fe700 (LWP 17252)]
[Thread 0x7fffeffff700 (LWP 17251) exited]
[... repeat ...]
Package tests (debs):
[... more threads being created and exits ... ]
Running deb-format-wrong-order... building... testing... ok.
[... even more threads being created and exits ... ]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7afe96c in S_hv_delete_common (hash=610085174, d_flags=68, k_flags=0, klen=8, key=0x7fffffffe778 " I\256", keysv=0x0, hv=0x27d61a0, my_perl=0x603010) at hv.c:1034
1034    hv.c: No such file or directory.
(gdb) bt
#0  0x00007ffff7afe96c in S_hv_delete_common (hash=610085174, d_flags=68, k_flags=0, klen=8, key=0x7fffffffe778 " I\256", keysv=0x0, hv=0x27d61a0, my_perl=0x603010) at hv.c:1034
#1  Perl_hv_common (my_perl=0x603010, hv=0x27d61a0, keysv=keysv at entry=0x0, key=<optimized out>, key at entry=0x7fffffffe778 " I\256", klen=8, flags=<optimized out>, action=action at entry=68, val=val at entry=0x0, hash=<optimized out>, hash at entry=0) at hv.c:398
#2  0x00007ffff7aff8de in Perl_hv_common_key_len (my_perl=my_perl at entry=0x603010, hv=<optimized out>, key=key at entry=0x7fffffffe778 " I\256", klen_i32=klen_i32 at entry=8, action=action at entry=68, val=val at entry=0x0, hash=hash at entry=0) at hv.c:335
#3  0x00007ffff4cb23ea in glob_ophook (my_perl=0x603010, o=0xae4920) at Glob.xs:324
#4  0x00007ffff7a7e70c in Perl_op_free (my_perl=0x603010, o=0xae4920) at op.c:716
#5  0x00007ffff7a7e72f in Perl_op_free (my_perl=0x603010, o=0xae4b10) at op.c:722
#6  0x00007ffff7a7e72f in Perl_op_free (my_perl=0x603010, o=0xae5520) at op.c:722
#7  0x00007ffff7ac233d in Perl_cv_undef (my_perl=my_perl at entry=0x603010, cv=cv at entry=0xae0390) at pad.c:363
#8  0x00007ffff7b1478c in Perl_sv_clear (my_perl=my_perl at entry=0x603010, orig_sv=orig_sv at entry=0xae0390) at sv.c:6165
#9  0x00007ffff7b14bdd in Perl_sv_free2 (my_perl=my_perl at entry=0x603010, sv=sv at entry=0xae0390, rc=<optimized out>) at sv.c:6583
#10 0x00007ffff7b37a2b in S_SvREFCNT_dec (sv=<optimized out>, my_perl=<optimized out>) at inline.h:73
#11 Perl_leave_scope (my_perl=0x603010, base=<optimized out>) at scope.c:1141
#12 0x00007ffff7b385d5 in Perl_pop_scope (my_perl=my_perl at entry=0x603010) at scope.c:110
#13 0x00007ffff7a96c9b in perl_destruct (my_perl=0x603010) at perl.c:562
#14 0x0000000000400de1 in main (argc=9, argv=0x7fffffffec68, env=0x7fffffffecb8) at perlmain.c:125




More information about the Perl-maintainers mailing list