[Bucardo-general] Suppress Serialization Warnings?
David E. Wheeler
david at justatheory.com
Sat Sep 7 03:21:57 UTC 2013
Fellow Bucardoans,
v4.99.7 is working pretty well on our production system. However, we periodically get these warnings, which understandably alarm our DBAs:
1 (29923) [Fri Sep 6 17:44:09 2013] KID Warning! Aborting due to exception for foo.bar:? Error was DBD::Pg::db pg_putcopyend failed: ERROR: could not serialize access due to read/write dependencies among transactions\nDETAIL: Reason code: Canceled on identification as a pivot, during write.\nHINT: The transaction might succeed if retried.\nCONTEXT: COPY bar, line 2: "128842 Blah 12345" at /usr/share/perl5/vendor_perl/Bucardo.pm line 8900.
That comes from this bit of code:
if (!$g->{has_exception_code}) {
$self->glog("Warning! Aborting due to exception for $S.$T:$pkval Error was $err", LOG_WARN);
die "$err\n";
}
I don’t at all understand what has_exception_code is for, but I’m wondering whether, on serialization or deadlock errors, this warning should be suppressed? After all, if I understand the code correctly, that call to `die` is caught by the exception handler which *does* notice serialization and deadlock errors and either retries them or emits an error. Do I have that right? If so, I am not clear that the warning is needed here at all. Is it?
Thanks,
David
More information about the Bucardo-general
mailing list