Fix GetNewTransactionId()'s interaction with xidVacLimit.

Thomas Munro <tmunro@postgresql.org>

Commit: f7feb020c3d8d5aff24204af28359b99ee65bf8f
Author: Thomas Munro <tmunro@postgresql.org>
Date: 2019-04-12T04:47:50Z
Releases: 12.0
Fix GetNewTransactionId()'s interaction with xidVacLimit.

Commit ad308058 switched to returning a FullTransactionId, but
failed to load the potentially updated value in the case where
xidVacLimit is reached and we release and reacquire the lock.
Repair, closing bug #15727.

While reviewing that commit, also fix the size computation used
by EstimateTransactionStateSize() and switch to the mul_size()
macro traditionally used in such expressions.

Author: Thomas Munro
Reported-by: Roman Zharkov
Discussion: https://postgr.es/m/15727-0be246e7d852d229%40postgresql.org

Files

PathChange+/−
src/backend/access/transam/varsup.c modified +2 −1
src/backend/access/transam/xact.c modified +1 −1

Discussion