[Bioclusters] Opteron Perl64 segfault issues

Nathan O. Siemers bioclusters@bioinformatics.org
Tue, 05 Aug 2003 09:42:00 -0400


Hello All:


We are anticipating the purchase of an AMD opteron linux cluster to 
replace our old IA-32 systems.  We have purchased a test box (Penguin) 
running SUSE Linux and perl 5.8.0.  The summary of the software 
configuration is included at the end of this message.

We have encountered an issue with the perl implementation on the 
machine: I can reproducibly segfault perl with this code:

____________________________________________________________
#!/usr/bin/perl
$number = 10000000;
while (1) {
     for ($i = 1; $i <= $number;  $i++) {
     $hash{$i}++;
     }
     undef %hash;
}
_____________________________________________________________

One needs about 2g of ram on the machine to run the code, and it will 
never terminate.  On our opteron system, this code will produce a 
segmentation violation after a day or two of running.  The code simply 
produces a large perl hash data structure and interacts with it in very 
simple ways....

Instability in perl is a show stopper for us.  We currently do not know 
if this behavior is related to:

     the 5.8.0 release of perl (our other systems are running 5.6.x), or 
the way in which SUSE compiled it (I notice that threads are built into 
their version).

     bug in the AMD CPU or motherboard, etc.

     problems with the AMD opteron Linux shared libraries or other 
aspects of the linux port.

      Can anyone test this on their boxen (let it run for 4 days to be a 
fair test) or shed some insight on where the problem may be?  (Yes we 
*do* often keep such big hashes active in perl for long periods of time 
for word-based seq identity searches).

	Thanks,


	Nathan Siemers









uname -a:

Linux opt 2.4.19-SMP #1 SMP Mon Mar 31 23:48:08 UTC 2003 x86_64 unknown


     and perl:

perl -V

Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration:
   Platform:
     osname=linux, osvers=2.4.19, archname=x86_64-linux-thread-multi
     uname='linux jarre 2.4.19 #1 smp mon mar 24 16:17:59 utc 2003 
x86_64 unknown
  '
     config_args='-ds -e -Dprefix=/usr -Dusethreads -Di_db -Di_dbm 
-Di_ndbm -Di_g
dbm -Duseshrplib=true'
     hint=recommended, useposix=true, d_sigaction=define
     usethreads=define use5005threads=undef useithreads=define 
usemultiplicity=de
fine
     useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
     use64bitint=define use64bitall=define uselongdouble=undef
     usemymalloc=n, bincompat5005=undef
   Compiler:
     cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing 
-D_LARGEF
ILE_SOURCE -D_FILE_OFFSET_BITS=64',
     optimize='-O2 --pipe',
     cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing'
     ccversion='', gccversion='3.2.2 (SuSE Linux)', 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/lib64'
     libpth=/lib64 /usr/lib64 /usr/local/lib64
     libs=-lm -ldl -lcrypt -lpthread
     perllibs=-lm -ldl -lcrypt -lpthread
     libc=/lib64//lib64/libc.so.6, so=so, useshrplib=true, 
libperl=libperl.so
     gnulibc_version='2.2.5'
   Dynamic Linking:
     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic 
-Wl,-rpa
th,/usr/lib/perl5/5.8.0/x86_64-linux-thread-multi/CORE'
     cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib64'


Characteristics of this binary (from libperl):
   Compile-time options: MULTIPLICITY USE_ITHREADS USE_64_BIT_INT 
USE_64_BIT_ALL
USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
   Built under linux
   Compiled at Mar 27 2003 16:06:33
   @INC:
     /usr/lib/perl5/5.8.0/x86_64-linux-thread-multi
     /usr/lib/perl5/5.8.0
     /usr/lib/perl5/site_perl/5.8.0/x86_64-linux-thread-multi
     /usr/lib/perl5/site_perl/5.8.0
     /usr/lib/perl5/site_perl
     .