develooper Front page | perl.perl5.porters | Postings from January 2001

[ID 20010115.011] Perl 5.6.1-TRAIL1 core dumps in Boulder::Store

From:
root
Date:
January 15, 2001 12:31
Subject:
[ID 20010115.011] Perl 5.6.1-TRAIL1 core dumps in Boulder::Store
Message ID:
200101152031.NAA13668@nuxi.ucc.nau.edu
This is a bug report for perl from John.Campbell@nau.edu,
generated with the help of perlbug 1.33 running under perl v5.6.1.


-----------------------------------------------------------------
[Please enter your report here]

Perl 5.6.1-TRAIL1 will core dump trying to run the t/store.t test in 
Boulder::Store.  This does not happen in Perl 5.6.0 and the core dump
can be generated either under gcc or CC and under usemymalloc or
without usemymalloc.  Note that the bug goes away under perl -d.

Here's a typescript of the bug under gdb control:

12 root@nuxi# perl -V
Summary	of my perl5 (revision 5.0 version 6 subversion 1) configuration:
  Platform:
    osname=solaris, osvers=2.6,	archname=sun4-solaris
    uname='sunos nuxi 5.6 generic_105181-23 sun4u sparc	sunw,ultra-1 '
    config_args='-Dprefix=/nau/share/packages/perl5.6 -Ubincompat5005 -Uusemymalloc'
    hint=previous, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
    useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef	uselongdouble=undef
  Compiler:
    cc='gcc', ccflags ='-I /nau/share/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-g -O',
    cppflags='-I /nau/share/include -D_LARGEFILE_SOURCE	-D_FILE_OFFSET_BITS=64'
    ccversion='Sun WorkShop 6 2000/04/07 C 5.1', gccversion='2.95.2 19991024 (release)', gccosandvers='solaris2.6'
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=4, nvtype='double', nvsize=8,	Off_t='off_t', lseeksize=8
    alignbytes=8, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags =' '
    libpth=/nau/share/lib /nau/share/packages/SUNWspro/SC4.2/lib /lib /usr/lib /usr/ccs/lib
    libs=-lsocket -lnsl	-lgdbm -ldb -ldl -lm -lc -lcrypt -lsec
    perllibs=-lsocket -lnsl -ldl -lm -lc -lcrypt -lsec
    libc=/lib/libc.so, so=so, useshrplib=false,	libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs,	dlext=so, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='-fPIC -fshared-data', lddlflags='-G'


Characteristics	of this	binary (from libperl):
  Compile-time options:	USE_LARGE_FILES
  Locally applied patches:
	v5.6.1-TRIAL1
  Built	under solaris
  Compiled at Jan  6 2001 20:45:50
  @INC:
    /nau/share/packages/perl5.6/lib/5.6.1/sun4-solaris
    /nau/share/packages/perl5.6/lib/5.6.1
    /nau/share/packages/perl5.6/lib/site_perl/5.6.1/sun4-solaris
    /nau/share/packages/perl5.6/lib/site_perl/5.6.1
    /nau/share/packages/perl5.6/lib/site_perl
    .
13 root@nuxi# perl Makefile.PL
Checking if your kit is	complete...
Looks good
Writing	Makefile for Boulder

14 root@nuxi# make
cp Boulder/Swissprot.pm	blib/lib/Boulder/Swissprot.pm
cp Boulder/Labbase.pm blib/lib/Boulder/Labbase.pm
cp Boulder/Blast/WU.pm blib/lib/Boulder/Blast/WU.pm
cp Boulder/Blast/NCBI.pm blib/lib/Boulder/Blast/NCBI.pm
cp Boulder/Omim.pm blib/lib/Boulder/Omim.pm
cp Boulder/Blast.pm blib/lib/Boulder/Blast.pm
cp Stone/GB_Sequence.pm	blib/lib/Stone/GB_Sequence.pm
cp Stone.pm blib/lib/Stone.pm
cp Boulder.pod blib/lib/Boulder.pod
cp Boulder/Stream.pm blib/lib/Boulder/Stream.pm
cp Boulder/Unigene.pm blib/lib/Boulder/Unigene.pm
cp Boulder/XML.pm blib/lib/Boulder/XML.pm
cp Boulder/String.pm blib/lib/Boulder/String.pm
cp Boulder/Genbank.pm blib/lib/Boulder/Genbank.pm
cp Boulder/Store.pm blib/lib/Boulder/Store.pm
cp Stone/Cursor.pm blib/lib/Stone/Cursor.pm
cp Boulder/Medline.pm blib/lib/Boulder/Medline.pm
Manifying blib/man3/Boulder::Swissprot.3
Manifying blib/man3/Boulder::Genbank.3
Manifying blib/man3/Boulder::Blast::WU.3
Manifying blib/man3/Boulder::Blast::NCBI.3
Manifying blib/man3/Boulder::Omim.3
Manifying blib/man3/Boulder::Blast.3
Manifying blib/man3/Stone::GB_Sequence.3
Manifying blib/man3/Stone.3
Manifying blib/man3/Boulder.3
Manifying blib/man3/Boulder::Store.3
Manifying blib/man3/Stone::Cursor.3
Manifying blib/man3/Boulder::Unigene.3
Manifying blib/man3/Boulder::Stream.3
Manifying blib/man3/Boulder::XML.3
Manifying blib/man3/Boulder::Medline.3

15 root@nuxi# make test
PERL_DL_NONLAZY=1 /nau/share/packages/perl5.6/bin/perl -Iblib/arch -Iblib/lib -I/nau/share/packages/perl5.6/lib/5.6.1/sun4-solaris -I/nau/share/packages/perl5.6/lib/5.6.1 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t
t/store.............dubious
	Test returned status 0 (wstat 139, 0x8b)
	test program seems to have generated a core
t/stream............ok 20/20
Failed Test Status Wstat Total Fail  Failed  List of Failed
=======
t/store.t	   0   139    ??   ??	    %  ??
Failed 1/2 test	scripts, 50.00%	okay. 0/20 subtests failed, 100.00% okay.
*** Error code 29
make: Fatal error: Command failed for target `test_dynamic'

16 root@nuxi# file core
core:		ELF 32-bit MSB core file SPARC Version 1, from 'perl'

17 root@nuxi# diff store.t t/store.t
5d4
< use Devel::Peek;  # added by jdc
64,66d62
< # jdc	added
< Dump($store);
<

18 root@nuxi# gdb /nau/share/packages/perl5.6/bin/perl
GNU gdb	5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public	License, and you are
welcome	to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty	for GDB.  Type "show warranty" for details.
This GDB was configured	as "sparc-sun-solaris2.6"...
(gdb)
r -I/nau/share/packages/perl5.6/lib/5.6.1/store.ts/perl5.6/lib/5.6.1/sun4-sola
Starting program: /nau/share/packages/perl5.6/bin/perl -Iblib/arch -Iblib/lib -I/nau/share/packages/perl5.6/lib/5.6.1/sun4-solaris -I/nau/share/packages/perl5.6/lib/5.6.1 store.t
1..29
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
SV = RV(0x100450) at 0x105444
  REFCNT = 1
  FLAGS	= (PADBUSY,PADMY,ROK)
  RV = 0xebebc
  SV = PVHV(0x24d918) at 0xebebc
    REFCNT = 1
    FLAGS = (OBJECT,SHAREKEYS)
    IV = 21
    NV = 0
    STASH = 0x11794c	"Boulder::Store"
    ARRAY = 0xf2f38  (0:14, 1:15, 2:3)
    hash quality = 128.8%
    KEYS = 21
    FILL = 18
    MAX	= 31
    RITER = -1
    EITER = 0x0
    Elt	"dbrecno" HASH = 0x69652c0
    SV = RV(0x100438) at 0xebf88
      REFCNT = 1
      FLAGS = (ROK)
      RV = 0xf79ac
      SV = PVMG(0x1d5930) at 0xf79ac
	REFCNT = 2
	FLAGS =	(OBJECT,IOK,pIOK)
	IV = 996840
	NV = 0
	PV = 0
	STASH =	0x1b8fec	"DB_File"
    Elt	"subrec_end" HASH = 0xbed836c1
    SV = PV(0x129c90) at 0x25c03c
      REFCNT = 1
      FLAGS = (POK,pPOK)
      PV = 0x25a0a8 "}"\0
      CUR = 1
      LEN = 2
    Elt	"query_records"	HASH = 0xce3aa1a1
    SV = NULL(0x0) at 0x25bfdc
      REFCNT = 1
      FLAGS = ()

Program	received signal	SIGSEGV, Segmentation fault.
0x78290	in Perl_sv_2pv (sv=0x2966ac, lp=0xeffff51c) at sv.c:2118
2118		    if (SvAMAGIC(sv) &&	(tmpstr=AMG_CALLun(sv,string)) &&

(gdb) where
#0  0x78290 in Perl_sv_2pv (sv=0x2966ac, lp=0xeffff51c)	at sv.c:2118
#1  0x67e88 in Perl_hv_fetch_ent (hv=0x244170, keysv=0x2966ac, lval=1, hash=0)
    at hv.c:292
#2  0x70cdc in Perl_pp_helem ()	at pp_hot.c:1564
#3  0x6c3f0 in Perl_runops_standard () at run.c:27
#4  0x24378 in S_run_body (oldscope=1) at perl.c:1448
#5  0x23fec in perl_run	(my_perl=0x0) at perl.c:1368
#6  0x214e0 in main (argc=0, argv=0xeffff82c, env=0xeffff848) at perlmain.c:52

(gdb) l
2113		}
2114	    }
2115	    if (SvTHINKFIRST(sv)) {
2116		if (SvROK(sv)) {
2117		    SV*	tmpstr;
2118		    if (SvAMAGIC(sv) &&	(tmpstr=AMG_CALLun(sv,string)) &&
2119			    (SvRV(tmpstr) != SvRV(sv)))
2120			return SvPV(tmpstr,*lp);
2121		    sv = (SV*)SvRV(sv);
2122		    if (!sv)
(gdb) q
The program is running.	 Exit anyway? (y or n) y

20 root@nuxi# perl -d -Iblib/arch -Iblib/lib -I/nau/share/packages/perl5.6/lib/5.6.1/sun4-solaris -I/nau/share/packages/perl5.6/lib/5.6.1 t/store.t
Default	die handler restored.

Loading	DB routines from perl5db.pl version 1.07
Editor support available.

Enter h	or `h h' for help, or `man perldebug' for more help.

