Thomas, did you get round to doing this?

Tim.

On Wed, Feb 26, 2003 at 10:54:12AM +0000, Tim Bunce wrote:
> On Tue, Feb 25, 2003 at 05:30:31PM -0500, Thomas Good wrote:
> > On Tue, 25 Feb 2003, Tim Bunce wrote:
> > 
> > > > While I was using 5.8 large data transfers via DBI failed consistently.
> > > > I have compared notes with others (including Lincoln Stein) and this
> > > > problem is easily reproduced.  In fact, I can't stop reproducing it. ;-)
> > > >
> > > A self-contained test case would be ideal!
> > 
> > Hi, I will try to put this together, meanwhile here is a summary:
> > 
> > I have a postgres table with 220 individual patient skills -
> > these skills become questions on a long form.  Another table
> > holding live patient records is queried and the returned values
> > serve as popup_menu() defaults
> > 
> > Tr ( td ( "$skill[0]" )                         <-- Here is the string/question
> >      td ( popup_menu( ...
> >                    -values=>['1 - Excellent', '2 - Adequate', '3 - Needs 
> > Attention',
> >                              '4 - Needs Immediate Attention', '5 - Not 
> > Applicable'],
> >                    -default=>"$row->{item_01}"  <-- Here is the returned value
> >                       ...
> > 
> > On wellworn test equipment (all ide, 64M RAM, clock speed of 300MHz) running
> > Slackware 8.1, perl 5.6.1, DBI 1.25, Apache 1.3.26, DBD-Pg 1.21, Postgres 7.3.1
> > this script runs.
> > 
> > On a brand new IBM eServer (LSI SCSI, 512M RAM, 2 GHz clock) running Redhat 8.0,
> > perl 5.8.0, DBI 1.28, Apache 2.0.40, DBD-Pg 1.21 the script hangs.
> > I tried commenting out the defaults, etc.  Only removing both queries allowed
> > the script to run.  The CGI form was not a problem, even when I doubled the
> > length as a test.
> 
> Enable tracing to a log file (eg set DBI_TRACE env var to something
> like "6=/tmp/dbi.log") and then run the script using truss
> (or similar tool that shows operating system calls).
> 
> As a (better) alternative to using truss you could do a kill -QUIT
> on the process once it has hung and then get a stack trace from the
> core file.
> 
> That would be useful, but to be *really* helpful the DBI and DBD::Pg
> would need to be compiled and linked with debugging enabled (ie -g
> option to the compiler/linker).
> 
> For the DBI you can do that by simply rebuilding it starting with
> "perl Makefile.PL -g".
> 
> For DBD::Pg you may need to run "perl Makefile.PL" and then hack the
> generated Makefile: Add -g as an option on the "CCCMD = $(CC) ..."
> line and also to the "OTHERLDFLAGS =" line.
> 
> Once you've got the core file you can get a stack dump using a debugger
> like gdb ("gdb /path/to/the/perl/you/used /path/to/core" then "bt".)
> 
> Tim.

Reply via email to