]> granicus.if.org Git - postgresql/commit
Refrain from duplicating data in reorderbuffers
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 6 Mar 2018 18:57:20 +0000 (15:57 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 6 Mar 2018 19:20:54 +0000 (16:20 -0300)
commitcee1dd1eeda1e7b86b78f240d24bbfde21d75928
treeb530844071bda632a32dd407b1fe50933461f69f
parente20dd6a13d870f5c98a163031b38ba23753e628c
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