Step 1)  added ODBC trace information to odbcinst.ini (made my own copy
(system file)) and change $ODBCINST to address

                NO output produced in trace file

 

Step 2) running test under gdb

Linux:puTest> gdb `which perl`

GNU gdb (GDB) SUSE (7.3-0.6.1)

Copyright (C) 2011 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.  Type "show copying"

and "show warranty" for details.

This GDB was configured as "x86_64-suse-linux".

For bug reporting instructions, please see:

<http://www.gnu.org/software/gdb/bugs/>...

Reading symbols from /DCH/homedch/localPerl/bin/perl...done.

(gdb) run -lblib/lib -lblib/arch t/03dbatt.t

Starting program: /DCH/homedch/localPerl/bin/perl -lblib/lib -lblib/arch
t/03dbatt.t

Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2

Try: zypper install -C
"debuginfo(build-id)=c1807b5762068e6c5f4a6a0ed48d9d4469965351"

Missing separate debuginfo for /lib64/libnsl.so.1

Try: zypper install -C
"debuginfo(build-id)=bdcf485f96de50e19ebd8f6fb7660cb60e2ff194"

Missing separate debuginfo for /lib64/libdl.so.2

Try: zypper install -C
"debuginfo(build-id)=f607b21f9a513c99bba9539050c01236d19bf22b"

Missing separate debuginfo for /lib64/libm.so.6

Try: zypper install -C
"debuginfo(build-id)=4e9fa1a2c1141fc0123a142783efd044c40bdaaf"

Missing separate debuginfo for /lib64/libcrypt.so.1

Try: zypper install -C
"debuginfo(build-id)=d31bcb7f5e935044d4678350887dfbb33aa1722b"

Missing separate debuginfo for /lib64/libutil.so.1

Try: zypper install -C
"debuginfo(build-id)=e43269d9649d86bcd7ba19a0823d7f86a6f21af3"

Missing separate debuginfo for /lib64/libc.so.6

Try: zypper install -C
"debuginfo(build-id)=f7b8fc2bc1d68899a2cb561ac8e16092228223e3"

Unrecognized switch: -blib/lib  (-h will show valid options).

[Inferior 1 (process 1226) exited with code 035]

(gdb) bt

No stack.

(gdb)

 

Thanx

 

-----Original Message-----
From: Martin J. Evans [mailto:martin.ev...@easysoft.com] 
Sent: Wednesday, August 15, 2012 10:50 AM
To: Jeff Tate
Cc: dbi-users@perl.org
Subject: Re: Help please with DBD::ODBC on SUSE-Linux

 

On 15/08/12 15:32, Jeff Tate wrote:

> Couldn't find odbcinst. Compiled test code as instructed. Result of 

> a.out

> is:

> 

> 

> 

> size of SQLLEN is 8

 

Ok, so this /should be/ good. It means that compiling DBD::ODBC with those
header files means SQLLEN and SQLULEN are 8 bytes in size and one /would
hope/ if teradata was compiled the same way it was also using SQLLEN/SQLULEN
of 8 bytes. If this is the case my guess is wrong.

 

BTW, I spoke to lead developer for unixODBC and he thinks the ODBC driver
manager that comes with teradata might actually be unixODBC as he had some
contact with teradata some time ago.

 

> 

> As for decision to install Teradata odbc rather than SUSE odbc, that 

> was made by the sysadmin team. I am just a user. I will however ask 

> them if there is the possibility to install unixodbc - is that target 

> neutral or is there some additional work they would have to do to 

> enable a Teradata connection.

 

If above is correct you should not need to install unixODBC separately.

 

So, the problem remains why is this segfaulting - it gets harder now. I'm
kind of tempted to say "ask teradata" but I'll try and give you some
suggestions so we might try and track it down.

 

t/03dbatt.t was the first test to fail so we'll start with this one.
Assuming it is unixODBC you are using edit your odbcinst.ini file
(/opt/teradata/client/ODBC_64/odbcinst.ini assuming you still have
ODBCINSTINI set as in your first post) and at the top add:

 

[ODBC]

Trace=yes

TraceFile=/tmp/unixodbc.log

 

Now go to the dir where you are building and running DBD::ODBC test suite
and do:

 

prove -vb t/03dbatt.t

 

If you are using unixODBC it should write something to /tmp/unixodbc.log. If
it does post the last 100 lines.

 

Do:

 

which perl

 

which should output something like:

 

/usr/bin/perl

 

then assuming you have gdb (or install it) do:

 

gdb /usr/bin/perl    <---- replace with which output

 

and at the prompt do:

 

run -Iblib/lib -Iblib/arch t/03dbatt.t

 

when it crashes type "bt" for a back trace and post it.

 

Even if we cannot get a clue from this it will be useful if you go to
teradata.

 

Martin

--

Martin J. Evans

Easysoft Limited

 <http://www.easysoft.com> http://www.easysoft.com

Reply via email to