mirror of
https://github.com/postgres/postgres.git
synced 2026-06-11 01:30:11 -04:00
Prevent pg_enable/disable_data_checksums() on standby
These functions missed a RecoveryInProgress() check, allowing them to be called on a hot standby. Enabling, or disabling, checksums on the standby only would cause the cluster to get out of sync and replaying checksum transitions to fail. Author: Satyanarayana Narlapuram <satyanarlapuram@gmail.com> Reviewed-by: Ayush Tiwari <ayushtiwari.slg01@gmail.com> Reviewed-by: Tomas Vondra <tomas@vondra.me> Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Discussion: https://postgr.es/m/CAHg+QDfRk4-S7DMmdbXJnQ-xF=sUpMAKuh8b83ObLqYVKx5QLA@mail.gmail.com
This commit is contained in:
parent
2bf6c9ff71
commit
b120358c61
1 changed files with 4 additions and 0 deletions
|
|
@ -487,6 +487,8 @@ AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier)
|
|||
Datum
|
||||
disable_data_checksums(PG_FUNCTION_ARGS)
|
||||
{
|
||||
PreventCommandDuringRecovery("pg_disable_data_checksums()");
|
||||
|
||||
if (!superuser())
|
||||
ereport(ERROR,
|
||||
errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||
|
|
@ -507,6 +509,8 @@ enable_data_checksums(PG_FUNCTION_ARGS)
|
|||
int cost_delay = PG_GETARG_INT32(0);
|
||||
int cost_limit = PG_GETARG_INT32(1);
|
||||
|
||||
PreventCommandDuringRecovery("pg_enable_data_checksums()");
|
||||
|
||||
if (!superuser())
|
||||
ereport(ERROR,
|
||||
errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||
|
|
|
|||
Loading…
Reference in a new issue