Fix memory leak in SnapBuildSerialize.
authorAmit Kapila <akapila@postgresql.org>
Wed, 13 Jan 2021 03:01:45 +0000 (08:31 +0530)
committerAmit Kapila <akapila@postgresql.org>
Wed, 13 Jan 2021 03:52:03 +0000 (09:22 +0530)
commit4bccceaa9179bffbe3469909e28ce4ded34f0a09
tree2667024bbd7fe9e4a18a31d458cb5d8a37d3dbfd
parenta8bb366ad0e5c422622ee00d5e3105f8451deb62
Fix memory leak in SnapBuildSerialize.

The memory for the snapshot was leaked while serializing it to disk during
logical decoding. This memory will be freed only once walsender stops
streaming the changes. This can lead to a huge memory increase when master
logs Standby Snapshot too frequently say when the user is trying to create
many replication slots.

Reported-by: funnyxj.fxj@alibaba-inc.com
Diagnosed-by: funnyxj.fxj@alibaba-inc.com
Author: Amit Kapila
Backpatch-through: 9.5
Discussion: http://postgr.es/m/033ab54c-6393-42ee-8ec9-2b399b5d8cde.funnyxj.fxj@alibaba-inc.com
src/backend/replication/logical/snapbuild.c