From ead9d28835acd56044a19b398ae1300d7920d79b Mon Sep 17 00:00:00 2001 From: Marco Slot Date: Fri, 5 Aug 2022 18:48:03 +0200 Subject: [PATCH] Avoid deadlocks on split failure by closing connections --- src/backend/distributed/operations/shard_split.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/backend/distributed/operations/shard_split.c b/src/backend/distributed/operations/shard_split.c index b69792514..6ef99a321 100644 --- a/src/backend/distributed/operations/shard_split.c +++ b/src/backend/distributed/operations/shard_split.c @@ -575,6 +575,9 @@ BlockingShardSplit(SplitOperation splitOperation, } PG_CATCH(); { + /* end ongoing transactions to enable us to clean up */ + ShutdownAllConnections(); + /* Do a best effort cleanup of shards created on workers in the above block */ TryDropSplitShardsOnFailure(mapOfShardToPlacementCreatedByWorkflow); @@ -1447,6 +1450,9 @@ NonBlockingShardSplit(SplitOperation splitOperation, } PG_CATCH(); { + /* end ongoing transactions to enable us to clean up */ + ShutdownAllConnections(); + /* Do a best effort cleanup of shards created on workers in the above block */ TryDropSplitShardsOnFailure(mapOfShardToPlacementCreatedByWorkflow);