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

[perl #56376] odd segmentation fault with in perl 5.8.8

June 26, 2008 14:53
[perl #56376] odd segmentation fault with in perl 5.8.8
Message ID:
# New Ticket Created by 
# Please include the string:  [perl #56376]
# in the subject line of all future correspondence about this issue. 
# <URL: >

This is a bug report for perl from,
generated with the help of perlbug 1.35 running under perl v5.8.8.


I was working on a rather large program when I ran into odd segmentation faults.
I was told that whenever you get a segmentation fault with pure purl you should
'perlbug' the result. 

So I spent 40 minutes cutting down the large program to the smallest example I
could make ... and I have *absolutely no idea* why this combination produces the
segmentation fault, nor how I could track it down any further.

It does not seem to be unique to my perl5.8, my perl5.6 and my perl 5.10 die

Please let me know if you figure something out.  I'd love to know where the
problem really is.


use strict;

my $t = test->new("test");
   $t->nonunique;  # comment out this line to avoid segmentation fault
   $t+=7;       # or comment out this line to avoid segmentation fault

package test;

use strict;
use overload fallback => 1, bool => sub{1}, "+=" => \&pe;

sub new { my $class = shift; my $val = shift; bless {q=>1, v=>$val}, $class }

sub pe {
    my $this = shift;
    my $that = shift;

    $this->{q} += $that;

sub quantity { my $this = shift; $this->{q} = shift }

our %item_counts;
sub nonunique { my $this = shift; $this->{c} = push @{$item_counts{$this->{v}}}, $this; }

Site configuration information for perl v5.8.8:

Configured by Debian Project at Tue Nov 27 10:55:30 GMT 2007.

Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
    osname=linux, osvers=, archname=x86_64-linux-gnu-thread-multi
    uname='linux yellow #1 smp sun sep 23 13:51:52 utc 2007 x86_64 gnulinux '
    config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.8 -Darchlib=/usr/lib/perl/5.8 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.8.8 -Dsitearch=/usr/local/lib/perl/5.8.8 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -Duseshrplib -Dd_dosuid -des'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=define use64bitall=define uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include'
    ccversion='', gccversion='4.2.3 20071123 (prerelease) (Ubuntu 4.2.2-3ubuntu4)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
    perllibs=-ldl -lm -lpthread -lc -lcrypt
    libc=/lib/, so=so, useshrplib=true,
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'

Locally applied patches:

@INC for perl v5.8.8:

Environment for perl v5.8.8:
    LANGUAGE (unset)
    LOGDIR (unset)
    PERL_BADLANG (unset)
    SHELL=/bin/bash Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About