main::(t/store.t:16):	my($s,@s,$store);
  DB<1>	c
1..29
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11
ok 12
ok 13
ok 14
ok 15
ok 16
ok 17
ok 18
ok 19
ok 20
ok 21
ok 22
ok 23
ok 24
ok 25
ok 26
ok 27
ok 28
ok 29
Debugged program terminated.  Use q to quit or R to restart,
  use O	inhibit_exit to	avoid stopping after program termination,
  h q, h R or h	O to get additional info.
  DB<1>	q

21 root@nuxi# perl -d -Iblib/arch -Iblib/lib -I/nau/share/packages/perl5.6/lib/5.6.1/sun4-solaris -I/nau/share/packages/perl5.6/lib/5.6.1 store.t
Default	die handler restored.

Loading	DB routines from perl5db.pl version 1.07
Editor support available.

Enter h	or `h h' for help, or `man perldebug' for more help.

main::(store.t:17):	my($s,@s,$store);
  DB<1>	c
1..29
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
SV = PVMG(0x3e7c88) at 0x3b16b4
  REFCNT = 1
  FLAGS	= (PADBUSY,PADMY,ROK)
  IV = 0
  NV = 0
  RV = 0x3e3f5c
  SV = PVHV(0x3d8ea8) at 0x3e3f5c
    REFCNT = 1
    FLAGS = (OBJECT,SHAREKEYS)
    IV = 21
    NV = 0
    STASH = 0x20a2d0	"Boulder::Store"
    ARRAY = 0x3e59d8  (0:14, 1:15, 2:3)
    hash quality = 128.8%
    KEYS = 21
    FILL = 18
    MAX	= 31
    RITER = -1
    EITER = 0x0
    Elt	"dbrecno" HASH = 0x69652c0
    SV = PVMG(0x3e6218)	at 0x3db0e4
      REFCNT = 1
      FLAGS = (ROK)
      IV = 0
      NV = 0
      RV = 0x3e5664
      SV = PVMG(0x3e7bc8) at 0x3e5664
	REFCNT = 2
	FLAGS =	(OBJECT,IOK,pIOK)
	IV = 4092240
	NV = 0
	PV = 0
	STASH =	0x2f3730	"DB_File"
    Elt	"subrec_end" HASH = 0xbed836c1
    SV = PV(0x400948) at 0x4022d4
      REFCNT = 1
      FLAGS = (POK,pPOK)
      PV = 0x3e5e98 "}"\0
      CUR = 1
      LEN = 2
    Elt	"query_records"	HASH = 0xce3aa1a1
    SV = NULL(0x0) at 0x3db0cc
      REFCNT = 1
      FLAGS = ()
