Fix xmin/xmax horizon computation during logical decoding initialization.
authorAndres Freund <andres@anarazel.de>
Thu, 13 Nov 2014 18:06:43 +0000 (19:06 +0100)
committerAndres Freund <andres@anarazel.de>
Thu, 13 Nov 2014 19:34:30 +0000 (20:34 +0100)
commit5a2c184058c51a41b855b9e824102d1395402ffa
tree7679b4bbb65a1d604f555d6e5b1b363a36850b32
parent81c45081960f39351c38cd53554bb3788af54023
Fix xmin/xmax horizon computation during logical decoding initialization.

When building the initial historic catalog snapshot there were
scenarios where snapbuild.c would use incorrect xmin/xmax values when
starting from a xl_running_xacts record. The values used were always a
bit suspect, but happened to be correct in the easy to test
cases. Notably the values used when the the initial snapshot was
computed while no other transactions were running were correct.

This is likely to be the cause of the occasional buildfarm failures on
animals markhor and tick; but it's quite possible to reproduce
problems without CLOBBER_CACHE_ALWAYS.

Backpatch to 9.4, where logical decoding was introduced.
src/backend/replication/logical/snapbuild.c