Refrain from duplicating data in reorderbuffers
authorAlvaro Herrera
Tue, 6 Mar 2018 18:57:20 +0000 (15:57 -0300)
committerAlvaro Herrera
Tue, 6 Mar 2018 19:10:23 +0000 (16:10 -0300)
commit6d30e3a2b6b7ce260b3b8bff5ad44c5b6a924b32
tree4b2a461748c282142692e891b225a7be6c27dab1
parent165fa27fe440137eb724304343035d76d19342c7
Refrain from duplicating data in reorderbuffers

If a walsender exits leaving data in reorderbuffers, the next walsender
that tries to decode the same transaction would append its decoded data
in the same spill files without truncating it first, which effectively
duplicate the data.  Avoid that by removing any leftover reorderbuffer
spill files when a walsender starts.

Backpatch to 9.4; this bug has been there from the very beginning of
logical decoding.

Author: Craig Ringer, revised by me
Reviewed by: Álvaro Herrera, Petr Jelínek, Masahiko Sawada
src/backend/replication/logical/reorderbuffer.c