@@ -3320,6 +3320,8 @@ MtmReplicationStartupHook(struct PGLogicalStartupHookArgs* args)
3320
3320
MTM_LOG1 ("Recovered position of node %d is %lx" ,MtmReplicationNodeId ,recoveredLSN );
3321
3321
if (Mtm -> nodes [MtmReplicationNodeId - 1 ].restartLSN < recoveredLSN ) {
3322
3322
MTM_LOG2 ("[restartlsn] node %d: %lx -> %lx (MtmReplicationStartupHook)" ,MtmReplicationNodeId ,Mtm -> nodes [MtmReplicationNodeId - 1 ].restartLSN ,recoveredLSN );
3323
+ Assert (Mtm -> nodes [MtmReplicationNodeId - 1 ].restartLSN == InvalidXLogRecPtr
3324
+ || recoveredLSN < Mtm -> nodes [MtmReplicationNodeId - 1 ].restartLSN + MtmMaxRecoveryLag );
3323
3325
Mtm -> nodes [MtmReplicationNodeId - 1 ].restartLSN = recoveredLSN ;
3324
3326
}
3325
3327
}else {
@@ -3533,7 +3535,8 @@ bool MtmFilterTransaction(char* record, int size)
3533
3535
}
3534
3536
restart_lsn = origin_node == MtmReplicationNodeId ?end_lsn :origin_lsn ;
3535
3537
if (Mtm -> nodes [origin_node - 1 ].restartLSN < restart_lsn ) {
3536
- Assert (restart_lsn != InvalidXLogRecPtr );
3538
+ Assert (Mtm -> nodes [origin_node - 1 ].restartLSN == InvalidXLogRecPtr
3539
+ || restart_lsn < Mtm -> nodes [origin_node - 1 ].restartLSN + MtmMaxRecoveryLag );
3537
3540
MTM_LOG2 ("[restartlsn] node %d: %lx -> %lx (MtmFilterTransaction)" ,MtmReplicationNodeId ,Mtm -> nodes [MtmReplicationNodeId - 1 ].restartLSN ,restart_lsn );
3538
3541
Mtm -> nodes [origin_node - 1 ].restartLSN = restart_lsn ;
3539
3542
}else {