Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita0e253b

Browse files
knizhnikkelvich
authored andcommitted
Fix recovery completed message handling
1 parent6f5342c commita0e253b

File tree

4 files changed

+6
-5
lines changed

4 files changed

+6
-5
lines changed

‎multimaster.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3293,6 +3293,7 @@ void MtmRecoverNode(int nodeId)
32933293
{
32943294
Assert(BIT_CHECK(Mtm->disabledNodeMask,nodeId-1));
32953295
BIT_CLEAR(Mtm->stoppedNodeMask,nodeId-1);
3296+
BIT_CLEAR(Mtm->stalledNodeMask,nodeId-1);
32963297
}
32973298
MtmUnlock();
32983299

@@ -3551,8 +3552,8 @@ MtmReplicationRowFilterHook(struct PGLogicalRowFilterArgs* args)
35513552
* Filter received transactions at destination side.
35523553
* This function is executed by receiver,
35533554
* so there are no race conditions and it is possible to update nodes[i].restartLSN without lock.
3554-
* It is more efficient to filter records at senders size (done by MtmReplicationTxnFilterHook) to avoid sending useless data through network.But asynchronous nature of
3555-
* logical replications makes it not possible to guarantee (at least I failed to do it)
3555+
* It is more efficient to filter records at senders size (done by MtmReplicationTxnFilterHook) to avoid sending useless data through network.
3556+
*But asynchronous nature oflogical replications makes it not possible to guarantee (at least I failed to do it)
35563557
* that replica do not receive deteriorated data.
35573558
*/
35583559
boolMtmFilterTransaction(char*record,intsize)

‎pglogical_apply.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1119,7 +1119,7 @@ void MtmExecutor(void* work, size_t size)
11191119
case'Z':
11201120
{
11211121
MtmRecoveryCompleted();
1122-
continue;
1122+
break;
11231123
}
11241124
default:
11251125
elog(ERROR,"unknown action of type %c",action);

‎pglogical_proto.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ pglogical_write_commit(StringInfo out, PGLogicalOutputData *data,
182182
{
183183
uint8event=0;
184184

185-
MTM_LOG1("%d: pglogical_write_commit XID=%ld node=%d restart_decoding_lsn=%lx first_lsn=%lx end_lsn=%lx confirmed_flush=%lx",
185+
MTM_LOG2("%d: pglogical_write_commit XID=%ld node=%d restart_decoding_lsn=%lx first_lsn=%lx end_lsn=%lx confirmed_flush=%lx",
186186
MyProcPid, (long)txn->xid,MtmReplicationNodeId,txn->restart_decoding_lsn,txn->first_lsn,txn->end_lsn,MyReplicationSlot->data.confirmed_flush);
187187

188188

‎tests2/test_recovery.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def tearDownClass(self):
8787
print('tearDown')
8888
self.client.stop()
8989
# XXX: check nodes data identity here
90-
subprocess.check_call(['docker-compose','down'])
90+
# subprocess.check_call(['docker-compose','down'])
9191

9292
defsetUp(self):
9393
warnings.simplefilter("ignore",ResourceWarning)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp