Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions modules/ducktests/tests/ignitetest/tests/discovery_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ class ClusterLoad(IntEnum):
TRANSACTIONAL = 2


# pylint: disable=R0913
class DiscoveryTestConfig(NamedTuple):
"""
Configuration for DiscoveryTest.
Expand All @@ -58,6 +59,7 @@ class DiscoveryTestConfig(NamedTuple):
load_type: ClusterLoad = ClusterLoad.NONE
sequential_failure: bool = False
with_zk: bool = False
failure_detection_timeout: int = 1000


# pylint: disable=W0223
Expand Down Expand Up @@ -180,11 +182,12 @@ def _perform_node_fail_scenario(self, test_config):

start_load_app(self.test_context, ignite_config=load_config, params=params, modules=modules)

results.update(self._simulate_nodes_failure(servers, failed_nodes))
results.update(self._simulate_and_detect_failure(servers, failed_nodes,
test_config.failure_detection_timeout * 3))

return results

def _simulate_nodes_failure(self, servers, failed_nodes):
def _simulate_and_detect_failure(self, servers, failed_nodes, timeout):
"""
Perform node failure scenario
"""
Expand All @@ -200,11 +203,14 @@ def _simulate_nodes_failure(self, servers, failed_nodes):
logged_timestamps = []
data = {}

start = monotonic()

for survivor in [n for n in servers.nodes if n not in failed_nodes]:
for failed_id in ids_to_wait:
logged_timestamps.append(get_event_time(servers, survivor, node_failed_event_pattern(failed_id)))
logged_timestamps.append(get_event_time(servers, survivor, node_failed_event_pattern(failed_id),
timeout=start + timeout - monotonic()))

self._check_failed_number(failed_nodes, survivor)
self._check_failed_number(failed_nodes, survivor)

self._check_not_segmented(failed_nodes)

Expand Down