pgsql: Fix leaking of small spilled subtransactions during logical deco

Started by Andres Freundabout 9 years ago1 messagescomitters
Jump to latest
#1Andres Freund
andres@anarazel.de

Fix leaking of small spilled subtransactions during logical decoding.

When, during logical decoding, a transaction gets too big, it's
contents get spilled to disk. Not just the top-transaction gets
spilled, but *also* all of its subtransactions, even if they're not
that large themselves. Unfortunately we didn't clean up
such small spilled subtransactions from disk.

Fix that, by keeping better track of whether a transaction has been
spilled to disk.

Author: Andres Freund
Reported-By: Dmitriy Sarafannikov, Fabrízio de Royes Mello
Discussion:
/messages/by-id/1457621358.355011041@f382.i.mail.ru
/messages/by-id/CAFcNs+qNMhNYii4nxpO6gqsndiyxNDYV0S=JNq0v_sEE+9PHXg@mail.gmail.com
Backpatch: 9.4-, where logical decoding was introduced

Branch
------
REL9_6_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/810344436db69eb29ca5761fbed872c42de9e7d5

Modified Files
--------------
src/backend/replication/logical/reorderbuffer.c | 7 ++++---
src/include/replication/reorderbuffer.h | 9 +++++++++
2 files changed, 13 insertions(+), 3 deletions(-)

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers