]> granicus.if.org Git - postgresql/commit
Ensure that num_sync is greater than zero in synchronous_standby_names.
authorFujii Masao <fujii@postgresql.org>
Fri, 16 Dec 2016 17:20:59 +0000 (02:20 +0900)
committerFujii Masao <fujii@postgresql.org>
Fri, 16 Dec 2016 17:25:47 +0000 (02:25 +0900)
commit6c75fb6b3dbeda4dac19cee8f2d5cc7f38f362ee
tree195321964122173b062cc709963aa4aafdb81e38
parent6f734554c38811316a9d6951b4500a6d1b0b84aa
Ensure that num_sync is greater than zero in synchronous_standby_names.

Previously num_sync could be set to zero and this setting caused
an assertion failure. This means that multiple synchronous standbys
code should assume that num_sync is greater than zero.
Also setting num_sync to zero is nonsense because it's basically
the configuration for synchronous replication. If users want not to
make transaction commits wait for any standbys,
synchronous_standby_names should be emptied to disable synchronous
replication instead of setting num_sync to zero.

This patch forbids users from setting num_sync to zero in
synchronous_standby_names. If zero is specified, an error will
happen during processing the parameter settings.

Back-patch to 9.6 where multiple synchronous standbys feature was added.

Patch by me. Reviewed by Tom Lane.
Discussion: <CAHGQGwHWB3izc6cXuFLh5kOcAbFXaRhhgwd-X5PeN9TEjxqXwg@mail.gmail.com>
src/backend/replication/syncrep.c