Fix valgrind issue: ResetRemoteTransaction

pull/6684/head
Ahmet Gedemenli 2023-01-30 18:07:32 +03:00
parent 47ff03123b
commit 33abfa0838
5 changed files with 16 additions and 16 deletions

View File

@ -705,7 +705,7 @@ CloseConnection(MultiConnection *connection)
/* same for transaction state and shard/placement machinery */
CloseShardPlacementAssociation(connection);
ResetRemoteTransaction(connection);
ResetRemoteTransaction(connection, true);
/* we leave the per-host entry alive */
pfree(connection);
@ -1464,7 +1464,7 @@ AfterXactHostConnectionHandling(ConnectionHashEntry *entry, bool isCommit)
/*
* reset healthy session lifespan connections.
*/
ResetRemoteTransaction(connection);
ResetRemoteTransaction(connection, false);
UnclaimConnection(connection);

View File

@ -684,7 +684,7 @@ TryDropSubscriptionOutsideTransaction(char *subscriptionName,
"SET LOCAL lock_timeout TO '1s'", NULL) != 0)
{
RemoteTransactionAbort(connection);
ResetRemoteTransaction(connection);
ResetRemoteTransaction(connection, true);
return false;
}
@ -695,7 +695,7 @@ TryDropSubscriptionOutsideTransaction(char *subscriptionName,
{
ReportConnectionError(connection, WARNING);
RemoteTransactionAbort(connection);
ResetRemoteTransaction(connection);
ResetRemoteTransaction(connection, true);
return false;
}
@ -714,7 +714,7 @@ TryDropSubscriptionOutsideTransaction(char *subscriptionName,
PQclear(result);
ForgetResults(connection);
RemoteTransactionAbort(connection);
ResetRemoteTransaction(connection);
ResetRemoteTransaction(connection, true);
return true;
}
else
@ -723,7 +723,7 @@ TryDropSubscriptionOutsideTransaction(char *subscriptionName,
PQclear(result);
ForgetResults(connection);
RemoteTransactionAbort(connection);
ResetRemoteTransaction(connection);
ResetRemoteTransaction(connection, true);
return false;
}
}
@ -731,7 +731,7 @@ TryDropSubscriptionOutsideTransaction(char *subscriptionName,
PQclear(result);
ForgetResults(connection);
RemoteTransactionCommit(connection);
ResetRemoteTransaction(connection);
ResetRemoteTransaction(connection, true);
StringInfo alterQuery = makeStringInfo();
appendStringInfo(alterQuery,
@ -803,7 +803,7 @@ TryDropReplicationSlotOutsideTransaction(char *replicationSlotName,
"SET LOCAL lock_timeout TO '1s'", NULL) != 0)
{
RemoteTransactionAbort(connection);
ResetRemoteTransaction(connection);
ResetRemoteTransaction(connection, true);
return false;
}
@ -820,7 +820,7 @@ TryDropReplicationSlotOutsideTransaction(char *replicationSlotName,
{
ReportConnectionError(connection, WARNING);
RemoteTransactionAbort(connection);
ResetRemoteTransaction(connection);
ResetRemoteTransaction(connection, true);
return false;
}
@ -832,7 +832,7 @@ TryDropReplicationSlotOutsideTransaction(char *replicationSlotName,
PQclear(result);
ForgetResults(connection);
RemoteTransactionCommit(connection);
ResetRemoteTransaction(connection);
ResetRemoteTransaction(connection, true);
return true;
}
@ -846,7 +846,7 @@ TryDropReplicationSlotOutsideTransaction(char *replicationSlotName,
PQclear(result);
ForgetResults(connection);
RemoteTransactionAbort(connection);
ResetRemoteTransaction(connection);
ResetRemoteTransaction(connection, true);
return false;
}

View File

@ -860,12 +860,12 @@ MarkRemoteTransactionCritical(struct MultiConnection *connection)
* the main transaction, if the connection is being reused.
*/
void
ResetRemoteTransaction(struct MultiConnection *connection)
ResetRemoteTransaction(struct MultiConnection *connection, bool deleteTxNode)
{
RemoteTransaction *transaction = &connection->remoteTransaction;
/* unlink from list of open transactions, if necessary */
if (transaction->transactionState != REMOTE_TRANS_NOT_STARTED)
if (deleteTxNode && transaction->transactionState != REMOTE_TRANS_NOT_STARTED)
{
/* XXX: Should we error out for a critical transaction? */

View File

@ -370,7 +370,7 @@ SendCommandListToWorkerOutsideTransactionWithConnection(MultiConnection *workerC
}
RemoteTransactionCommit(workerConnection);
ResetRemoteTransaction(workerConnection);
ResetRemoteTransaction(workerConnection, true);
}
@ -488,7 +488,7 @@ SendOptionalCommandListToWorkerOutsideTransactionWithConnection(
RemoteTransactionCommit(workerConnection);
}
ResetRemoteTransaction(workerConnection);
ResetRemoteTransaction(workerConnection, true);
return !failed;
}

View File

@ -130,7 +130,7 @@ extern void MarkRemoteTransactionCritical(struct MultiConnection *connection);
* transaction managment code.
*/
extern void ResetRemoteTransaction(struct MultiConnection *connection);
extern void ResetRemoteTransaction(struct MultiConnection *connection, bool deleteTxNode);
/* perform handling for all in-progress transactions */
extern void CoordinatedRemoteTransactionsPrepare(void);