On Tue, Jul 12, 2022 at 5:58 PM shiy.f...@fujitsu.com <shiy.f...@fujitsu.com> wrote: > > On Tue, Jul 12, 2022 8:49 AM Masahiko Sawada <sawada.m...@gmail.com> wrote: > > > > I've attached an updated patch. > > > > Hi, > > I met a segmentation fault in test_decoding test after applying the patch for > master > branch. Attach the backtrace.
Thank you for testing the patch! > > It happened when executing the following code because it tried to free a NULL > pointer (catchange_xip). > > /* be tidy */ > if (ondisk) > pfree(ondisk); > + if (catchange_xip) > + pfree(catchange_xip); > } > > It seems to be related to configure option. I could reproduce it when using > `./configure --enable-debug`. > But I couldn't reproduce with `./configure --enable-debug CFLAGS="-Og -ggdb"`. Hmm, I could not reproduce this problem even if I use ./configure --enable-debug. And it's weird that we checked if catchange_xip is not null but we did pfree for it: #1 pfree (pointer=0x0) at mcxt.c:1177 #2 0x000000000078186b in SnapBuildSerialize (builder=0x1fd5e78, lsn=25719712) at snapbuild.c:1792 Is it reproducible in your environment? If so, could you test it again with the following changes? diff --git a/src/backend/replication/logical/snapbuild.c b/src/backend/replication/logical/snapbuild.c index d015c06ced..a6e76e3781 100644 --- a/src/backend/replication/logical/snapbuild.c +++ b/src/backend/replication/logical/snapbuild.c @@ -1788,7 +1788,7 @@ out: /* be tidy */ if (ondisk) pfree(ondisk); - if (catchange_xip) + if (catchange_xip != NULL) pfree(catchange_xip); } Regards, -- Masahiko Sawada EDB: https://www.enterprisedb.com/