Marc Esser wrote:
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/




Reply via email to