1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-29 10:41:53 +03:00

Fix crash restart bug introduced in 8356753c21.

The bug was caused by not re-reading the control file during crash
recovery restarts, which lead to an attempt to pfree() shared memory
contents. The fix is to re-read the control file, which seems good
anyway.

It's unclear as of this moment, whether we want to keep the
refactoring introduced in the commit referenced above, or come up with
an alternative approach. But fixing the bug in the mean time seems
like a good idea regardless.

A followup commit will introduce regression test coverage for crash
restarts.

Reported-By: Tom Lane
Discussion: https://postgr.es/m/14134.1505572349@sss.pgh.pa.us
This commit is contained in:
Andres Freund
2017-09-17 01:00:39 -07:00
parent eb5c404b17
commit ec9e05b3c3
4 changed files with 39 additions and 22 deletions

View File

@ -3718,7 +3718,7 @@ PostgresMain(int argc, char *argv[],
CreateDataDirLockFile(false);
/* read control file (error checking and contains config ) */
LocalProcessControlFile();
LocalProcessControlFile(false);
/* Initialize MaxBackends (if under postmaster, was done already) */
InitializeMaxBackends();