From d24cefd0553ea2f1fb96f4ff9cee04f21cbc6713 Mon Sep 17 00:00:00 2001 From: Hadi Moshayedi Date: Wed, 18 Sep 2019 18:39:23 -0700 Subject: [PATCH] Set active snapshot before SyncMetadataToNodes(). --- src/backend/distributed/utils/maintenanced.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/backend/distributed/utils/maintenanced.c b/src/backend/distributed/utils/maintenanced.c index 6f274daa9..9b640c5d7 100644 --- a/src/backend/distributed/utils/maintenanced.c +++ b/src/backend/distributed/utils/maintenanced.c @@ -375,6 +375,12 @@ CitusMaintenanceDaemonMain(Datum main_arg) InvalidateMetadataSystemCache(); StartTransactionCommand(); + /* + * Some functions in ruleutils.c, which we use to get the DDL for + * metadata propagation, require an active snapshot. + */ + PushActiveSnapshot(GetTransactionSnapshot()); + if (!LockCitusExtension()) { ereport(DEBUG1, (errmsg("could not lock the citus extension, " @@ -386,6 +392,7 @@ CitusMaintenanceDaemonMain(Datum main_arg) Async_Notify(METADATA_SYNC_CHANNEL, NULL); } + PopActiveSnapshot(); CommitTransactionCommand(); ProcessCompletedNotifies();