Skip to content

Commit 349da58

Browse files
committed
INDY-2215: add re-ask LedgerStatuses for the init catchup
Signed-off-by: toktar <[email protected]>
1 parent 2f1f838 commit 349da58

File tree

2 files changed

+25
-23
lines changed

2 files changed

+25
-23
lines changed

plenum/server/catchup/cons_proof_service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def start(self, request_ledger_statuses: bool):
6666

6767
if request_ledger_statuses:
6868
self._request_ledger_status_from_nodes()
69-
self._schedule_reask_ledger_status()
69+
self._schedule_reask_ledger_status()
7070

7171
def process_ledger_status(self, ledger_status: LedgerStatus, frm: str):
7272
if not self._can_process_ledger_status(ledger_status):

plenum/test/node_catchup/test_node_catchup_with_connection_problem.py

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import pytest
22
from plenum.common.config_helper import PNodeConfigHelper
3+
from plenum.common.messages.node_messages import LedgerStatus, ConsistencyProof
34
from plenum.common.util import getCallableName
5+
from plenum.server.router import Route
46
from plenum.test.helper import sdk_send_random_and_check
57
from plenum.test.node_catchup.helper import waitNodeDataEquality
68
from plenum.test.pool_transactions.helper import \
@@ -12,7 +14,7 @@
1214
call_count = 0
1315

1416

15-
@pytest.fixture(scope='function', params=range(1, 4))
17+
@pytest.fixture(scope='function', params=range(1, 5))
1618
def lost_count(request):
1719
return request.param
1820

@@ -31,14 +33,6 @@ def test_catchup_with_lost_ledger_status(txnPoolNodeSet,
3133

3234
node_to_disconnect = txnPoolNodeSet[-1]
3335

34-
def unpatch_after_call(status, frm):
35-
global call_count
36-
call_count += 1
37-
if call_count >= lost_count:
38-
# unpatch processLedgerStatus after lost_count calls
39-
monkeypatch.undo()
40-
call_count = 0
41-
4236
sdk_send_random_and_check(looper, txnPoolNodeSet,
4337
sdk_pool_handle, sdk_wallet_steward, 5)
4438

@@ -60,9 +54,17 @@ def unpatch_after_call(status, frm):
6054
config=tconf,
6155
ha=nodeHa, cliha=nodeCHa,
6256
pluginPaths=allPluginsPath)
57+
58+
def unpatch_after_call(status, frm):
59+
global call_count
60+
call_count += 1
61+
if call_count >= lost_count:
62+
# unpatch processLedgerStatus after lost_count calls
63+
node_to_disconnect.nodeMsgRouter.add((LedgerStatus, node_to_disconnect.ledgerManager.processLedgerStatus))
64+
call_count = 0
65+
6366
# patch processLedgerStatus
64-
monkeypatch.setattr(node_to_disconnect.ledgerManager, 'processLedgerStatus',
65-
unpatch_after_call)
67+
node_to_disconnect.nodeMsgRouter.add((LedgerStatus, unpatch_after_call))
6668

6769
# add node_to_disconnect to pool
6870
looper.add(node_to_disconnect)
@@ -88,14 +90,6 @@ def test_catchup_with_lost_first_consistency_proofs(txnPoolNodeSet,
8890
Test makes sure that the node eventually finishes catchup'''
8991
node_to_disconnect = txnPoolNodeSet[-1]
9092

91-
def unpatch_after_call(proof, frm):
92-
global call_count
93-
call_count += 1
94-
if call_count >= lost_count:
95-
# unpatch processConsistencyProof after lost_count calls
96-
monkeypatch.undo()
97-
call_count = 0
98-
9993
sdk_send_random_and_check(looper, txnPoolNodeSet,
10094
sdk_pool_handle, sdk_wallet_steward, 5)
10195

@@ -117,10 +111,18 @@ def unpatch_after_call(proof, frm):
117111
config=tconf,
118112
ha=nodeHa, cliha=nodeCHa,
119113
pluginPaths=allPluginsPath)
114+
115+
def unpatch_after_call(proof, frm):
116+
global call_count
117+
call_count += 1
118+
if call_count >= lost_count:
119+
# unpatch processConsistencyProof after lost_count calls
120+
node_to_disconnect.nodeMsgRouter.add((ConsistencyProof,
121+
node_to_disconnect.ledgerManager.processConsistencyProof))
122+
call_count = 0
123+
120124
# patch processConsistencyProof
121-
monkeypatch.setattr(node_to_disconnect.ledgerManager,
122-
'processConsistencyProof',
123-
unpatch_after_call)
125+
node_to_disconnect.nodeMsgRouter.add((ConsistencyProof, unpatch_after_call))
124126
# add node_to_disconnect to pool
125127
looper.add(node_to_disconnect)
126128
txnPoolNodeSet[-1] = node_to_disconnect

0 commit comments

Comments
 (0)