[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