]> granicus.if.org Git - postgresql/commit
Fix off-by-one error in calculating subtrans/multixact truncation point.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 22 Jul 2015 22:30:07 +0000 (01:30 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 22 Jul 2015 22:30:07 +0000 (01:30 +0300)
commita9b3a22aa18345451a20696fe272b6e02f5a2bbb
treee919ab1aee668f397842e3ce3a9248e850566c51
parent41ae3b74d987d5d42f2c432812285c7d12d6f4c1
Fix off-by-one error in calculating subtrans/multixact truncation point.

If there were no subtransactions (or multixacts) active, we would calculate
the oldestxid == next xid. That's correct, but if next XID happens to be
on the next pg_subtrans (pg_multixact) page, the page does not exist yet,
and SimpleLruTruncate will produce an "apparent wraparound" warning. The
warning is harmless in this case, but looks very alarming to users.

Backpatch to all supported versions. Patch and analysis by Thomas Munro.
src/backend/access/transam/multixact.c
src/backend/access/transam/subtrans.c