pgsql: Fix race condition in multixact code: it's possible to try to - Mailing list pgsql-committers

From tgl@svr1.postgresql.org (Tom Lane)
Subject pgsql: Fix race condition in multixact code: it's possible to try to
Date
Msg-id 20051028172730.10940DB186@svr1.postgresql.org
Whole thread Raw
List pgsql-committers
Log Message:
-----------
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.

Modified Files:
--------------
    pgsql/src/backend/access/transam:
        multixact.c (r1.9 -> r1.10)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/multixact.c.diff?r1=1.9&r2=1.10)

pgsql-committers by date:

Previous
From: teodor@svr1.postgresql.org (Teodor Sigaev)
Date:
Subject: pgsql: 1 Fix problem with lost precision in rank with OR-ed lexemes 2
Next
From: tgl@svr1.postgresql.org (Tom Lane)
Date:
Subject: pgsql: Clean up AIX build to avoid 'duplicate symbol' warnings, by