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

From Japin Li
Subject Re: Fix for segfault in logical replication on master
Date
Msg-id MEYP282MB166958031E67BC202BBB06ACB60A9@MEYP282MB1669.AUSP282.PROD.OUTLOOK.COM
Whole thread Raw
In response to Re: Fix for segfault in logical replication on master  (Amit Kapila <amit.kapila16@gmail.com>)
Responses Re: Fix for segfault in logical replication on master
List pgsql-hackers
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:
>>
>> > I thought it was cheap enough to check that the relation we open is an index, because if it is not, we'll segfault
whenaccessing fields of the relation->rd_index struct.  I wouldn't necessarily advocate doing any really expensive
checkshere, but a quick sanity check seemed worth the effort.
 
>> >
>>
>> I am not telling you anything about the cost of these sanity checks. I
>> suggest you raise elog rather than return NULL because if this happens
>> there is definitely some problem and continuing won't be a good idea.
>>
>
> Pushed, after making the above change. Additionally, I have moved the
> test case to the existing file 001_rep_changes instead of creating a
> new one as the test seems to fit there and I was not sure if the test
> for just this case deserves a new file.

Hi, Amit

Sorry for the late repay.

When we find that the relation has no replica identity index, I think we should
free the memory of the indexoidlist.  Since we free the memory owned by
indexoidlist at end of RelationGetIdentityKeyBitmap().

       if (!OidIsValid(relation->rd_replidindex))
       {
               list_free(indexoidlist);
               return NULL;
       }

Or we can free the memory owned by indexoidlist after check whether it is NIL,
because we do not use it in the later.

If we do not free the memory, there might be a memory leak when
relation->rd_replidindex is invalid.  Am I right?

-- 
Regrads,
Japin Li.
ChengDu WenWu Information Technology Co.,Ltd.



pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Add index OID macro argument to DECLARE_INDEX
Next
From: yuzuko
Date:
Subject: Autovacuum (analyze) on partitioned tables for ATTACH/DETACH/DROP commands