1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-07-17 01:12:23 +02:00

Skip recovery.signal for PostgreSQL >= 12 when recovery type=none.

Bring PostgreSQL >= 12 behavior in line with other versions when recovery type=none.

We are fairly sure this did not work correctly when PostgreSQL 12 was released, but apparently the issue has been fixed since then. Either way, after testing we have determined that the behavior is now as expected.
This commit is contained in:
David Steele
2023-05-24 16:34:21 +03:00
committed by GitHub
parent 36ff81dc6f
commit 9cceed6ac4
3 changed files with 23 additions and 9 deletions

View File

@ -16,6 +16,21 @@
<release-list>
<release date="XXXX-XX-XX" version="2.47dev" title="UNDER DEVELOPMENT">
<release-core-list>
<release-bug-list>
<release-item>
<github-issue id="2062"/>
<github-pull-request id="2070"/>
<release-item-contributor-list>
<release-item-ideator id="t.anastacio"/>
<release-item-contributor id="david.steele"/>
<release-item-reviewer id="stefan.fercot"/>
</release-item-contributor-list>
<p>Skip <file>recovery.signal</file> for <postgres/> &gt;= 12 when recovery <br-option>type=none</br-option>.</p>
</release-item>
</release-bug-list>
<release-improvement-list>
<release-item>
<commit subject="Refactor allow list processing in config/parse module."/>
@ -12980,6 +12995,11 @@
<contributor-id type="github">sfrost</contributor-id>
</contributor>
<contributor id="t.anastacio">
<contributor-name-display>T.Anastacio</contributor-name-display>
<contributor-id type="github">Tiago-Anastacio</contributor-id>
</contributor>
<contributor id="tim.garton">
<contributor-name-display>Tim Garton</contributor-name-display>
<contributor-id type="github">ralfthewise</contributor-id>

View File

@ -1880,7 +1880,7 @@ restoreRecoveryWriteAutoConf(
}
// Else the recovery.signal file is required for targeted recovery. Skip writing this file if the backup was offline and
// recovery type is none since PostgreSQL will error in this case when wal_level=minimal.
else if (cfgOptionStrId(cfgOptType) != CFGOPTVAL_TYPE_NONE || manifestData(manifest)->backupOptionOnline)
else if (cfgOptionStrId(cfgOptType) != CFGOPTVAL_TYPE_NONE)
{
storagePutP(
storageNewWriteP(

View File

@ -1897,10 +1897,7 @@ testRun(void)
TEST_STORAGE_GET_EMPTY(storagePg(), PG_FILE_POSTGRESQLAUTOCONF, .comment = "check postgresql.auto.conf");
TEST_STORAGE_LIST(
storagePg(), NULL,
PG_FILE_POSTGRESQLAUTOCONF "\n"
PG_FILE_RECOVERYSIGNAL "\n",
.comment = "recovery.signal exists, standby.signal missing");
storagePg(), NULL, PG_FILE_POSTGRESQLAUTOCONF "\n", .comment = "recovery.signal exists, standby.signal missing");
TEST_RESULT_LOG(
"P00 WARN: postgresql.auto.conf does not exist -- creating to contain recovery settings\n"
@ -1924,10 +1921,7 @@ testRun(void)
RECOVERY_SETTING_PREFIX "\t recovery_target_action='promote'\n\n",
.comment = "check postgresql.auto.conf");
TEST_STORAGE_LIST(
storagePg(), NULL,
PG_FILE_POSTGRESQLAUTOCONF "\n"
PG_FILE_RECOVERYSIGNAL "\n",
.comment = "recovery.signal exists, standby.signal missing");
storagePg(), NULL, PG_FILE_POSTGRESQLAUTOCONF "\n", .comment = "recovery.signal exists, standby.signal missing");
TEST_RESULT_LOG("P00 INFO: write updated " TEST_PATH "/pg/postgresql.auto.conf");