нас был пример с автокоммитом. Считать это багом? В комментах в исходниках https://github.com/postgres/postgres/blob/master/src/backend/replication/syncrep.c#L239-L276 этот случай явно описывается. Скорее всего, это особенность, которую желательно бы отразить в доке
Нет там именно такого примера — потому и позиции Ваши слабее, чем могли бы быть. ;) > этот случай явно описывается. Как Вы вот это читаете? ——— If a wait for synchronous replication is pending, we can neither acknowledge the commit nor raise ERROR or FATAL. The latter would lead the client to believe that the transaction aborted, which is not true: it's already committed locally. The former is no good either: the client has requested synchronous replication, and is entitled to assume that an acknowledged commit is also replicated, which might not be true. So in this case we issue a WARNING (which some clients may be able to interpret) and shut off further output. ——— Я — так, что никакого tag после отмены "COMMIT" не должно быть вообще. Какого ... PostreSQL отвечает: WARNING: canceling wait for synchronous replication due to user request DETAIL: The transaction has already committed locally, but might not have been replicated to the standby. COMMIT -- Это же как раз "acknowledge the commit", или я неправильно вижу?
> мы на это указали, только у нас был пример с автокоммитом. С автокоммитом просто не на что (нет явной команды COMMIT) ответить commit/rollback/ничего. А вот когда он есть — насколько я вижу, поведение противоречит как документации, так и тому, что написано в комментариях. Т.е. я бы на Вашем месте написал это в thread, или вообще в -bugs, в крайнем случае.
Обсуждают сегодня