Re: Transactions involving multiple postgres foreign servers, take 2
От | Fujii Masao |
---|---|
Тема | Re: Transactions involving multiple postgres foreign servers, take 2 |
Дата | |
Msg-id | 64e5b741-1635-1656-3165-ead195b320a8@oss.nttdata.com обсуждение исходный текст |
Ответ на | Re: Transactions involving multiple postgres foreign servers, take 2 (Masahiko Sawada <masahiko.sawada@2ndquadrant.com>) |
Список | pgsql-hackers |
On 2020/07/15 15:06, Masahiko Sawada wrote: > On Tue, 14 Jul 2020 at 09:08, Masahiro Ikeda <ikedamsh@oss.nttdata.com> wrote: >> >>> I've attached the latest version patches. I've incorporated the review >>> comments I got so far and improved locking strategy. >> >> Thanks for updating the patch! >> I have three questions about the v23 patches. >> >> >> 1. messages related to user canceling >> >> In my understanding, there are two messages >> which can be output when a user cancels the COMMIT command. >> >> A. When prepare is failed, the output shows that >> committed locally but some error is occurred. >> >> ``` >> postgres=*# COMMIT; >> ^CCancel request sent >> WARNING: canceling wait for resolving foreign transaction due to user >> request >> DETAIL: The transaction has already committed locally, but might not >> have been committed on the foreign server. >> ERROR: server closed the connection unexpectedly >> This probably means the server terminated abnormally >> before or while processing the request. >> CONTEXT: remote SQL command: PREPARE TRANSACTION >> 'fx_1020791818_519_16399_10' >> ``` >> >> B. When prepare is succeeded, >> the output show that committed locally. >> >> ``` >> postgres=*# COMMIT; >> ^CCancel request sent >> WARNING: canceling wait for resolving foreign transaction due to user >> request >> DETAIL: The transaction has already committed locally, but might not >> have been committed on the foreign server. >> COMMIT >> ``` >> >> In case of A, I think that "committed locally" message can confuse user. >> Because although messages show committed but the transaction is >> "ABORTED". >> >> I think "committed" message means that "ABORT" is committed locally. >> But is there a possibility of misunderstanding? > > No, you're right. I'll fix it in the next version patch. > > I think synchronous replication also has the same problem. It says > "the transaction has already committed" but it's not true when > executing ROLLBACK PREPARED. Yes. Also the same message is logged when executing PREPARE TRANSACTION. Maybe it should be changed to "the transaction has already prepared". Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION
В списке pgsql-hackers по дате отправления: