From: | "Jeff Duffy" <jeff(at)alanne(dot)com> |
---|---|
To: | "DBI Users" <dbi-users(at)perl(dot)org> |
Cc: | Postgres Interfaces <pgsql-interfaces(at)postgresql(dot)org>, "Edmund Mergl" <e(dot)mergl(at)bawue(dot)de> |
Subject: | Possible bug in DBD::Pg 0.95 |
Date: | 2001-03-29 12:14:07 |
Message-ID: | 200103291715.f2THFUK56050@postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-interfaces |
While poking about in my favorite MUA
(Pronto; http://muhri.net/pronto)
I discovered what may be a serious bug in DBD::Pg. While attempting
to import some files (email) into the database, the script dumped
core.
Some experimenting shows that smaller files (>100k or so) insert
fine, but larger file inserts into text fields cause the script to
segfault and dump core when execute() is called on the statement
handle.
I have successfully inserted the same text into Postgres using the
COPY command, so that should rule out db issues.
The offending code:
#!/usr/bin/perl
use DBI;
my $dbh = DBI->connect("dbi:Pg:dbname='jeff'", 'jeff', '',
{AutoCommit => 0 });
open(FILE, 'test.msg');
undef $/;
my $msg = <FILE>;
close(FILE);
my $sth = $dbh->prepare("INSERT INTO message_sources VALUES(91, ?)");
$sth->bind_param(1, $msg);
$sth->execute();
$dbh->commit();
$dbh->disconnect;
The file test.msg is ~178k (it's a pgsql-general-digest message).
The table:
jeff=# \d message_sources
Table "message_sources"
Attribute | Type | Modifier
-----------+---------+----------
id | integer | not null
bodytext | text |
Index: message_sources_pkey
The first few lines of 'strings core' suggests that there might be an
issue with DynaLoader:
tch %s%s%s%s %_
DynaLoader::dl_load_file
DynaLoader::dl_find_symbol
DynaLoader::dl_undef_symbols
DynaLoader::dl_install_xsub
DynaLoader::dl_error
"@ t
bh->disconnect;
$msg);
ERT INTO message_sources VALUES(91, ?)");
=> 0 });
The environment:
Red Hat 7.0 (linux 2.4.2)
Perl 5.6.0 (compiled from source, shared libperl.so)
PostgreSQL 7.1RC1 (compiled from source)
DBD::Pg 0.95 (compiled from source)
I recompiled Perl and DBD::Pg using kgcc (egcs-2.91.66) to make sure
that the RH gcc 2.96 wasn't at fault, and got the same results.
The corefile and test message are available.
--
Jeff Duffy
Great Bridge, Inc.
jduffy(at)greatbridge(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Jeff MacDonald | 2001-03-29 20:10:05 | mod_auth_pgsql |
Previous Message | NSB)Hiroshi Kasamatsu | 2001-03-29 07:48:34 | JDBC connection by crontab |