Re: Fix for segfault in logical replication on master - Mailing list pgsql-hackers

From Amit Kapila
Subject Re: Fix for segfault in logical replication on master
Date
Msg-id CAA4eK1JcqRp4jSkVaOM-OEGKANWgAov9DWWrvraEBViW4mLSog@mail.gmail.com
Whole thread Raw
In response to Re: Fix for segfault in logical replication on master  (Japin Li <japinli@hotmail.com>)
Responses Re: Fix for segfault in logical replication on master
List pgsql-hackers
On Mon, Jun 21, 2021 at 2:06 PM Japin Li <japinli@hotmail.com> wrote:
>
> On Mon, 21 Jun 2021 at 16:22, Amit Kapila <amit.kapila16@gmail.com> wrote:
> > On Mon, Jun 21, 2021 at 1:30 PM Japin Li <japinli@hotmail.com> wrote:
> >>
> >> On Sat, 19 Jun 2021 at 17:18, Amit Kapila <amit.kapila16@gmail.com> wrote:
> >> > On Fri, Jun 18, 2021 at 9:18 AM Amit Kapila <amit.kapila16@gmail.com> wrote:
> >>
> >> Or we can free the memory owned by indexoidlist after check whether it is NIL,
> >> because we do not use it in the later.
> >>
> >
> > Valid point. But I am thinking do we really need to fetch and check
> > indexoidlist here?
>
> IMO, we shold not fetch and check the indexoidlist here, since we do not
> use it.  However, we should use RelationGetIndexList() to update the
> reladion->rd_replidindex, so we should fetch the indexoidlist, maybe we
> can use the following code:
>
>     indexoidlist = RelationGetIndexList(relation);
>     list_free(indexoidlist);
>
> Or does there any function that only update the relation->rd_replidindex
> or related fields, but do not fetch the indexoidlist?
>

How about RelationGetReplicaIndex? It fetches the indexlist only when
required and frees it immediately. But otherwise, currently, there
shouldn't be any memory leak because we allocate this in "logical
replication output context" which is reset after processing each
change message, see pgoutput_change.

-- 
With Regards,
Amit Kapila.



pgsql-hackers by date:

Previous
From: Noah Misch
Date:
Subject: Re: [Patch] Rename PQtraceSetFlags to PQsetTraceFlags for bookindex.html
Next
From: Greg Nancarrow
Date:
Subject: Remove useless int64 range checks on BIGINT sequence MINVALUE/MAXVALUE values