mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-03-07 19:47:50 +08:00
Fix incorrect math in DetermineSafeOldestOffset.
The old formula didn't have enough parentheses, so it would do the wrong
thing, and it used / rather than % to find a remainder. The effect of
these oversights is that the stop point chosen by the logic introduced in
commit b69bf30b9b
might be rather
meaningless.
Thomas Munro, reviewed by Kevin Grittner, with a whitespace tweak by me.
This commit is contained in:
parent
82ec7c95b7
commit
7be47c56af
@ -2495,7 +2495,8 @@ DetermineSafeOldestOffset(MultiXactId oldestMXact)
|
||||
*/
|
||||
oldestOffset = find_multixact_start(oldestMXact);
|
||||
/* move back to start of the corresponding segment */
|
||||
oldestOffset -= oldestOffset / MULTIXACT_MEMBERS_PER_PAGE * SLRU_PAGES_PER_SEGMENT;
|
||||
oldestOffset -= oldestOffset %
|
||||
(MULTIXACT_MEMBERS_PER_PAGE * SLRU_PAGES_PER_SEGMENT);
|
||||
|
||||
LWLockAcquire(MultiXactGenLock, LW_EXCLUSIVE);
|
||||
/* always leave one segment before the wraparound point */
|
||||
|
Loading…
Reference in New Issue
Block a user