Re: Forget close an open relation in ReorderBufferProcessTXN()
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: Japin Li <japinli@hotmail.com>,
"pgsql-hackers@lists.postgresql.org"
<pgsql-hackers@lists.postgresql.org>
Date: 2021-04-15T17:26:52Z
Lists: pgsql-hackers
Amit Kapila <amit.kapila16@gmail.com> writes: > On Thu, Apr 15, 2021 at 4:00 PM Japin Li <japinli@hotmail.com> wrote: >> >> The RelationIdGetRelation() comment says: >> > Caller should eventually decrement count. (Usually, > that happens by calling RelationClose().) >> >> However, it doesn't do it in ReorderBufferProcessTXN(). >> I think we should close it, here is a patch that fixes it. Thoughts? >> > +1. Your fix looks correct to me but can we test it in some way? I think this code has a bigger problem: it should not be using RelationIdGetRelation and RelationClose directly. 99.44% of the backend goes through relation_open or one of the other relation.c wrappers, so why doesn't this? Possibly the answer is "it copied the equally misguided code in pgoutput.c". A quick grep shows nothing else doing it this way. regards, tom lane
Commits
-
pgoutput: Fix memory leak due to RelationSyncEntry.map.
- eb89cb43a0d0 14.0 landed
- d2505681211b 13.4 landed