On Oct 22, 2012, at 10:57 AM, Tim Bunce <tim.bu...@pobox.com> wrote:
> On Sun, Oct 21, 2012 at 03:59:56PM +0200, Henri Asseily wrote: >> Some more comments from the user (he should probably modernize his whole >> stack but that's not the point here :)): > > What perl and DBI versions? He's using: Perl 5.10.0 DBI 1.609 Apache::DBI 1.10 DBD::Pg 2.18 This stuff is relatively old, and he says they're in the process of upgrading to: Perl 5.16.0 DBI 1.617 Apache::DBI 1.11 DBD::Pg 2.18 Sorry I can't set up a test environment for this and I have to go through him. > >> From our testing, somewhere $dbh gets overrun by something but we >> could not tell if it was in DBI/DBD::Pg/Apache::DBI or DBIx::HA. What >> we saw was that on attempt #1 and #2, it wouldn't fail but on attempt >> #3 $dbh was not pointing to a database handle anymore but a scalar >> reference to the letter 'n'. Very odd and something we couldn't track >> down who was stomping on $dbh. > >> Assertion error from swap_inner_handle: >> >> 'PERL_BACKTRACE' => '** Assertion i == (((((SV *) (name_av))->sv_flags & >> 0x00800000)) ? Perl_mg_size(my_perl, (SV *) name_av) : ((XPVAV*) >> (name_av)->sv_any)->xav_fill)+1 failed: file "DBI.xs", line 2001 > > That doesn't ring any bells. > > Maybe try a perl built with -DDEBUGGING enabled. > > If that doesn't shed any useful light, and you've a small test case, > then try using valgrind with a perl built with -DPURIFY. > > Good luck! Thanks I'll let him try that.