From ccbd89f0cd6580013e8c061826df898b3fceb2d3 Mon Sep 17 00:00:00 2001 From: Alejo Sanchez Date: Tue, 24 Jan 2023 14:03:47 +0100 Subject: [PATCH 1/2] test.py: enable force_schema_commit_log To handle start after ungraceful stop, enable separate schema commit log from server start. Signed-off-by: Alejo Sanchez --- test/pylib/scylla_cluster.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/pylib/scylla_cluster.py b/test/pylib/scylla_cluster.py index 420c274389..371298404d 100644 --- a/test/pylib/scylla_cluster.py +++ b/test/pylib/scylla_cluster.py @@ -102,6 +102,8 @@ def make_scylla_conf(workdir: pathlib.Path, host_addr: str, seed_addrs: List[str 'reader_concurrency_semaphore_serialize_limit_multiplier': 0, 'reader_concurrency_semaphore_kill_limit_multiplier': 0, + + 'force_schema_commit_log': True, } # Seastar options can not be passed through scylla.yaml, use command line From 878cb45c24ea38953f766a1e2b5eb41b644770cd Mon Sep 17 00:00:00 2001 From: Alejo Sanchez Date: Tue, 24 Jan 2023 14:07:47 +0100 Subject: [PATCH 2/2] pytest: test start after ungraceful stop Test case for a start of a server after it was stopped suddenly (instead of gracefully). This coud cause commitlog flush issues. Signed-off-by: Alejo Sanchez --- test/topology/test_topology.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/topology/test_topology.py b/test/topology/test_topology.py index e6b711f836..78739588b9 100644 --- a/test/topology/test_topology.py +++ b/test/topology/test_topology.py @@ -372,3 +372,14 @@ async def test_remove_node_with_concurrent_ddl(manager, random_tables): stopped = True await ddl_task logger.debug("ddl fiber done, finished") + + +@pytest.mark.asyncio +async def test_start_after_sudden_stop(manager: ManagerClient, random_tables) -> None: + """Tests a server can rejoin the cluster after being stopped suddenly""" + servers = await manager.running_servers() + table = await random_tables.add_table(ncolumns=5) + await manager.server_stop(servers[0].server_id) + await table.add_column() + await manager.server_start(servers[0].server_id) + await random_tables.verify_schema()