[Bucardo-general] And another....
Greg Sabino Mullane
greg at endpoint.com
Wed Oct 16 02:33:48 UTC 2013
On Tue, Oct 15, 2013 at 10:34:16PM +0200, Michelle Sullivan wrote:
> exception for public.account2email:? Error was DBD::Pg::db pg_result
> failed: No asynchronous query is running at
> /usr/lib/perl5/site_perl/5.8.8/Bucardo.pm line 8589.
I can't seem to figure this one out. That error pops up if we call
pg_result but haven't just run an asynchronous query. However, inside
of delete_rows(), we call async at the end of each loop:
for my $loop (1..$count) {
my $async = $loop==$count ? PG_ASYNC : 0;
if (1 == $numpks) {
$t->{deletesth} = $tdbh->prepare("$pre$SQL{ANY}{$tname}", { pg_async => $async });
my $res = $t->{deletesth}->execute($SQL{ANYargs}->[$loop-1]);
$count{$t} += $res unless $async;
}
else {
$count{$t} += $tdbh->do($pre.$SQL{IN}->[$loop-1], { pg_direct => 1, pg_async => $async });
$t->{deletesth} = 0;
}
}
Then the next block of code that runs using that database handle is:
## Final cleanup as needed (e.g. process async results)
...
## Wrap up all the async queries
($count{$t} += $tdbh->pg_result()) =~ s/0E0/0/o;
## Call finish if this was a statement handle (as opposed to a do)
if ($t->{deletesth}) {
$t->{deletesth}->finish();
}
delete $t->{deletesth};
Maybe my tired eyes overlooked something, but I can't see how we
reach that pg_cancel without setting pg_async to true. Any chance
you can send me the Postgres logs for just before that error to help
track things down?
--
Greg Sabino Mullane greg at endpoint.com
End Point Corporation
PGP Key: 0x14964AC8
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 163 bytes
Desc: Digital signature
URL: <https://mail.endcrypt.com/pipermail/bucardo-general/attachments/20131015/f0348617/attachment.sig>
More information about the Bucardo-general
mailing list