Re: Fix for segfault in logical replication on master

From: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
To: Japin Li <japinli(at)hotmail(dot)com>
Cc: Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com>, osumi(dot)takamichi(at)fujitsu(dot)com, "akapila(at)postgresql(dot)org" <akapila(at)postgresql(dot)org>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Fix for segfault in logical replication on master
Date: 2021-06-21 09:54:21
Message-ID: CAA4eK1JcqRp4jSkVaOM-OEGKANWgAov9DWWrvraEBViW4mLSog@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Jun 21, 2021 at 2:06 PM Japin Li <japinli(at)hotmail(dot)com> wrote:
>
> On Mon, 21 Jun 2021 at 16:22, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> > On Mon, Jun 21, 2021 at 1:30 PM Japin Li <japinli(at)hotmail(dot)com> wrote:
> >>
> >> On Sat, 19 Jun 2021 at 17:18, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> >> > On Fri, Jun 18, 2021 at 9:18 AM Amit Kapila <amit(dot)kapila16(at)gmail(dot)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.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Greg Nancarrow 2021-06-21 10:10:02 Remove useless int64 range checks on BIGINT sequence MINVALUE/MAXVALUE values
Previous Message Noah Misch 2021-06-21 09:52:17 Re: [Patch] Rename PQtraceSetFlags to PQsetTraceFlags for bookindex.html