RE: Bug#221811: libdbd-odbc-perl: hangs with a "prepare" statement

From: Jeff Urlwin (jurlwin_at_esoftmatic.com)
Date: 11/20/03


To: "'Dirk Eddelbuettel'" <edd@debian.org>
Date: Thu, 20 Nov 2003 09:08:20 -0500

Dirk,

Please send me a DBI Trace file. I don't have debian, but I may have a
machine I can put it on to test all this as it stands. I just put RH 9 on
that machine, but the HD died. I'll be calling Dell about the HD (maybe)
later today or on Monday. In the mean time, a trace file may point me to
the problem. '

I've also CC-ed dbi-users as Nick and Martin lurk there and they might have
some insight related to unixODBC if I get stuck.

Thanks,

Jeff

> -----Original Message-----
> From: Dirk Eddelbuettel [mailto:edd@debian.org]
> Sent: Thursday, November 20, 2003 7:37 AM
> To: Jeff Urlwin
> Cc: Pascal A. Dupuis; 221811-forwarded@bugs.debian.org
> Subject: Re: Bug#221811: libdbd-odbc-perl: hangs with a
> "prepare" statement
>
>
>
> Jeff,
>
> Here is a fresh Debian bugreport. I can actually replicate it
> against Pg, so this would not appear to be a MySQL issue. See
> further below for the original report. Here is what I get
> similar result with PostgreSQL via ODBC:
>
> --------------------------------------------------------------
> ---------------
> edd@homebud:/tmp> cat /tmp/odbc.pl
> #!/usr/bin/perl -w
>
> use strict;
> use DBI;
>
> my @ary = DBI->available_drivers;
> print join(", ", @ary), "\n";
>
> my $dbh = DBI->connect('dbi:ODBC:beantest','edd', '',
> { RaiseError => 1, AutoCommit => 1 } )
> or die "Can't connect";
> print "connected!\n";
>
> my $sth = $dbh->prepare("select * FROM indices")
> or die "Can't prepare";
>
> $dbh->disconnect() or die "Cannot disconnect\n";
>
> which segfaults:
>
> edd@homebud:/tmp> /tmp/odbc.pl
> ExampleP, ODBC, Pg, Proxy, Sponge, mysql
> connected!
> Segmentation fault
> edd@homebud:/tmp>
> --------------------------------------------------------------
> ---------------
>
>
> Yet I can connect just fine with another ODBC client: [ line
> wraps added ]
>
> --------------------------------------------------------------
> ---------------
> edd@homebud:/tmp> echo 'library(RODBC); \
> db<-odbcConnect("beantest","edd",""); \ Z<-sqlQuery(db,
> "select * from indices"); \ print(dim(Z)); \ odbcClose(db);
> cat("All done\n")' | R --slave [1] 30 2 All done
>
> edd@homebud:/tmp>
> --------------------------------------------------------------
> ---------------
>
> which prints the size of the returned structure (here 30x2)
> and exists.
>
> So this looks like a real bug. I am using 1.06 here on my
> box. Debian unstable, all current. Backend is Pg on the
> localbox. Perl is 5.8.2, unixODBC is 2.2.4. Let me if I can
> help with something else.
>
> Regards, Dirk
>
>
> On Wed, Nov 19, 2003 at 02:37:17PM +0100, Pascal A. Dupuis wrote:
> > Package: libdbd-odbc-perl
> > Version: 1.05-1
> > Severity: important
> > Tags: experimental
> >
> >
> >
> > -- System Information:
> > Debian Release: testing/unstable
> > Architecture: i386
> > Kernel: Linux tatooine 2.4.22 #16 Wed Sep 3 10:06:36 CEST 2003 i686
> > Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8
> >
> > Versions of packages libdbd-odbc-perl depends on:
> > ii libc6 2.3.2-9 GNU C Library:
> Shared libraries an
> > ii libdbi-perl 1.35-1 The Perl5
> Database Interface by Ti
> > ii perl 5.8.0-18 Larry Wall's
> Practical Extraction
> > ii perl-base [perlapi-5.8.0] 5.8.0-18 The
> Pathologically Eclectic Rubbis
> > ii unixodbc 2.2.4-6 ODBC tools libraries
> >
> > -- no debconf information
> >
> > I'm trying to write a Perl script to access a MS-SQL
> database. To test
> > the script, I use it locally on a linux machine with mysql
> installed.
> >
> > The script is:
> > ------------------
> > #!/usr/bin/perl -w
> >
> > use strict;
> > use DBI;
> >
> > my @ary = DBI->available_drivers;
> > print join(", ", @ary), "\n";
> >
> > my $dbh = DBI->connect('dbi:ODBC:myDSN',
> > 'user', 'pass',
> > { RaiseError => 1, AutoCommit => 1 })
> > or die "Can't connect";
> > print "connected!\n";
> >
> > my $sth = $dbh->prepare("SELECT * FROM Measurements;");
> > -------------------
> >
> > where myDSN exists in ~/.odbc.ini and can be accessed, f.i. using
> > openoffice. MySQL is used as the underlying driver. The
> statement can
> > be executed in isql and returns 4 records.
> >
> > In perldebug, the 'connect' succeed, then the 'prepare'
> hangs forever.
> > A 'strace' on the script ends with :
> >
> > connect(3, {sa_family=AF_UNIX,
> path="/var/run/mysqld/mysqld.sock"}, 110) = 0
> > setsockopt(3, SOL_IP, IP_TOS, [8], 4) = -1 EOPNOTSUPP
> (Operation not supported)
> > setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
> > read(3, "+\0\0\0", 4) = 4
> > read(3, "\n4.0.13-log\0\33\0\0\0c931=!*O\0,
> \10\2\0\0\0"..., 43) = 43
> > open("/usr/share/libmysqlclient/charsets/Index",
> O_RDONLY|O_LARGEFILE)
> > = -1 ENOENT (No such file or directory) write(3,
> "\27\0\0\1\315 \377\377\377root\0\\LJNJIHS\0test", 27) = 27
> > read(3, "\5\0\0\2", 4) = 4
> > read(3, "\0\0\0\2\0", 5) = 5
> > write(1, "connected!\n", 11connected!
> > ) = 11
> > semop(0, 0xbffff4c0, 2) = 0
> > semop(0, 0xbffff4c0, 1) = 0
> > --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> >
> > What's wrong with this driver, or is it my setup ? This scripts
> > succeeds with the mysql driver, i.e. $dbh =
> > DBI->connect('DBI:mysql:test:localhost.:3306', ...
> >
> > Greetings
> >
> > Pascal Dupuis
> > --
> > Dr. ir. Pascal Dupuis
> > K. U. Leuven, ESAT/ELECTA (formerly ELEN):
> http://www.esat.kuleuven.ac.be/
> > Kasteelpark Arenberg, 10;
> B-3001 Leuven-Heverlee, Belgium
> > Tel. +32-16-32 10 21 -- Fax +32-16-32 19 85
> >
> >
> >
>
> --
> Those are my principles, and if you don't like them... well,
> I have others.
> -- Groucho Marx
>



Relevant Pages

  • Re: IMAP with virtual users
    ... I have a Woody mail/web server running uw-imapd-ssl, postfix, apache, mysql, ... > the version of Courier included with Debian does not seem to have makemap. ...
    (Debian-User)
  • Problems with MySQL 4.1.x on Debian-AMD64 (threading?)
    ... libraries - and MySQL relies on them heavily. ... reported to Debian already... ... As many people have posted here, it appears that there are a variety ... of possible configuration issues/whatnot with AMD64 and MySQL - it'd ...
    (Debian-User)
  • Re: Which distro?
    ... Maybe I'm wrong - but the smallest Debian I've installed has to have a Debian user for MySQL, has special config files for MySQL, etc. ... This system also uses MySQL heavily for mail processing - Exim and qpopper. ... But unfortunately, when you update the base components, sometimes the other packages get updated, also. ...
    (comp.os.linux.setup)
  • Re: MySQL Problems With a New Data Directory
    ... > working on for several years that is on a RAID. ... > distro that was based on the testing and unstable branches of Debian. ... > it out, restored the original data, including the MySQL db files. ... > Starting MySQL database server: ...
    (Debian-User)