Re: [COMMITTERS] pgsql: Perform only one ReadControlFile() during startup.

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@postgreSQL.org
Date: 2017-09-16T18:26:34Z
Lists: pgsql-hackers
Hi,

On 2017-09-16 10:32:29 -0400, Tom Lane wrote:
> It's dying at "pfree(localControlFile)".  localControlFile seems to
> be pointing at a region of memory that's entirely zeroes; certainly
> the data that it just moved into shared memory is all zeroes.
> It looks like someone didn't think hard enough about when to reset
> ControlFile to null.

Yep. Just adding a LocalProcessControlFile() reset_shared() works after
removing the assert from LocalProcessControlFile().  That's not what I'm
proposing, just confirming that that's the issue.

Looking into it.

Greetings,

Andres Freund


Commits

  1. Add test for postmaster crash restarts.

  2. Fix crash restart bug introduced in 8356753c212.

  3. Perform only one ReadControlFile() during startup.