diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2005-10-28 17:27:29 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2005-10-28 17:27:29 +0000 |
commit | 1986ca5ce5031b27a0e35ea0ab7d7c2f479e2afc (patch) | |
tree | d46890abf2c6e33e71e237ee1c6fc4af1249e9df /src/backend/utils/adt/oracle_compat.c | |
parent | 21b748e76acc54ad0c3715e340fdff0865e201eb (diff) | |
download | postgresql-1986ca5ce5031b27a0e35ea0ab7d7c2f479e2afc.tar.gz postgresql-1986ca5ce5031b27a0e35ea0ab7d7c2f479e2afc.zip |
Fix race condition in multixact code: it's possible to try to read a
multixact's starting offset before the offset has been stored into the
SLRU file. A simple fix would be to hold the MultiXactGenLock until the
offset has been stored, but that looks like a big concurrency hit. Instead
rely on knowledge that unset offsets will be zero, and loop when we see
a zero. This requires a little extra hacking to ensure that zero is never
a valid value for the offset. Problem reported by Matteo Beccati, fix
ideas from Martijn van Oosterhout, Alvaro Herrera, and Tom Lane.
Diffstat (limited to 'src/backend/utils/adt/oracle_compat.c')
0 files changed, 0 insertions, 0 deletions