diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c index 928f9fe5d6cc9847b2c7c01ddfded292a3e9135c..cbb69f5e10cfab5742d9d5c2df35f5e179afffdb 100644 --- a/src/backend/access/transam/multixact.c +++ b/src/backend/access/transam/multixact.c @@ -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 */