]> granicus.if.org Git - postgresql/commit
Fix memory leak in LogStandbySnapshot().
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 4 Jun 2013 18:58:52 +0000 (14:58 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 4 Jun 2013 18:58:52 +0000 (14:58 -0400)
commit81fe138ba252987815506caa57719822709b730f
tree58b38441929e04b6b2d01ef000dc3fef975f82e3
parentcc510d97afe63cacb3129d4bd19b14118cada6bb
Fix memory leak in LogStandbySnapshot().

The array allocated by GetRunningTransactionLocks() needs to be pfree'd
when we're done with it.  Otherwise we leak some memory during each
checkpoint, if wal_level = hot_standby.  This manifests as memory bloat
in the checkpointer process, or in bgwriter in versions before we made
the checkpointer separate.

Reported and fixed by Naoya Anzai.  Back-patch to 9.0 where the issue
was introduced.

In passing, improve comments for GetRunningTransactionLocks(), and add
an Assert that we didn't overrun the palloc'd array.
src/backend/storage/ipc/standby.c
src/backend/storage/lmgr/lock.c