From fc63d9102f27e83ceb38f0fd3486f41a883a7b69 Mon Sep 17 00:00:00 2001
From: Rishu Bagga <bagrishu@amazon.com>
Date: Wed, 14 Dec 2022 00:01:30 +0000
Subject: [PATCH] move end of  critical section to right after we finish
 writing offsets

---
 src/backend/access/transam/multixact.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c
index e1191a7564c..77d2b4e0d1c 100644
--- a/src/backend/access/transam/multixact.c
+++ b/src/backend/access/transam/multixact.c
@@ -840,9 +840,6 @@ MultiXactIdCreateFromMembers(int nmembers, MultiXactMember *members)
 	/* Now enter the information into the OFFSETs and MEMBERs logs */
 	RecordNewMultiXact(multi, offset, nmembers, members);
 
-	/* Done with critical section */
-	END_CRIT_SECTION();
-
 	/* Store the new MultiXactId in the local cache, too */
 	mXactCachePut(multi, nmembers, members);
 
@@ -889,6 +886,9 @@ RecordNewMultiXact(MultiXactId multi, MultiXactOffset offset,
 
 	MultiXactOffsetCtl->shared->page_dirty[slotno] = true;
 
+	/* Done with critical section */
+	END_CRIT_SECTION();
+
 	/* Exchange our lock */
 	LWLockRelease(MultiXactOffsetSLRULock);
 
-- 
2.38.1

