From d8a8e530fb12489b5c5c1ccf4a7d4ab7179054a4 Mon Sep 17 00:00:00 2001 From: Hanefi Onaldi Date: Mon, 21 Feb 2022 22:27:20 +0300 Subject: [PATCH] Lock nodes when building ddl task lists (cherry picked from commit b70949ae8cabb50111667c43da42867688aea848) --- src/backend/distributed/commands/utility_hook.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/distributed/commands/utility_hook.c b/src/backend/distributed/commands/utility_hook.c index 35c525633..d916fed67 100644 --- a/src/backend/distributed/commands/utility_hook.c +++ b/src/backend/distributed/commands/utility_hook.c @@ -1347,7 +1347,8 @@ DDLTaskList(Oid relationId, const char *commandString) List * NodeDDLTaskList(TargetWorkerSet targets, List *commands) { - List *workerNodes = TargetWorkerSetNodeList(targets, NoLock); + /* don't allow concurrent node list changes that require an exclusive lock */ + List *workerNodes = TargetWorkerSetNodeList(targets, RowShareLock); if (list_length(workerNodes) <= 0) {