mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-03 12:47:20 +02:00
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.
This commit is contained in:
parent
16695d601e
commit
137e4da6df
@ -1258,6 +1258,7 @@ retry:
|
|||||||
{
|
{
|
||||||
/* Corner case 2: next multixact is still being filled in */
|
/* Corner case 2: next multixact is still being filled in */
|
||||||
LWLockRelease(MultiXactOffsetControlLock);
|
LWLockRelease(MultiXactOffsetControlLock);
|
||||||
|
CHECK_FOR_INTERRUPTS();
|
||||||
pg_usleep(1000L);
|
pg_usleep(1000L);
|
||||||
goto retry;
|
goto retry;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user