Re: START_REPLICATION SLOT causing a crash in an assert build - Mailing list pgsql-hackers

From Andres Freund
Subject Re: START_REPLICATION SLOT causing a crash in an assert build
Date
Msg-id 20221006004448.6tetjuqfdg5hnkdp@awork3.anarazel.de
Whole thread Raw
In response to Re: START_REPLICATION SLOT causing a crash in an assert build  ("Jonathan S. Katz" <jkatz@postgresql.org>)
Responses Re: START_REPLICATION SLOT causing a crash in an assert build
List pgsql-hackers
Hi,

On 2022-10-05 13:00:53 -0400, Jonathan S. Katz wrote:
> On 9/27/22 1:52 AM, Kyotaro Horiguchi wrote:
> > Thanks!
> > 
> > At Mon, 26 Sep 2022 19:53:02 -0700, Andres Freund <andres@anarazel.de> wrote in
> > > I wonder if the correct fix here wouldn't be to move the slotname out of
> > > PgStat_StatReplSlotEntry?
> > 
> > Ugh. Right. I thought its outer struct as purely the part for the
> > common header. But we can freely place anything after the header
> > part. I moved it to the outer struct. I didn't clear that part in
> > pgstat_create_relation() because it is filled in immediately.
> > 
> > The attached is that.
> 
> This is still listed as an open item[1] for v15. Does this fix proposed
> address the issue?

Unfortunately not - it doesn't even pass the existing tests
(test_decoding/001_repl_stats fails) :(.

The reason for that is that with the patch nothing restores the slotname when
reading stats from disk. That turns out not to cause immediate issues, but at
the next shutdown the name won't be set, and we'll serialize the stats data
with an empty string as the name.

I have two ideas how to fix it. As a design constraint, I'd be interested in
the RMTs opinion on the following:
Is a cleaner fix that changes the stats format (i.e. existing stats will be
thrown away when upgrading) or one that doesn't change the stats format
preferrable?

Greetings,

Andres Freund



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: shadow variables - pg15 edition
Next
From: Michael Paquier
Date:
Subject: Re: Patch proposal: make use of regular expressions for the username in pg_hba.conf