BUG #7968: Perl DBI segfaults in connect() - Mailing list pgsql-bugs
From | mperilstein@trueposition.com |
---|---|
Subject | BUG #7968: Perl DBI segfaults in connect() |
Date | |
Msg-id | E1UHchV-0001rX-Tx@wrigleys.postgresql.org Whole thread Raw |
Responses |
Re: BUG #7968: Perl DBI segfaults in connect()
|
List | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 7968 Logged by: Mitchell Perilstein Email address: mperilstein@trueposition.com PostgreSQL version: 9.1.5 Operating system: SPARC Solaris 10 Description: = Summary: A perl DBI/DBD client makes a connect() call to a db server in down or restarting state and coredumps. There was a similar stack trace reported in 2011 but not exactly. I can probably reproduce this more succinctly with a testcase if needed. This code (part of Bucardo) was the call: $dbh =3D DBI->connect ( $dsn, $user, $pass, {AutoCommit=3D>0, RaiseError=3D>1, PrintError=3D>0} ); The perl caller logs this and crashes: DBI connect('dbname=3DTPLocationGateway;port=3D5432;host=3Dtplocalvirt','tpadmi= n',...) failed: = FATAL: database "TPLocationGateway" does not exist at /tpapp/tpdb/lib/perl5/Bucardo.pm line 4936 The Solaris coredump looks like this: # pstack core core 'core' of 18694: perl /tpapp/tpdb/bin/bucardo --log-destination=3D/tpdata/tpdb/logs --log fed60fb0 pg_warn (0, ae3648, 5fb0f0, 2d764, aa0f20, fed60f78) + 38 fed27174 pqGetErrorNotice3 (adb080, 11000, 0, abf545, 0, ffbfed0c) + 4fc fed260a8 pqParseInput3 (adb080, adb3f4, 4, ffbfed78, fed431ac, 282019) + 168 fed1db30 PQgetResult (adb080, adb080, 1, 2000000, 128808, fed431ac) + c4 fed726a8 handle_old_async (4bada0, a75548, 1000000, 8000000, 64, fed8e6e0) + 5c4 fed6d088 pg_st_destroy (4bada0, adcf20, 0, 217ec, fed8e6e0, a75548) + 198 fed59af8 XS_DBD__Pg__st_DESTROY (128808, 4, 803948, fed8e6e0, 2245c, 4bada0) + 304 feecec58 XS_DBI_dispatch (803948, c06a8, feeda8b0, feeec0a4, 0, 22460) + 20f0 ff2a7634 Perl_pp_entersub (c0db4, 0, ffc00000, c2538, ffbff5a0, ff348000) + 6fc ff269c2c S_call_body (ffbff5a0, 0, 3000, de41c, 529e50, ff35d978) + 54 ff2698c0 Perl_call_sv (2c00, 2c00, 3050, 26e3c, ff35b3e4, ff35b3c8) + 9cc ff2f0f8c Perl_sv_clear (8147b0, 3000, 3000, 124be0, ff348000, 41) + 280 ff2f18d0 Perl_sv_free (8147b0, ff2f0c98, 568f8, 8, 0, 8147b0) + 1d8 ff2f14a8 Perl_sv_clear (501f2c, 7d4, ff2f15a8, 0, ff348000, 3000) + 79c ff2f18d0 Perl_sv_free (501f2c, 7d4, 568f8, ff, 0, 501f2c) + 1d8 ff245628 Perl_mg_free (a5c894, ff35b398, 0, b, 2000900b, 5ffdb8) + ac ff2f121c Perl_sv_clear (a5c894, 1, 2c00, ff35d97c, ff348000, 0) + 510 ff2f18d0 Perl_sv_free (a5c894, 5fb428, 568f8, ff2e69e4, 0, a5c894) + 1d8 ff2e692c S_visit (ff2e6968, 5fb428, 5fb668, 5fb278, ff348000, 1d7) + 80 ff2e6b28 Perl_sv_clean_objs (2f80, 1, ff34b560, ff348000, 61514, 2c00) + 48 ff264c84 perl_destruct (0, 3400, 0, 1, ff35b3ec, 3400) + 2f8 00011050 main (8, ffbffaf4, 0, 22400, 22420, 22400) + b4 00010f84 _start (0, 0, 0, 0, 0, 0) + 108 # pflags core core 'core' of 18694: perl /tpapp/tpdb/bin/bucardo --log-destination=3D/tpdata/tpdb/logs --log data model =3D _ILP32 flags =3D MSACCT|MSFORK /1: flags =3D 0 sigmask =3D 0xffffbefc,0x0000ffff cursig =3D SIGSEGV Solaris (but we've seen it on similar boxes): # uname -a SunOS WilWlg1 5.10 Generic_147440-25 sun4v sparc sun4v Perl v5.8.4 : # perl -V Summary of my perl5 (revision 5 version 8 subversion 4) configuration: Platform: osname=3Dsolaris, osvers=3D2.10, archname=3Dsun4-solaris-64int uname=3D'sunos localhost 5.10 sun4u sparc SUNW,Ultra-2' config_args=3D'' hint=3Drecommended, useposix=3Dtrue, d_sigaction=3Ddefine usethreads=3Dundef use5005threads=3Dundef useithreads=3Dundef usemultiplicity=3Dundef useperlio=3Ddefine d_sfio=3Dundef uselargefiles=3Ddefine usesocks= =3Dundef use64bitint=3Ddefine use64bitall=3Dundef uselongdouble=3Dundef usemymalloc=3Dn, bincompat5005=3Dundef Compiler: cc=3D'cc', ccflags =3D'-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=3D64 -xarch=3Dv8 -D_TS_ERRNO', optimize=3D'-xO3 -xspace -xildoff', cppflags=3D'' ccversion=3D'Sun WorkShop', gccversion=3D'', gccosandvers=3D'' intsize=3D4, longsize=3D4, ptrsize=3D4, doublesize=3D8, byteorder= =3D87654321 d_longlong=3Ddefine, longlongsize=3D8, d_longdbl=3Ddefine, longdbls= ize=3D16 ivtype=3D'long long', ivsize=3D8, nvtype=3D'double', nvsize=3D8, Off_t=3D'off_t', lseeksize=3D8 alignbytes=3D8, prototype=3Ddefine Linker and Libraries: ld=3D'cc', ldflags =3D'' libpth=3D/lib /usr/lib /usr/ccs/lib libs=3D-lsocket -lnsl -ldl -lm -lc perllibs=3D-lsocket -lnsl -ldl -lm -lc libc=3D/lib/libc.so, so=3Dso, useshrplib=3Dtrue, libperl=3Dlibperl.= so gnulibc_version=3D'' Dynamic Linking: dlsrc=3Ddl_dlopen.xs, dlext=3Dso, d_dlsymun=3Dundef, ccdlflags=3D'-R /usr/perl5/5.8.4/lib/sun4-solaris-64int/CORE' cccdlflags=3D'-KPIC', lddlflags=3D'-G' = = Characteristics of this binary (from libperl): = Compile-time options: USE_64_BIT_INT USE_LARGE_FILES Locally applied patches: 22667 The optree builder was looping when constructing the ops ... 22715 Upgrade to FileCache 1.04 22733 Missing copyright in the README. 22746 fix a coredump caused by rv2gv not fully converting a PV ... 22755 Fix 29149 - another UTF8 cache bug hit by substr. 22774 [perl #28938] split could leave an array without ... 22775 [perl #29127] scalar delete of empty slice returned garbage 22776 [perl #28986] perl -e "open m" crashes Perl 22777 add test for change #22776 ("open m" crashes Perl) 22778 add test for change #22746 ([perl #29102] Crash on assign ... 22781 [perl #29340] Bizarre copy of ARRAY make sure a pad op's ... 22796 [perl #29346] Double warning for int(undef) and abs(undef) ... 22818 BOM-marked and (BOMless) UTF-16 scripts not working 22823 [perl #29581] glob() misses a lot of matches 22827 Smoke [5.9.2] 22818 FAIL(F) MSWin32 WinXP/.Net SP1 (x86/1 cpu) 22830 [perl #29637] Thread creation time is hypersensitive 22831 improve hashing algorithm for ptr tables in perl_clone: ... 22839 [perl #29790] Optimization busted: '@a =3D "b", sort @a' ... 22850 [PATCH] 'perl -v' fails if local_patches contains code snippets 22852 TEST needs to ignore SCM files 22886 Pod::Find should ignore SCM files and dirs 22888 Remove redundant %SIG assignments from FileCache 23006 [perl #30509] use encoding and "eq" cause memory leak 23074 Segfault using HTML::Entities 23106 Numeric comparison operators mustn't compare addresses of ... 23320 [perl #30066] Memory leak in nested shared data structures ... 23321 [perl #31459] Bug in read() 27722 perlio.c breaks on Solaris/gcc when > 256 FDs are available SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962 6663288 Upgrade to CGI.pm 3.33 REGEXP0 - fix for UTF-8 recoding in regexps - CVE-2007-5116 6758953 Perl Sys::Syslog can log messages with wrong severity 6935710 patch 141552-01 causes an error when the Syslog perl module is used 6961567 CVE-2010-1168 - Safe.pm 2.24 and earlier may allow attackers to break out of safe compartment 7004391 CGI.pm needs update to filter newlines in headers (CVE-2010-2761, CVE-2010-4411) 7116936 Problem with utility/perl Built under solaris Compiled at Jan 8 2012 04:18:12 %ENV: PERL5LIB=3D"/tpapp/tpdb/lib/perl5" @INC: /tpapp/tpdb/lib/perl5/sun4-solaris-64int /tpapp/tpdb/lib/perl5 /usr/perl5/5.8.4/lib/sun4-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/sun4-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/sun4-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl . Interesting Modules: DBD-Pg-2.19.3 DBI-1.623 DBIx-Safe-1.2.5 Bucardo: git version e83e2e22e79c6cf6be5912925d50e271e02a886d approximately version 4.99.6 plus a little
pgsql-bugs by date: