postgres.git / summary / log / commit / refs

commit    62b9e3a0ff2d9964e30635ceca825340e71087e1
Author:   Simon Riggs <simon@2ndQuadrant.com>
Date:     Thu Jan 24 14:24:48 2013 +0000

    Fix rare missing cancellations in Hot Standby.
    The machinery around XLOG_HEAP2_CLEANUP_INFO failed
    to correctly pass through the necessary information
    on latestRemovedXid, avoiding cancellations in some
    infrequent concurrent update/cleanup scenarios.
    
    Backpatchable fix to 9.0
    
    Detailed bug report and fix by Noah Misch,
    backpatchable version by me.


src/backend/access/heap/pruneheap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/access/heap/pruneheap.c b/src/backend/access/heap/pruneheap.c index 0cfa8661082..1eec8454717 100644 --- a/src/backend/access/heap/pruneheap.c +++ b/src/backend/access/heap/pruneheap.c @@ -173,7 +173,7 @@ heap_page_prune(Relation relation, Buffer buffer, TransactionId OldestXmin, * initialize the rest of our working state. */ prstate.new_prune_xid = InvalidTransactionId; - prstate.latestRemovedXid = InvalidTransactionId; + prstate.latestRemovedXid = *latestRemovedXid; prstate.nredirected = prstate.ndead = prstate.nunused = 0; memset(prstate.marked, 0, sizeof(prstate.marked)); [parent: 5454344b968d]