Result here: (I put iteration number in output) 55361 55362 55363 55364 55365 Out of memory! Out of memory! Callback called exit. Out of memory!
I'm using a bit old copy of DBD::Pg, but I don't think it makes a difference. Please check that you have ample memory, and no ulimit in effect when you run this program. If nothing helps, do a 'where' on coredump, that should help. (gdb perl core, then 'where') -alex On Thu, 4 Oct 2001, Matt Nelson wrote: > > I have come up with a small perl script which consistently causes a > segmentation fault using DBD-Pg. I have included it below, along with > collected version information. > > - Matt > > PS - The DBD-Pg README has an invalid email address for bug reports > PPS - http://dbi.symbolstone.org/index.html has outdated links to the > DBI mailing lists > > ----- > > #!/usr/bin/env perl > > require 5.6.0; > use strict; > use warnings; > > require DBI; > > my $dbname = "name"; > my $dbuser = "user"; > # CREATE TABLE test (name CHARACTER VARYING(16)); > my $table = "test"; > > my $db = 0; > $db = DBI->connect("dbi:Pg:dbname=$dbname", $dbuser, 0, { AutoCommit => 0 }); > die "Cannot open database" if ($db == 0); > > my $name = "aaaaa"; > while (1) { > my $q = "INSERT INTO $table (name) VALUES ('" . $name++ . "')"; > my $sf = $db->prepare_cached($q, undef, 1); > die "cannot prepare query $q" if (!$sf); > my $rv = $sf->execute(); > die "cannot execute $q" if (!$rv); > } > > __END__ > > $ perl -v > > This is perl, v5.6.0 built for i386-netbsd > > Copyright 1987-2000, Larry Wall > > Perl may be copied only under the terms of either the Artistic License or the > GNU General Public License, which may be found in the Perl 5.0 source kit. > > Complete documentation for Perl, including FAQ lists, should be found on > this system using `man perl' or `perldoc perl'. If you have access to the > Internet, point your browser at http://www.perl.com/, the Perl Home Page. > > $ perl -V > Summary of my perl5 (revision 5.0 version 6 subversion 0) configuration: > Platform: > osname=netbsd, osvers=1.5_alpha2, archname=i386-netbsd > uname='netbsd build-00.gdib.nominum.com 1.5_alpha2 netbsd 1.5_alpha2 (from >generic-1.354.2.8 $revision: 1.4 $) #0: tue oct 3 08:21:29 utc 2000 >[EMAIL PROTECTED]:u0srcsysarchi386compileibm1g i386 ' > config_args='-sde -Dprefix=/usr/pkg -Doptimize=-O2 -Darchname=i386-netbsd >-Dcc=gcc -Dusemymalloc=false -Duseshrplib=true' > hint=recommended, useposix=true, d_sigaction=define > usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef > useperlio=undef d_sfio=undef uselargefiles=define > use64bitint=undef use64bitall=undef uselongdouble=undef usesocks=undef > Compiler: > cc='gcc', optimize='-O2', gccversion=egcs-2.91.66 19990314 (egcs-1.1.2 release) > cppflags='-fno-strict-aliasing -I/usr/pkg/include' > ccflags ='-fno-strict-aliasing -I/usr/pkg/include' > stdchar='char', d_stdstdio=undef, usevfork=false > intsize=4, longsize=4, ptrsize=4, doublesize=8 > d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 > ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 > alignbytes=4, usemymalloc=n, prototype=define > Linker and Libraries: > ld='gcc', ldflags =' -L/usr/pkg/lib' > libpth=/usr/pkg/lib /usr/lib > libs=-lm -lcrypt > libc=/usr/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so > Dynamic Linking: > dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E >-Wl,-R/usr/pkg/lib -Wl,-R/usr/pkg/lib/perl5/5.6.0/i386-netbsd/CORE' > cccdlflags='-DPIC -fPIC ', lddlflags='--whole-archive -shared -L/usr/pkg/lib' > > > Characteristics of this binary (from libperl): > Compile-time options: USE_LARGE_FILES > Built under netbsd > Compiled at Oct 10 2000 17:15:13 > @INC: > /usr/pkg/lib/perl5/5.6.0/i386-netbsd > /usr/pkg/lib/perl5/5.6.0 > /usr/pkg/lib/perl5/site_perl/5.6.0/i386-netbsd > /usr/pkg/lib/perl5/site_perl/5.6.0 > /usr/pkg/lib/perl5/site_perl > . > $ psql name user > Welcome to psql, the PostgreSQL interactive terminal. > > Type: \copyright for distribution terms > \h for help with SQL commands > \? for help on internal slash commands > \g or terminate with semicolon to execute query > \q to quit > > gns=> select version(); > version > -------------------------------------------------------------- > PostgreSQL 7.1.2 on i386--netbsd, compiled by GCC egcs-1.1.2 > (1 row) > > gns=> \q > $ perl -MDBD::Pg -le 'print $DBD::Pg::VERSION' > 1.00 > $ perl -MDBI -le 'print $DBI::VERSION' > 1.18 > >
