Content-Length: 255826 | pFad | http://github.com/postgrespro/postgres_cluster/commit/51f9ea25dc4296948eb851a851bb60e0860c70a1

22 Allow interrupting GetMultiXactIdMembers · postgrespro/postgres_cluster@51f9ea2 · GitHub
Skip to content

Commit 51f9ea2

Browse files
committed
Allow interrupting GetMultiXactIdMembers
This function has a loop which can lead to uninterruptible process "stalls" (actually infinite loops) when some bugs are triggered. Avoid that unpleasant situation by adding a check for interrupts in a place that shouldn't degrade performance in the normal case. Backpatch to 9.3. Older branches have an identical loop here, but the aforementioned bugs are only a problem starting in 9.3 so there doesn't seem to be any point in backpatching any further.
1 parent 0c5af0a commit 51f9ea2

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

src/backend/access/transam/multixact.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1278,6 +1278,7 @@ GetMultiXactIdMembers(MultiXactId multi, MultiXactMember **members,
12781278
{
12791279
/* Corner case 2: next multixact is still being filled in */
12801280
LWLockRelease(MultiXactOffsetControlLock);
1281+
CHECK_FOR_INTERRUPTS();
12811282
pg_usleep(1000L);
12821283
goto retry;
12831284
}

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/postgrespro/postgres_cluster/commit/51f9ea25dc4296948eb851a851bb60e0860c70a1

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy