Subject: | Segmentation fault by [ t/01logon ] on sun4-solaris-thread-multi-64int |
Perl Version (having thread support) : 5.8.8 with DBI-1.54 and
DBD-SQLite-1.14
Platform :
osname=solaris, osvers=2.10, archname=sun4-solaris-thread-multi-64int
There is core dump when t/01logon.t is run :
--------------------------------------------
bash-3.00# perl t/01logon.t
1..5
# Running under perl version 5.008008 for solaris
# Current time local: Sat May 17 18:45:08 2008
# Current time GMT: Sat May 17 13:15:08 2008
# Using Test.pm version 1.25
Segmentation Fault (core dumped)
Core file analysis:
------------------
bash-3.00# mdb core
Loading modules: [ libc.so.1 ld.so.1 ]
Stack-Trace:
-----------
Show quoted text
> $c
SQLite.so`XS_DBD__SQLite__db__login+0x350(14ebc0, 1d8588, 14ebc0,
ffffffff, 2230b0, 2230c0)
Perl_pp_entersub+0x684(22c710, 0, 14ebc0, 1d8588, 2230c0, 14ebc0)
Perl_runops_standard+0x40(14ebc0, ffbff6f0, 0, fffffff8, 0, ffbff719)
Perl_call_sv+0x260(0, ffbff6f0, 0, 0, 22c914, 14ebc0)
DBI.so`XS_DBI_dispatch+0x233c(0, ff070194, 1587fc, 28be70, 284360, 21c320)
Perl_pp_entersub+0x684(2f15d0, 0, 14ebc0, 2f15d0, 2230c4, 14ebc0)
Perl_runops_standard+0x40(14ebc0, ff400000, ffc00000, 800000, 14ebc0, 0)
S_run_body+0x194(14ebc0, 1, 14ebc0, 149400, ff3a2000, 2)
perl_run+0x22c(14ebc0, 14ebc0, 2, ffbffcfc, 0, 14ebc0)
main+0xbc(2, 14c808, ffbffcfc, 140c00, ff3a0100, ff3a0140)
_start+0xb8(0, 0, 0, 0, 0, 0)
Regs-Values:
-----------
Show quoted text> $r
%g0 = 0x00000000 %l0 = 0x00000000
%g1 = 0x0014e800 perl`PerlIO_fd_refcnt+0x1c70 %l1 = 0x00000004
%g2 = 0x00220ff8 %l2 = 0x002230b0
%g3 = 0x0000000a %l3 = 0x00000000
%g4 = 0x00000004 %l4 = 0x00000000
%g5 = 0x7ff00000 %l5 = 0x00000000
%g6 = 0x00000000 %l6 = 0x00000000
%g7 = 0xff3a2000 %l7 = 0xfefc79c8
%o0 = 0x0021b67c %i0 = 0x0014ebc0
%o1 = 0xfefb29b0 SQLite.so`.L3645 %i1 = 0x001d8588
%o2 = 0x00000005 %i2 = 0x0014ebc0
%o3 = 0x00000004 %i3 = 0xffffffff
%o4 = 0x00000000 %i4 = 0x002230b0
%o5 = 0xff3a2100 %i5 = 0x002230c0
%o6 = 0xffbff420 %i6 = 0xffbff4d8
%o7 = 0xfef12e1c SQLite.so`XS_DBD__SQLite__db__login+0x33c %i7 =
0x0009c300 Perl_pp_entersub+0x684
%psr = 0xfe001002 impl=0xf ver=0xe icc=nzvc
ec=0 ef=4096 pil=0 s=0 ps=0 et=0 cwp=0x2
%y = 0x00000000
%pc = 0xfef12e30 SQLite.so`XS_DBD__SQLite__db__login+0x350
%npc = 0xfef12e34 SQLite.so`XS_DBD__SQLite__db__login+0x354
%sp = 0xffbff420
%fp = 0xffbff4d8
%wim = 0x00000000
%tbr = 0x00000000
---------------------------------------------------------------------
First I thought it is something to with memory-alignment issue of sqlite
on the sol-sparc system but it seems those things are already taken care
of (saw guard bytes related code).
As debuged so far it seems to die under XS_DBD__SQLite__db__login at
D_imp_dbh. Although in the stack trace there are no further call refrences.
-------------------------------------------------------
215 XS(XS_DBD__SQLite__db__login)
216 {
...
235 D_imp_dbh(dbh);
-------------------------------------------------------
Would appreciate if there is any clue on the possible fix.