예제 #1
0
def test_disable_view_change(disable_view_change_config, looper, nodeSet, up,
                             viewNo, wallet1, client1):
    assert disable_view_change_config
    assert isinstance(disable_view_change_config.unsafe, set)
    assert 'disable_view_change' in disable_view_change_config.unsafe

    simulate_slow_master(looper, nodeSet, wallet1, client1)

    with pytest.raises(AssertionError):
        waitForViewChange(looper, nodeSet, expectedViewNo=viewNo + 1)
def test_disable_view_change(disable_view_change_config, looper,
                             txnPoolNodeSet, viewNo, sdk_pool_handle,
                             sdk_wallet_steward):
    assert disable_view_change_config
    assert isinstance(disable_view_change_config.unsafe, set)
    assert 'disable_view_change' in disable_view_change_config.unsafe

    simulate_slow_master(looper, txnPoolNodeSet, sdk_pool_handle,
                         sdk_wallet_steward)

    with pytest.raises(AssertionError):
        waitForViewChange(looper, txnPoolNodeSet, expectedViewNo=viewNo + 1)
def test_view_change_on_performance_degraded(looper, nodeSet, up, viewNo,
                                             wallet1, client1):
    """
    Test that a view change is done when the performance of master goes down
    Send multiple requests from the client and delay some requests by master
    instance so that there is a view change. All nodes will agree that master
    performance degraded
    """
    old_primary_node = get_master_primary_node(list(nodeSet.nodes.values()))

    simulate_slow_master(looper, nodeSet, wallet1, client1)
    waitForViewChange(looper, nodeSet, expectedViewNo=viewNo + 1)

    ensureElectionsDone(looper=looper, nodes=nodeSet)
    ensure_all_nodes_have_same_data(looper, nodes=nodeSet)
    new_primary_node = get_master_primary_node(list(nodeSet.nodes.values()))
    assert old_primary_node.name != new_primary_node.name
def test_disable_view_change(
        disable_view_change_config,
        looper,
        txnPoolNodeSet,
        viewNo,
        sdk_pool_handle,
        sdk_wallet_steward):
    assert disable_view_change_config
    assert isinstance(disable_view_change_config.unsafe, set)
    assert 'disable_view_change' in disable_view_change_config.unsafe

    simulate_slow_master(looper, txnPoolNodeSet,
                         sdk_pool_handle,
                         sdk_wallet_steward)

    with pytest.raises(AssertionError):
        waitForViewChange(looper, txnPoolNodeSet, expectedViewNo=viewNo + 1)
def test_view_change_on_performance_degraded(looper, txnPoolNodeSet, viewNo,
                                             sdk_pool_handle,
                                             sdk_wallet_steward):
    """
    Test that a view change is done when the performance of master goes down
    Send multiple requests from the client and delay some requests by master
    instance so that there is a view change. All nodes will agree that master
    performance degraded
    """
    old_primary_node = get_master_primary_node(list(txnPoolNodeSet))

    simulate_slow_master(looper, txnPoolNodeSet, sdk_pool_handle,
                         sdk_wallet_steward)
    waitForViewChange(looper, txnPoolNodeSet, expectedViewNo=viewNo + 1)

    ensureElectionsDone(looper=looper, nodes=txnPoolNodeSet)
    ensure_all_nodes_have_same_data(looper, nodes=txnPoolNodeSet)
    new_primary_node = get_master_primary_node(list(txnPoolNodeSet))
    assert old_primary_node.name != new_primary_node.name
def test_view_change_on_performance_degraded(looper, txnPoolNodeSet, viewNo,
                                             sdk_pool_handle,
                                             sdk_wallet_steward):
    """
    Test that a view change is done when the performance of master goes down
    Send multiple requests from the client and delay some requests by master
    instance so that there is a view change. All nodes will agree that master
    performance degraded
    """
    old_primary_node = get_master_primary_node(list(txnPoolNodeSet))

    simulate_slow_master(looper, txnPoolNodeSet, sdk_pool_handle,
                         sdk_wallet_steward)
    waitForViewChange(looper, txnPoolNodeSet, expectedViewNo=viewNo + 1)

    ensureElectionsDone(looper=looper, nodes=txnPoolNodeSet)
    ensure_all_nodes_have_same_data(looper, nodes=txnPoolNodeSet)
    new_primary_node = get_master_primary_node(list(txnPoolNodeSet))
    assert old_primary_node.name != new_primary_node.name
    waitNodeDataEquality(looper, *txnPoolNodeSet)