From: Kyotaro Horiguchi <horikyota....@gmail.com> > > if (PQstatus(entry->conn) != CONNECTION_OK || > > PQtransactionStatus(entry->conn) != PQTRANS_IDLE || > > entry->changing_xact_state) > > { > > elog(DEBUG3, "discarding connection %p", entry->conn); > > disconnect_pg_server(entry); > > } > > Right. Although it's not directly relevant to this discussion, > precisely, that part is not visited just after the remote "COMMIT > TRANSACTION" failed. If that commit fails or is canceled, an exception > is raised while entry->changing_xact_state = true. Then the function > is called again within AbortCurrentTransaction() and reaches the above > code.
Ah, then the connection to the foreign server is closed after failing to cancel the query. Thanks. Regards Takayuki Tsunakawa