Hi!
This is a known issue with synchronous replication [1]. You might inject
into unmodified operation some dummy modification to overcome the
negative sides of such partially committing without source code patching.
On 20.04.2021 19:23, Aleksander Alekseev wrote:
> Although it's unlikely that someone implemented
> an application which deals with important data and "pressed Ctr+C" as
> it's done in psql.
Some client libraries have feature to cancel session that has similar
effect to "Ctrl+C" from psql after specified by client deadline
expiration [2]. Hence, this case might be quite often when application
interacts with database.
> On Mon, Apr 19, 2021 at 10:13 PM Ondřej Žižka <ondrej.zizka@stratox.cz> wrote:
>
> From the synchronous_commit=remote_write level and "higher", I would expect, that when the remote application
(doesn'tmatter if flush, write or apply) would not be applied I would not receive a confirmation about the commit (even
witha warning). Something like, if there is no commit from sync replica, there is no commit on primary and if someone
performsthe steps above, the whole transaction will not send a confirmation.
The warning have to be accounted here and performed commit have not to
be treated as *successful*.
1.
https://www.postgresql.org/message-id/C1F7905E-5DB2-497D-ABCC-E14D4DEE506C%40yandex-team.ru
2.
https://www.postgresql.org/message-id/CANtu0ogbu%2By6Py963p-zKJ535b8zm5AOq7zkX7wW-tryPYi1DA%40mail.gmail.com
--
Regards,
Maksim Milyutin