Try to set takenDuringRecovery appropriately.
authorRobert Haas <rhaas@postgresql.org>
Fri, 7 Oct 2011 16:26:59 +0000 (12:26 -0400)
committerRobert Haas <rhaas@postgresql.org>
Fri, 14 Oct 2011 18:38:15 +0000 (14:38 -0400)
src/backend/storage/ipc/snaparray.c

index 0c780c486d7b70052a02c668dabc0824486fbc97..1c71d5bf3218a961ec9d61fc59b648a55abdee21 100644 (file)
@@ -669,7 +669,8 @@ retry:
        if (num_running_xids > 0)
                memcpy(snapshot->oxip, SnapArrayCache.buffer + SNAPARRAY_SUMMARY_ITEMS,
                           num_running_xids * sizeof(TransactionId));
-       snapshot->takenDuringRecovery = true;           /* XXX FIXME */
+       /* XXX Is there a race condition setting takenDuringRecovery? */
+       snapshot->takenDuringRecovery = RecoveryInProgress();
        snapshot->highest_removed_subxid = SnapArrayCache.buffer[2];
        snapshot->curcid = GetCurrentCommandId(false);