Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 90e0d3e

Browse files
committed
RecoveryFilterLoad: use GetFlushRecPtr instead of GetLastImportantRecPtr (which can be zero right after start) and fix loop exit condition
1 parent 2ef8627 commit 90e0d3e

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/syncpoint.c

+11-9
Original file line numberDiff line numberDiff line change
@@ -419,13 +419,15 @@ QueryRecoveryHorizon(PGconn *conn, int node_id, Syncpoint *local_spvector)
419419
HTAB *
420420
RecoveryFilterLoad(int filter_node_id, Syncpoint *spvector)
421421
{
422-
XLogReaderState *xlogreader;
423-
HASHCTL hash_ctl;
424-
HTAB *filter_map;
425-
int estimate_size;
426-
XLogRecPtr start_lsn = UINT64_MAX;
427-
XLogRecPtr current_last_lsn = GetLastImportantRecPtr();
428-
int i;
422+
XLogReaderState *xlogreader;
423+
HASHCTL hash_ctl;
424+
HTAB *filter_map;
425+
int estimate_size;
426+
XLogRecPtr start_lsn = UINT64_MAX;
427+
XLogRecPtr current_last_lsn = GetFlushRecPtr();
428+
int i;
429+
430+
Assert(current_last_lsn != InvalidXLogRecPtr);
429431

430432
/* start from minimal among all of syncpoints */
431433
for (i = 0; i < MtmMaxNodes; i++)
@@ -445,7 +447,7 @@ RecoveryFilterLoad(int filter_node_id, Syncpoint *spvector)
445447
HASH_ELEM | HASH_BLOBS | HASH_CONTEXT);
446448

447449
mtm_log(MtmReceiverStart,
448-
"load_filter_map from %"INT64_MODIFIER"x node_id=%d current_last_lsn=%"INT64_MODIFIER"x",
450+
"load_filter_map from " LSN_FMT " node_id=%d current_last_lsn=" LSN_FMT,
449451
start_lsn, filter_node_id, current_last_lsn);
450452

451453
Assert(start_lsn != InvalidXLogRecPtr);
@@ -567,7 +569,7 @@ RecoveryFilterLoad(int filter_node_id, Syncpoint *spvector)
567569
Assert(!found);
568570
}
569571

570-
} while (xlogreader->ReadRecPtr < current_last_lsn);
572+
} while (xlogreader->EndRecPtr < current_last_lsn);
571573

572574
XLogReaderFree(xlogreader);
573575
return filter_map;

0 commit comments

Comments
 (0)