I have an error of type C, where pretty much everything in make test fails. Please advise. Manual bugreport attached.
Thanks...
Thanks for providing the information as requested. I've done some (but not much) snippage.
It's pretty unusual to have this big of a problem on Solaris; that's where DBD::Informix gets developed, so problems are usually pretty simple.
This one isn't; I've not seen the trouble before.
AFAICT, you're using the system-provided perl 5.6.1 from /usr/bin...well, maybe. You're using a perl from /usr/bin, but it seems to be configured to put its materials under /usr/local...
So, it is locally provided?
I'd recommend upgrading to perl 5.8.2, but I don't know that's critical to your problem.
The version of ESQL/C is what I'm currently using. Your server is a bit old - to be polite about it. You should be on 7.31.UD6 - or migrate to 7.31.UD7 when it becomes avalable later this month. The problem is, however, unrelated to your server version - you're not getting anywhere near that!
Your Perl setup spots two copies of DBI code - one from the days of 5.5.3 - which your Perl seems to be set up to use when it can't find stuff built for 5.6.1. I don't know whether that is part of the trouble - but I would recommend looking at some housekeeping. (Personally, I've always decided that using prior versions was dodgy, and go through automated hell when I install a new version of Perl recompiling the latest version of everything; that's not a recommendation therefore.)
When the tests are run, you get:
> t/t00basic..........dubious
> Test returned status 0 (wstat 138, 0x8a)
> Prototype mismatch: sub Test::Harness::_LARGEFILE_SOURCE vs () at (eval 24) line 1.
> Executing /usr/bin/adb "/usr/bin/perl" "core" ($c)...
> core file = core -- program ``perl'' on platform SUNW,Ultra-5_10
> SIGBUS: Bus Error
> _sqs_vs() + 60
> data address not found
>
>
> DIED. FAILED tests 5-41
> Failed 37/41 tests, 9.76% okay
So, it appears that we fail a little after starting up because 4 tests worked. The driver loaded and connected to the database; we got some information out; we disconnected (twice, but that's deliberate), and maybe reconnected and ran into a core dump.
The prototype mismatch message worries me a bit - but it might be harmless. However, I think that only appears after/because things have already gone wrong.
What happens when you run the test manually? The test.one.sh script does that correctly for you:
$ sh test.one.sh t/t00basic.t
What's the output from that? If the problem isn't self-evident, try including PERL_DBI_DEBUG=9 in the environment too:
$ PERL_DBI_DEBUG=9 sh test.one.sh t/t00basic.t 2>&1 | tee t00.log
Send me - not the list - the output.
Have you built any other ESQL/C programs that work with this database? I'm puzzled, puzzled enough to wonder whether there is a funny issue because of the 7.31.UC2A version on the server. That indicates some sort of patch port, and UC2 is a really old release in the 7.31 family; the UDn series of releases is several years old (I have UD3 or UD5, I forget which, from late last year).
Offhand, I don't remember what _sqs_vs() does, but it is probably in the communications code. That's why I asked about other ESQL/C programs. If you don't have any and do have a moment to spare, try downloading SQLCMD from the IIUG web site (http://www.iiug.org/software) and see whether it works OK. It shares some code (and the author) with DBD::Informix, so if it crashes too, we can point fingers outside DBD::Informix, maybe.
------------------------------------------------------------------------
# perl -V Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration: Platform: osname=solaris, osvers=2.7, archname=sun4-solaris uname='sunos billdev 5.7 generic_106541-18 sun4u sparc sunw,ultra-5_10 ' config_args='' 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='cc', ccflags ='-I/usr/local/include -I/opt/SUNWspro/SC5.0/include/cc -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O', cppflags='-I/usr/local/include -I/opt/SUNWspro/SC5.0/include/cc -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccversion='WorkShop Compilers 5.0 98/12/15 C 5.0', 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=n, prototype=define Linker and Libraries: ld='/usr/ccs/bin/ld', ldflags =' -L/usr/local/lib -L/opt/SUNWspro/SC5.0/lib -L/opt/SUNWspro/lib -L/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2 -R/opt/SUNWspro/lib' libpth=/usr/local/lib /opt/SUNWspro/SC5.0/lib /usr/lib /usr/ccs/lib /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2 libs=-lsocket -lnsl -lgdbm -ldb -ldl -lm -lc -lcrypt -lsunmath -lgcc perllibs=-lsocket -lnsl -ldl -lm -lc -lcrypt -lsunmath -lgcc 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 -L/usr/local/lib -L/opt/SUNWspro/SC5.0/lib -L/opt/SUNWspro/lib -L/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2 -R/opt/SUNWspro/lib'
Characteristics of this binary (from libperl): Compile-time options: USE_LARGE_FILES Built under solaris Compiled at Feb 22 2003 05:58:08 @INC: /usr/local/lib/perl5/5.6.1/sun4-solaris /usr/local/lib/perl5/5.6.1 /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl/5.005 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.00503/sun4-solaris /usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/site_perl/5.005/sun4-solaris . # esql -V IBM Informix CSDK Version 2.81, IBM Informix-ESQL Version 9.53.UC2 Software Serial Number RDS#N000000 # exit bash-2.03# esql -V IBM Informix CSDK Version 2.81, IBM Informix-ESQL Version 9.53.UC2 Software Serial Number RDS#N000000 bash-2.03# onstat -V Informix Dynamic Server Version 7.31.UC2A Software Serial Number XXXXXXXXXX bash-2.03# cd ~informix/etc bash-2.03# more sqlhosts [...snippage...]
#demo_on onipcshm on_hostname on_servername #demo_se seipcpip se_hostname sqlexec #buffytcp ontlitcp buffy.cerf.net buffytcp cerfscope_buffy ontlitcp buffy.cerf.net cerfscope_buffy billdevdb ontlitcp billdev.san.cerf.net billdevdb billdevdbugn ontlitcp billdev.web.att.com billdevdbugn #billdev onipcshm billdev.san.cerf.net billdev bash-2.03# grep billdev /etc/services billdevdb 2555/tcp # Informix Server tcp connection on this Server #billdevdbugn 2556/tcp # Informix Server tcp connection on this Server bash-2.03# env | sort DBD_INFORMIX_PASSWORD=XXXXXXXX DBD_INFORMIX_USERNAME=esserma DBI_DBNAME=usagedb2 DBNAME=cerf_ar DBPATH=/export/home/finance/lib/forms HOME=/opt/Tivoli HOSTNAME=billdev HOSTTYPE=sparc HZ= INFORMIXDIR=/export/home/informix INFORMIXSERVER=billdevdb LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/export/home/informix/lib:/export/home/informix/lib/cli:/export/home/informix/lib/esql:/export/home/openlink/lib:/export/home/openlink/odbcsdk/lib LOGNAME=root MACHTYPE=sparc-sun-solaris2.7 MANPATH=/usr/dt/share/man:/usr/share/man:/usr/openwin/share/man:/usr/demo/link_audit/man:/usr/java1.2/man:/usr/opt/SUNWste/license_tools/man:/usr/opt/SUNWste/man:/usr/opt/SUNWspro/SC5.0/man:/usr/opt/SUNWspro/man:/usr/opt/SUNWspro/man/man:/usr/opt/SUNWspro/contrib/XEmacs20.4/man:/usr/opt/SUNWspro/contrib/XEmacs20.4/src/editor/man:/usr/opt/SUNWspro/TW2.1/man:/usr/opt/SUNWspro/WS5.0/man:/usr/opt/SUNWspro/SPROutool5.0/man:/usr/local/106960-01/SUNWman/reloc/share/man:/usr/local/107022-05/SUNWdtma/reloc/dt/share/man:/usr/local/apache/man:/usr/local/lib/perl5/5.00503/man:/usr/local/man:/usr/local/openssl/man:/usr/local/rrdtool-1.0.45/man:/usr/ar/api/man ODBCINI=/export/home/informix/etc/odbc.ini ODBCINSTINI=/export/home/informix/etc/odbcinst.ini OLDPWD=/export/home/esserma/DBD-Informix-2003.04 OSTYPE=solaris2.7 PATH=/usr/bin:/usr/sbin:/sbin:/opt/bin:/export/home/finance/bin:/export/home/informix/bin:/opt/SUNWspro/bin:/export/home/openlink/bin:/usr/local/bin PWD=/export/home/informix/etc SHELL=/sbin/sh SHLVL=1 SM_DISKDEV1=/export/home/informix/ism/devices/spaces SM_DISKDEV2=/export/home/informix/ism/devices/logs SSLROOT=/usr/local TERM=vt100 TZ=GMT _=/usr/bin/env fg=/export/home/finance bash-2.03# pwd /export/home/informix/etc bash-2.03# cd - /export/home/esserma/DBD-Informix-2003.04 bash-2.03# perl Makefile.PL *** ExtUtils::AutoInstall version 0.55 *** Checking for dependencies... [Core Features] - DBI ...loaded. (1.39 >= 1.33) [High Resolution Timing] - Time::HiRes ...loaded. (1.47) *** ExtUtils::AutoInstall configuration finished. Subroutine WriteMakefile redefined at /usr/local/lib/perl5/site_perl/5.6.1/ExtUtils/AutoInstall.pm line 459.
Configuring IBM Informix Database Driver for Perl Version 2003.04 (2003-03-05) (aka DBD::Informix) You are using DBI version 1.39 and Perl version 5.006001 Remember to actually read the README file!
Perl: perl5.006001 sun4-solaris dl_dlopen.xs System: sunos billdev 5.7 generic_106541-18 sun4u sparc sunw,ultra-5_10 Compiler: cc -O -I/usr/local/include -I/opt/SUNWspro/SC5.0/include/cc -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 Loader: /usr/ccs/bin/ld
See notes about SPARCompiler on Solaris in Notes/solaris
Using IBM Informix CSDK Version 2.81, IBM Informix-ESQL Version 9.53.UC2 from /export/home/informix
Beware: DBD::Informix is not yet aware of all the new IUS data types.
Assert macro will be disabled!
lib/DBD/Informix/Defaults.pm written OK esqlvrsn.h written OK esqlinfo.h written OK
Testing whether your Informix test environment will work... ESQLTEST Program Running: @(#)$Id: esqltest.ec,v 100.3 2002/02/08 22:49:23 jleffler Exp $ $INFORMIXDIR is set to '/export/home/informix'. $INFORMIXSERVER is set to 'billdevdb'. $DBI_DBNAME set to 'usagedb2'. $DBD_INFORMIX_DATABASE unset - defaulting to 'usagedb2'. $DBD_INFORMIX_DATABASE2 unset - defaulting to 'usagedb2'. $DBD_INFORMIX_USERNAME is set to 'esserma'. $DBD_INFORMIX_USERNAME2 is unset - defaulting to 'esserma'. $DBD_INFORMIX_PASSWORD is set. $DBD_INFORMIX_PASSWORD2 is unset - defaulting to $DBD_INFORMIX_PASSWORD. Testing connection to usagedb2 CONNECT TO 'usagedb2' with user info Testing concurrent connection to usagedb2 CONNECT TO 'usagedb2' with user info Your Informix environment is (probably) OK
Uh oh! We're on a machine which does not use the C compiler to create shared libraries. Please consider recompiling Perl using the C compiler to create shared libraries; it makes life much easier for everyone!
Fortunately, you are using a new version of ESQL/C. We could use 'esql -libs' to tell us which libraries to use, except that some versions of the esql script are very Clintonian and do not tell us the whole truth. So we have to do a fiddly workaround, editing the esql script on the fly and feeding the edited version to the shell and ... Oh, you really don't want to know what we do; it's horrid but it works, usually! ... We are going to use the library list: -lifsql -lifasf -lifgen -lifos -lifgls -lnsl -lsocket -laio -lm -ldl -lelf /export/home/informix/lib/esql/checkapi.o -lifglx
Multiple copies of Driver.xst found in: /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/auto/DBI /usr/local/lib/perl5/site_perl/5.005/sun4-solaris/auto/DBI at Makefile.PL line 47 Using DBI 1.39 installed in /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/auto/DBI Writing Makefile for DBD::Informix bash-2.03# make Skip blib/lib/DBD/Informix/TestHarness.pm (unchanged) [...snippage...] Manifying blib/man3/DBD::Informix.3 bash-2.03# make test /bin/sh -c true /bin/sh -c true PERL_DL_NONLAZY=1 /usr/bin/perl -Iblib/arch -Iblib/lib -I/usr/local/lib/perl5/5.6.1/sun4-solaris -I/usr/local/lib/perl5/5.6.1 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/t00basic.t t/t01stproc.t t/t02ixtype.t t/t05dbase.t t/t07dblist.t t/t09exec.t t/t10sqlca.t t/t12bindval.t t/t13bindref.t t/t14bindcol.t t/t15bindtyp.t t/t20error.t t/t21mconn.t t/t22mconn.t t/t23mconn.t t/t24mcurs.t t/t25dratt.t t/t28dtlit.t t/t29update.t t/t30update.t t/t31nulls.t t/t32nulls.t t/t35cursor.t t/t40rows.t t/t41txacoff.t t/t42txacon.t t/t43trans.t t/t44txansi.t t/t46chpblk.t t/t50update.t t/t51getinfo.t t/t53types.t t/t54native.t t/t55mdata.t t/t56tabinfo.t t/t57tables.t t/t58typeinfoall.t t/t60unlog.t t/t65updcur.t t/t66insert.t t/t72blob.t t/t73blobupd.t t/t74blob.t t/t75blob.t t/t76blob.t t/t90ius.t t/t91udts.t t/t92rows.t t/t93lvarchar.t t/t94bool.t t/t99clean.t t/t00basic..........dubious Test returned status 0 (wstat 138, 0x8a) Prototype mismatch: sub Test::Harness::_LARGEFILE_SOURCE vs () at (eval 24) line 1. Executing /usr/bin/adb "/usr/bin/perl" "core" ($c)... core file = core -- program ``perl'' on platform SUNW,Ultra-5_10 SIGBUS: Bus Error _sqs_vs() + 60 data address not found
DIED. FAILED tests 5-41 Failed 37/41 tests, 9.76% okay t/t01stproc.........dubious Test returned status 0 (wstat 138, 0x8a) Executing /usr/bin/adb "/usr/bin/perl" "core" ($c)... core file = core -- program ``perl'' on platform SUNW,Ultra-5_10 SIGBUS: Bus Error _sqs_vs() + 60 data address not found
DIED. FAILED tests 2-9 Failed 8/9 tests, 11.11% okay t/t02ixtype.........^Cmake: *** [test_dynamic] Error 130
#################################################################### make test with GDB 4.14 (old version):
bash-2.03# make test /bin/sh -c true /bin/sh -c true PERL_DL_NONLAZY=1 /usr/bin/perl -Iblib/arch -Iblib/lib -I/usr/local/lib/perl5/5.6.1/sun4-solaris -I/usr/local/lib/perl5/5.6.1 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/t00basic.t t/t01stproc.t t/t02ixtype.t t/t05dbase.t t/t07dblist.t t/t09exec.t t/t10sqlca.t t/t12bindval.t t/t13bindref.t t/t14bindcol.t t/t15bindtyp.t t/t20error.t t/t21mconn.t t/t22mconn.t t/t23mconn.t t/t24mcurs.t t/t25dratt.t t/t28dtlit.t t/t29update.t t/t30update.t t/t31nulls.t t/t32nulls.t t/t35cursor.t t/t40rows.t t/t41txacoff.t t/t42txacon.t t/t43trans.t t/t44txansi.t t/t46chpblk.t t/t50update.t t/t51getinfo.t t/t53types.t t/t54native.t t/t55mdata.t t/t56tabinfo.t t/t57tables.t t/t58typeinfoall.t t/t60unlog.t t/t65updcur.t t/t66insert.t t/t72blob.t t/t73blobupd.t t/t74blob.t t/t75blob.t t/t76blob.t t/t90ius.t t/t91udts.t t/t92rows.t t/t93lvarchar.t t/t94bool.t t/t99clean.t t/t00basic..........dubious Test returned status 0 (wstat 138, 0x8a) Prototype mismatch: sub Test::Harness::_LARGEFILE_SOURCE vs () at (eval 24) line 1. Executing /usr/local/bin/gdb "/usr/bin/perl" "core" (bt)... GDB is free software and you are welcome to 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. GDB 4.14 (sparc-sun-solaris2), Copyright 1995 Free Software Foundation, Inc... (no debugging symbols found)... Core was generated by `/usr/bin/perl -w t/t00basic.t'. Program terminated with signal 10, Bus error. "/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1": not in executable format: File format not recognized. #0 0xff0bdfb4 in _END_ () (gdb) #0 0xff0bdfb4 in _END_ () #1 0xff0bdf74 in _END_ () #2 0xff0a7204 in _END_ () #3 0xff0a6e10 in _END_ () #4 0xff10dfd0 in _END_ () #5 0xff10e5d8 in _END_ () #6 0xff1072a0 in _END_ () #7 0xff13c844 in _END_ () #8 0x82db0 in Perl_pp_entersub () #9 0x7a168 in Perl_runops_standard () #10 0x25400 in perl_call_sv () #11 0xff13c990 in _END_ () #12 0x82db0 in Perl_pp_entersub () #13 0x7a168 in Perl_runops_standard () #14 0x24e28 in S_run_body () #15 0x24b08 in perl_run () #16 0x21864 in main () (gdb) DIED. FAILED tests 5-41 Failed 37/41 tests, 9.76% okay t/t01stproc.........dubious [...snippage...] (gdb) DIED. FAILED tests 2-9 Failed 8/9 tests, 11.11% okay t/t02ixtype.........ok t/t05dbase..........^Cmake: *** [test_dynamic] Error 130 [...snippage...]
t/t02ixtype.t does not mess with the database, so the fact that it passed is unlikely to be significant.
--
Jonathan Leffler ([EMAIL PROTECTED], [EMAIL PROTECTED]) #include <disclaimer.h>
Guardian of DBD::Informix v2003.04 -- http://dbi.perl.org/
