Hi Team,
I'm having intermittent core dumps with a script I wrote. It collect the
status of 180'000 interfaces on 7'000 devices across 15 networks. It's
quite a big script, with a bunch of loaded modules. When running, it
grows to 600Mb ram in "top". This ram usage is caused by the way I store
data and flush to DB at the end.
Initially, I thought my core dumps would come from DBI and
DBD::Postgres, so took the database code out of the threads and only do
DB handling before threads are created and after all threads have
joined. Even with these measures, I continue to have sporadic core
dumps.
I thought you might have an idea. Here are the description of my
environment :
Hardware : sun4u Netra t 1400/1405 (2 X UltraSPARC-II 440MHz)
ram : 2 Gb
OS : Solaris 5.9 Generic_118558-14
gcc : 3.4.2
perl, v5.8.5 built for sun4-solaris-thread-multi : self-built with all modules
as well, using our packaging system. See the "perl -V" output below.
used modules within the threads : Storable, Log::Log4perl, Net::SNMP,
Digest::MD5;
a pstack on the core dump is included below
Thanks in advance for any hint.
Charles
=============
/appl/perl/bin/perl -V
--------------------------------------------------
Summary of my perl5 (revision 5 version 8 subversion 5) configuration:
Platform:
osname=solaris, osvers=2.9, archname=sun4-solaris-thread-multi
uname='sunos oss-pkg 5.9 generic_117171-12 sun4u sparc sunw,ultraax-i2 '
config_args='-Dcc=gcc -Dinstallprefix=/appl/perl -Dprefix=/appl/perl [EMAIL
PROTECTED] [EMAIL PROTECTED] -Duselargefiles -Dusethreads -des
-Uinstallusrbinperl -Dotherlibdirs=/appl/libperl'
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=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-D_REENTRANT -fno-strict-aliasing -pipe
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O',
cppflags='-D_REENTRANT -fno-strict-aliasing -pipe -I/usr/local/include'
ccversion='', gccversion='3.4.2', gccosandvers='solaris2.9'
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, prototype=define
Linker and Libraries:
ld='gcc', ldflags =' -L/usr/local/lib '
libpth=/usr/local/lib /usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -ldl -lm -lpthread -lc
perllibs=-lsocket -lnsl -ldl -lm -lpthread -lc
libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES
PERL_IMPLICIT_CONTEXT
Built under solaris
Compiled at Dec 17 2004 10:25:04
@INC:
/appl/perl/lib/5.8.5/sun4-solaris-thread-multi
/appl/perl/lib/5.8.5
/appl/perl/lib/site_perl/5.8.5/sun4-solaris-thread-multi
/appl/perl/lib/site_perl/5.8.5
/appl/perl/lib/site_perl
/appl/libperl
.
--------------------------------------------------
=============
core 'core.first_run' of 1969: /appl/perl/bin/perl -w
/appl/spyagent/bin/ifdbagent.pl -f /appl/spyage
----------------- lwp# 6 / thread# 6 --------------------
0004f2d0 Perl_op_free (153345d0, 780a18, 13, 1d6db260, 42c, 21) + 138
0005866c Perl_cv_undef (153345d0, 24f58928, 0, 80003, 73000000, 99f38) + e0
00099ba4 Perl_sv_clear (153345d0, 24f58928, 0, ffffffff, 1d6db260, 10a) + 4d4
0009a100 Perl_sv_free (153345d0, 24f58928, 1af501bc, 1af50818, 20aa31c8, 10) +
174
000b7c50 Perl_free_tmps (153345d0, 24f58898, 1b26ef60, 208aa914, 19, 4) + 58
00087530 Perl_pp_nextstate (153345d0, 208aa920, 80, 0, 208aa924, 208aa918) + 54
0008744c Perl_runops_standard (153345d0, fc000, 0, 7efefeff, 0, 4040000) + 2c
0002a988 S_call_body (153345d0, fe97bf00, 0, 153345d0, 153345d0, 153345d0) + 50
0002a6cc Perl_call_sv (153345d0, 1b26d75c, 0, 0, 0, 0) + 4a4
fef029f0 Perl_ithread_run (171ef0e0, 0, 0, 0, 0, 0) + 1a4
ff1f57b4 _lwp_start (0, 0, 0, 0, 0, 0)
----------------- lwp# 7 / thread# 7 --------------------
0008ff0c Perl_pp_entersub (1921f1e0, 220d08d8, 80, 0, 220d08dc, 220d08d4) + 6f0
0008744c Perl_runops_standard (1921f1e0, fc000, 0, 7efefeff, 0, 4040000) + 2c
0002a988 S_call_body (1921f1e0, fe87bf00, 0, 1921f1e0, 1921f1e0, 1921f1e0) + 50
0002a6cc Perl_call_sv (1921f1e0, 1f157a2c, 0, 0, 0, 0) + 4a4
fef029f0 Perl_ithread_run (1b0da578, 0, 0, 0, 0, 0) + 1a4
ff1f57b4 _lwp_start (0, 0, 0, 0, 0, 0)
----------------- lwp# 1 / thread# 1 --------------------
ff19fc3c _lwp_wait (2, ffbffa74, fef01dfc, fef00c70, 1, 9fb958) + 8
ff1e90e8 _thrp_join (2, 0, ffbffadc, 1, 812938, 0) + 44
fef03658 Perl_ithread_join (1307f0, 45b8800, 8e9b0c, 610b28, 3f, a0d460) + 134
fef0402c XS_threads_join (1307f0, 884280, ffbffbdc, 1, 1010501, 82ec80) + a4
0008fdc0 Perl_pp_entersub (1307f0, a0d490, 80, 95fd90, a0d490, 0) + 5a4
0008744c Perl_runops_standard (1307f0, 800000, 0, 0, 12c, 1402e0) + 2c
00029ed8 S_run_body (1307f0, 1, 1307f0, 5, 1307f0, 0) + 138
00029b24 perl_run (1307f0, 1, 5, ffbffe74, 12e400, 2) + 8c
000263e8 main (5, ffbffe74, ffbffe8c, 1307d8, 0, 0) + b0
000261d0 _start (0, 0, 0, 0, 0, 0) + 5c
----------------- lwp# 2 / thread# 2 --------------------
ff1f59b0 lwp_yield (ff1d0200, 6, 1, ff1bc000, 0, 0) + 8
ff1f2650 pthread_mutex_unlock (ff1c05a8, ff1d0200, 0, ff1bc000, 0, 0) + 148
ff146e44 malloc (76cfde8, 4, 0, 0, 0, 0) + 2c
000744ac Perl_safesysmalloc (d, 0, 0, 0, 4, 0) + 24
00092718 Perl_sv_grow (0, 22eb5f04, d, 22eb5f04, 74, 979b4) + 10c
000974f8 Perl_sv_setsv_flags (a029f0, 22eb5f04, b6119e8, 4040304, 81010100,
b6117d8) + 1308
000878e4 Perl_pp_sassign (a029f0, b6cd8e0, 80, 0, b6cd8ec, b6cd8d4) + 9c
0008744c Perl_runops_standard (a029f0, b601548, 63, 5, 0, 0) + 2c
00032bd4 Perl_amagic_call (a029f0, b3bb0f4, 22eb5d18, 6, b6cd8e0, 1) + b10
0008870c Perl_pp_add (a029f0, 3, 1d339e09, 495380, 0, 0) + 84
0008744c Perl_runops_standard (a029f0, fc000, 0, 7efefeff, 0, 4040000) + 2c
0002a988 S_call_body (a029f0, fed7bf00, 0, a029f0, a029f0, a029f0) + 50
0002a6cc Perl_call_sv (a029f0, b6bea60, 0, 0, 0, 0) + 4a4
fef029f0 Perl_ithread_run (45b8800, 0, 0, 0, 0, 0) + 1a4
ff1f57b4 _lwp_start (0, 0, 0, 0, 0, 0)
----------------- lwp# 3 / thread# 3 --------------------
ff1f58f8 __lwp_park (ff208b44, 0, ff1c05a8, ff208000, 2533dbe1, 4040804) + 14
ff1f206c slow_lock (ff1c05a8, ff1d0400, 0, ff1bc000, 8, 4040000) + 58
ff146e30 malloc (8, 4, fec7bad8, 4, 23e23140, 1d3d6cb0) + 18
000744ac Perl_safesysmalloc (8, 24119e20, a, 244861d0, 244861d0, 1d3d6cb0) + 24
00085250 Perl_av_make (24119e20, 2, 2448619c, f3408da, 244861a4, 244861a0) + 58
000b5014 Perl_pp_anonlist (853faa0, f33fad0, 0, 17, f5963f0, 2e) + 34
0008744c Perl_runops_standard (853faa0, fc000, 0, 7efefeff, 0, 4040000) + 2c
0002a988 S_call_body (853faa0, fec7bf00, 0, 853faa0, 853faa0, 853faa0) + 50
0002a6cc Perl_call_sv (853faa0, f5a9798, 0, 0, 0, 0) + 4a4
fef029f0 Perl_ithread_run (b6c2c08, 0, 0, 0, 0, 0) + 1a4
ff1f57b4 _lwp_start (0, 0, 0, 0, 0, 0)
----------------- lwp# 4 / thread# 4 --------------------
ff1f58f8 __lwp_park (ff208b44, 0, ff1c05a8, ff208000, 252a38aa, 4040804) + 14
ff1f206c slow_lock (ff1c05a8, ff1d0600, 0, ff1bc000, 2d, 4040000) + 58
ff146e30 malloc (8, 4, feb7bad8, 4, 1d8c3780, 20b2d2a8) + 18
000744ac Perl_safesysmalloc (8, 2438daf8, a, 20b799dc, 20b799dc, 20b2d2a8) + 24
00085250 Perl_av_make (2438daf8, 2, 20b799a4, 13224ee2, 20b799ac, 20b799a8) +
58
000b5014 Perl_pp_anonlist (d55f248, 1322abf8, 0, 1a, 13480b90, 2e) + 34
0008744c Perl_runops_standard (d55f248, fc000, 0, 7efefeff, 0, 4040000) + 2c
0002a988 S_call_body (d55f248, feb7bf00, 0, d55f248, d55f248, d55f248) + 50
0002a6cc Perl_call_sv (d55f248, 13462c7c, 0, 0, 0, 0) + 4a4
fef029f0 Perl_ithread_run (f5ad430, 0, 0, 0, 0, 0) + 1a4
ff1f57b4 _lwp_start (0, 0, 0, 0, 0, 0)
----------------- lwp# 5 / thread# 5 --------------------
ff1f58f8 __lwp_park (ff208b44, 0, ff1c05a8, ff208000, 0, 17116a28) + 14
ff1f206c slow_lock (ff1c05a8, ff1d0800, 0, ff1bc000, 73, 76) + 58
ff147ce8 free (252863d8, 76, ffffffff, 114ec6, 171ca750, 17115044) + 18
00074674 Perl_safesysfree (252863d8, 22a7e31c, ffffffff, 229739dc, 252863d8,
252863d8) + 10
00103cf8 S_mergesortsv (11448ec8, 25287508, 25286c6c, 10525c, 25286c70,
ffffffff) + 4f0
00104624 Perl_sortsv (11448ec8, 229728ac, 44c, 10525c, 1738cac8, 0) + 64
00104e64 Perl_pp_sort (11448ec8, 0, 0, 0, 0, 0) + 82c
0008744c Perl_runops_standard (11448ec8, fc000, 0, 7efefeff, 0, 4040000) + 2c
0002a988 S_call_body (11448ec8, fea7bf00, 0, 11448ec8, 11448ec8, 11448ec8) + 50
0002a6cc Perl_call_sv (11448ec8, 1734d73c, 0, 0, 0, 0) + 4a4
fef029f0 Perl_ithread_run (13304578, 0, 0, 0, 0, 0) + 1a4
ff1f57b4 _lwp_start (0, 0, 0, 0, 0, 0)