On Wed, 2009-09-30 at 09:33 +0300, Heikki Linnakangas wrote:
> Looking at the changes to StartupMultiXact, you're changing the locking
> so that both MultiXactOffsetControlLock and MultiXactMemberControlLock
> are acquire first before changing anything. Why? Looking at the other
> functions in that file, all others that access both files are happy to
> acquire one lock at a time, like StartupMultiXact does without the patch.
I think those changes are just paranoia from early versions of patch.
We now know for certain that MultiXact isn't used at the time
StartupMultiXact() is called. The same isn't true for StartupClog() and
StartupSubtrans() which need to cope with concurrent callers.
Will remove changes and document that nothing touching it when it runs.
-- Simon Riggs www.2ndQuadrant.com