Folks —

I'm having a problem getting a working *-perl/DBD-ODBC. I had one that
was working just fine, but un-merged unixODBC in a fit of pique, or
something. I re-emerged it, but then DBD-ODBC segfaults.

So, getting to debug I:

export LD_LIBRARY_PATH=/usr LANG="" ODBCHOME=/usr ; FEATURES="nostrip"
emerge -aDv DBD-ODBC :

...

Using ODBC in /usr

Umm, this looks like a unixodbc type of driver manager.
We expect to find the sql.h, sqlext.h and (which were
supplied with unixODBC) in $ODBCHOME/include directory alongside
the /usr/lib/libodbc.a /usr/lib/libodbc.so library in $ODBCHOME/lib

Warning: LD_LIBRARY_PATH doesn't include /usr

Checking if your kit is complete...
Looks good
Using DBI 1.601 (for perl 5.008008 on i586-linux) installed
in /usr/lib/perl5/vendor_perl/5.8.8/i586-linux/auto/DBI/ Using DBI
1.601 (for perl 5.008008 on i586-linux) installed
in /usr/lib/perl5/vendor_perl/5.8.8/i586-linux/auto/DBI/ Writing
Makefile for DBD::ODBC

The DBD::ODBC tests will use these values for the database connection:
    DBI_DSN=            e.g. dbi:ODBC:demo
    DBI_USER=
    DBI_PASS=
Warning: not all required environment variables are set.

[But these are just for the tests which aren't enabled anyway.]

. . . 

' isql -vv TREX user pass ' works just fine. So, unixODBC is working as
it should.

perl -MDBI -e 'use DBI; \
my $db=DBI->connect("dbi:mysql:dbtest","user","pass")'

... also works, so problem not with DBI.

Anyway, a simple script:

 perl -MDBI -e 'use DBI; \
my $db=DBI->connect("dbi:ODBC:TREX","_user","XXXXXX")'

Segmentation fault

I've tried different versions.... no joy. Always, the same result.

GDB output:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7dbd6c0 (LWP 23716)]
_SQLGetDiagRec (handleType=2, handle=<value optimized out>,
numRecord=1, szSqlState=0xbfdfee2e "", pfNativeError=0xbfdfee34, 
    szErrorMsg=0xbfdfec2e "", cbErrorMsgMax=511, pcbErrorMsg=0xbfdfee3a)
    at error.c:525
525     error.c: No such file or directory.
        in error.c
(gdb) bt'
#0  _SQLGetDiagRec (handleType=2, handle=<value optimized out>,
numRecord=1, szSqlState=0xbfdfee2e "", pfNativeError=0xbfdfee34, 
    szErrorMsg=0xbfdfec2e "", cbErrorMsgMax=511, pcbErrorMsg=0xbfdfee3a)
    at error.c:525
        result = <value optimized out>
        errs = (struct _sql_errors *) 0x8280584
        p = <value optimized out>
        odbc_ver = <value optimized out>
        msgprefix = "[FreeTDS][SQL Server]"
#1  0xb7b8cdfb in SQLError (henv=0x827ffd8, hdbc=0x8280568, hstmt=0x0, 
    szSqlState=0xbfdfee2e "", pfNativeError=0xbfdfee34, 
    szErrorMsg=0xbfdfec2e "", cbErrorMsgMax=511, pcbErrorMsg=0xbfdfee3a)
    at error.c:590
        result = <value optimized out>
        errs = (struct _sql_errors *) 0x8280584
        handle = (SQLHANDLE) 0x8280568
#2  0xb7c6eb4d in AllODBCErrors ()
   from /usr/lib/perl5/vendor_perl/5.8.8/i586-linux/auto/DBD/ODBC/ODBC.so
No symbol table info available.
#3  0xb7c75f97 in odbc_db_login6 ()
   from /usr/lib/perl5/vendor_perl/5.8.8/i586-linux/auto/DBD/ODBC/ODBC.so
No symbol table info available.
#4  0xb7c6e206 in XS_DBD__ODBC__db__login ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/perl5/vendor_perl/5.8.8/i586-linux/auto/DBD/ODBC/ODBC.so
No symbol table info available.
#5  0x080bb04f in Perl_pp_entersub ()
No symbol table info available.
#6  0x080b98c5 in Perl_runops_standard ()
No symbol table info available.
#7  0x08065450 in ?? ()
No symbol table info available.
#8  0x0813cff4 in ?? ()
No symbol table info available.
#9  0x08140428 in PL_reg_oldsavedlen ()
No symbol table info available.
#10 0xbfdffaf8 in ?? ()
No symbol table info available.
#11 0x08066004 in Perl_call_sv ()
No symbol table info available.
Backtrace stopped: frame did not save the PC

strace -otracedump perl -MDBI -e 'use DBI; my
$db=DBI->connect("dbi:ODBC:TREX","user","pass")'

output viewable here:
http://evolone.org/dbdodbc_stracedump

What do I do next? I have a working installation on another machine.
Versions are all the same. And this was working previously, somehow.

Can anyone make a clue out of the debug output?

Are there any gentoo-type methods to employ in an attempt to fix this
problem, like some kind of massive re-emergence? I already re-emerged
perl, ran perl-cleaner to rebuild all the modules. This after
I re-emerged (in order) FreeTDS, unixODBC, DBD-ODBC. No difference.

What next? This can't be impossible, though I did note that this
package is proposed for bugday under "Randomly selected open bugs".
Maybe I can just wait 'till Monday (or do I really need to hang out on
IRC on Saturday?)

Emerging 'pidgin', just in case. :(

emerge --info:

Portage 2.1.4.4 (default-linux/x86/2006.1, gcc-4.1.2, glibc-2.6.1-r0, 
2.6.23-gentoo-r8 i686)
=================================================================
System uname: 2.6.23-gentoo-r8 i686 AMD Athlon(tm) XP 2400+
Timestamp of tree: Fri, 30 May 2008 02:06:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p33
dev-java/java-config: 1.3.7, 2.1.4
dev-lang/python:     2.4.4-r9
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache:     2.4-r7
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     0.2.3
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.23-r3
ACCEPT_KEYWORDS="x86"
CBUILD="i586-pc-linux-gnu"
CFLAGS="-O2 -march=athlon-xp -pipe -ggdb"
CHOST="i586-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf 
/etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/terminfo 
/etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -march=athlon-xp -pipe -ggdb"
DISTDIR="/portdir/portage/distfiles"
FEATURES="ccache distlocks metadata-transfer sandbox sfperms strict 
unmerge-orphans userfetch"
GENTOO_MIRRORS="http://gentoo.osuosl.org/ 
http://www.gtlib.gatech.edu/pub/gentoo ftp://ftp.ussg.iu.edu/pub/linux/gentoo 
http://ftp.ucsb.edu/pub/mirrors/linux/gentoo/ 
http://mirrors.acm.cs.rpi.edu/gentoo/ ftp://mirror.datapipe.net/gentoo 
ftp://mirror.mcs.anl.gov/pub/gentoo/ 
ftp://ftp.wwc.edu/pub/mirrors/ftp.gentoo.org "
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LINGUAS="en"
MAKEOPTS="-j2"
PKGDIR="/portdir/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress 
--force --whole-file --delete --stats --timeout=180 --exclude=/distfiles 
--exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/portdir/tmp"
PORTDIR="/portdir/portage"
PORTDIR_OVERLAY="/portdir/portage/local/layman 
/portdir/portage/local/layman/perl-experimental"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X aalib alsa apache2 bash-completion berkdb cdr cli cpudetection cracklib 
crypt cups dri dvd encode exif expat fastcgi flac fontconfig fortran gcj gd 
gdbm gif gimpprint gnome gpm gtk gtk2 iconv isdnlog jack jack-tmpfs jbig jpeg 
jpg lcms libsamplerate midi modperl mudflap mysql ncurses netjack nls nocxx 
nptl nptlonly nsplugin odbc ogg opengl openmp pam par pcre perl png ppds pppd 
python qt3support qt4 readline reflection session spell spl sqlite ssl tcpd 
tiff unicode x86 xorg zlib" ALSA_CARDS="ens1371 ice1712 usb-audio" 
ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file 
hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route 
share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias 
authn_anon authn_dbm authn_default authn_file authz_dbm authz_default 
authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs 
dav_lock deflate dir disk_cache env expires ext_filter file_cache filter 
headers include info log_config logio mem_cache mime mime_magic negotiation 
rewrite setenvif speling status unique_id userdir usertrack vhost_alias" 
ELIBC="glibc" INPUT_DEVICES="mouse keyboard" KERNEL="linux" LCD_DEVICES="bayrad 
cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" 
USERLAND="GNU" VIDEO_CARDS="s3 vesa nv fbdev"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, 
PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

Cheers,

-- 
 |\  /|        |   |          ~ ~  
 | \/ |        |---|          `|` ?
 |    |ichael  |   |iggins    \^ /
 michael.higgins[at]evolone[dot]org
--
gentoo-user@lists.gentoo.org mailing list

Reply via email to