test: extend existing test to check that a joining node can map addresses of all pre-existing nodes during join
This commit is contained in:
@@ -6650,6 +6650,10 @@ future<join_node_response_result> storage_service::join_node_response_handler(jo
|
||||
co_return join_node_response_result{};
|
||||
}
|
||||
|
||||
if (utils::get_local_injector().enter("join_node_response_drop_expiring")) {
|
||||
_group0->modifiable_address_map().force_drop_expiring_entries();
|
||||
}
|
||||
|
||||
try {
|
||||
co_return co_await std::visit(overloaded_functor {
|
||||
[&] (const join_node_response_params::accepted& acc) -> future<join_node_response_result> {
|
||||
|
||||
@@ -27,16 +27,20 @@ async def test_long_join(manager: ManagerClient) -> None:
|
||||
await asyncio.gather(task)
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_long_join_drop_wntries_on_bootstrapping(manager: ManagerClient) -> None:
|
||||
async def test_long_join_drop_entries_on_bootstrapping(manager: ManagerClient) -> None:
|
||||
"""The test checks that join works even if expiring entries are dropped
|
||||
on the joining node between placement of the join request and its processing"""
|
||||
s1 = await manager.server_add()
|
||||
servers = await manager.servers_add(2)
|
||||
inj = 'topology_coordinator_pause_before_processing_backlog'
|
||||
await manager.api.enable_injection(s1.ip_addr, inj, one_shot=True)
|
||||
s2 = await manager.server_add(start=False, config={
|
||||
[await manager.api.enable_injection(s.ip_addr, inj, one_shot=True) for s in servers]
|
||||
s = await manager.server_add(start=False, config={
|
||||
'error_injections_at_startup': ['pre_server_start_drop_expiring']
|
||||
})
|
||||
task = asyncio.create_task(manager.server_start(s2.server_id))
|
||||
await manager.server_sees_other_server(s1.ip_addr, s2.ip_addr, interval=300)
|
||||
await manager.api.message_injection(s1.ip_addr, inj)
|
||||
task = asyncio.create_task(manager.server_start(s.server_id))
|
||||
log = await manager.server_open_log(s.server_id)
|
||||
await log.wait_for("init - starting gossiper")
|
||||
servers.append(s)
|
||||
await manager.servers_see_each_other(servers, interval=300)
|
||||
await manager.api.enable_injection(s.ip_addr, 'join_node_response_drop_expiring', one_shot=True)
|
||||
[await manager.api.message_injection(s.ip_addr, inj) for s in servers[:-1]]
|
||||
await asyncio.gather(task)
|
||||
|
||||
Reference in New Issue
Block a user