Initialize replication_slot_catalog_xmin in procarray
authorPeter Eisentraut
Wed, 16 Aug 2017 01:05:21 +0000 (21:05 -0400)
committerPeter Eisentraut
Wed, 16 Aug 2017 01:06:33 +0000 (21:06 -0400)
Although not confirmed and probably rare, if the newly allocated memory
is not already zero, this could possibly have caused some problems.

Also reorder the initializations slightly so they match the order of the
struct definition.

Author: Wong, Yi Wen 
Reviewed-by: Masahiko Sawada
src/backend/storage/ipc/procarray.c

index a905b0a7d661c734d28951f45cea897181e8d32c..4b7e84ca59b42d44264312d39c87611ae5396b63 100644 (file)
@@ -235,13 +235,14 @@ CreateSharedProcArray(void)
         */
        procArray->numProcs = 0;
        procArray->maxProcs = PROCARRAY_MAXPROCS;
-       procArray->replication_slot_xmin = InvalidTransactionId;
        procArray->maxKnownAssignedXids = TOTAL_MAX_CACHED_SUBXIDS;
        procArray->numKnownAssignedXids = 0;
        procArray->tailKnownAssignedXids = 0;
        procArray->headKnownAssignedXids = 0;
        SpinLockInit(&procArray->known_assigned_xids_lck);
        procArray->lastOverflowedXid = InvalidTransactionId;
+       procArray->replication_slot_xmin = InvalidTransactionId;
+       procArray->replication_slot_catalog_xmin = InvalidTransactionId;
    }
 
    allProcs = ProcGlobal->allProcs;