There's a small window wherein a transaction is committed but not yet

on the finished list, and we shouldn't flag it as a potential conflict
if so. We can also skip adding a doomed transaction to the list of
possible conflicts because we know it won't commit.

Dan Ports and Kevin Grittner.
This commit is contained in:
Heikki Linnakangas 2011-07-08 00:36:30 +03:00
parent 406d61835b
commit bdaabb9b22
1 changed files with 3 additions and 2 deletions

View File

@ -1677,8 +1677,9 @@ RegisterSerializableTransactionInt(Snapshot snapshot)
othersxact != NULL; othersxact != NULL;
othersxact = NextPredXact(othersxact)) othersxact = NextPredXact(othersxact))
{ {
if (!SxactIsOnFinishedList(othersxact) && if (!SxactIsCommitted(othersxact)
!SxactIsReadOnly(othersxact)) && !SxactIsDoomed(othersxact)
&& !SxactIsReadOnly(othersxact))
{ {
SetPossibleUnsafeConflict(sxact, othersxact); SetPossibleUnsafeConflict(sxact, othersxact);
} }