ok 11
ok 12
ok 13
ok 14
ok 15
ok 16
ok 17
ok 18
ok 19
ok 20
ok 21
ok 22
ok 23
ok 24
ok 25
ok 26
ok 27
ok 28
ok 29
Debugged program terminated.  Use q to quit or R to restart,
  use O	inhibit_exit to	avoid stopping after program termination,
  h q, h R or h	O to get additional info.
  DB<1>	q

script done on Mon Jan 15 13:13:42 2001


[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
    category=core
    severity=critical
---
This perlbug was built using Perl v5.6.1 - Sat Jan  6 20:30:11 MST 2001
It is being executed now by  Perl v5.6.1 - Wed Jan  3 20:01:12 MST 2001.

Site configuration information for perl v5.6.1:

Configured by root at Wed Jan  3 20:01:12 MST 2001.

Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
  Platform:
    osname=solaris, osvers=2.6, archname=sun4-solaris
    uname='sunos nuxi 5.6 generic_105181-23 sun4u sparc sunw,ultra-1 '
    config_args='-Dprefix=/nau/share/packages/perl5.6.1 -Ubincompat5005'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
    useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
  Compiler:
    cc='cc', ccflags ='-I /nau/share/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-g -O',
    cppflags='-I /nau/share/include'
    ccversion='Sun WorkShop 6 2000/04/07 C 5.1', gccversion='', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, usemymalloc=y, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' '
    libpth=/nau/share/lib /nau/share/packages/SUNWspro/SC4.2/lib /lib /usr/lib /usr/ccs/lib
    libs=-lsocket -lnsl -lgdbm -ldb -ldl -lm -lc -lcrypt -lsec
    perllibs=-lsocket -lnsl -ldl -lm -lc -lcrypt -lsec
    libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='-KPIC', lddlflags='-G'

Locally applied patches:
    v5.6.1-TRIAL1

---
@INC for perl v5.6.1:
    /nau/share/packages/perl5.6.1/lib/5.6.1/sun4-solaris
    /nau/share/packages/perl5.6.1/lib/5.6.1
    /nau/share/packages/perl5.6.1/lib/site_perl/5.6.1/sun4-solaris
    /nau/share/packages/perl5.6.1/lib/site_perl/5.6.1
    /nau/share/packages/perl5.6.1/lib/site_perl
    .

---
Environment for perl v5.6.1:
    HOME=/
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH=/nau/share/SUNWspro/lib:/nau/share/packages/SUNWspro/SC4.2:/nau/share/lib:/nau/local/lib:/usr/dt/lib:/usr/openwin/lib:/usr/X/lib:/usr/ccs/lib:/usr/lib:/opt/app/oracle/product/8.0.5/lib
    LOGDIR (unset)
    PATH=/nau/share/packages/perl5.6/bin:/nau/share/SUNWspro/bin:/nau/local/etc:/nau/share/etc:/nau/local/bin:/nau/share/bin:/nau/share/sbin:/usr/bin:/usr/sbin:/usr/etc:/etc:/usr/openwin/bin:/usr/ccs/bin:/nau/share/packages/jdk/java/bin:/nau/share/packages/tetex/bin:/nau/local/harvest/bin:/nau/local/harvest/lib:/nau/local/harvest/lib/gatherer:/nau/local/harvest/lib/broker:/nau/local/bin/emacs/bin:/opt/app/oracle/product/8.0.5/bin
    PERL_BADLANG (unset)
    SHELL=/bin/csh




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