From ff0b8c6e040c7e05219c65df55c463615ce72293 Mon Sep 17 00:00:00 2001 From: John Spray Date: Wed, 18 Oct 2023 07:57:56 +0100 Subject: [PATCH] tests: update test_broken_timeline --- test_runner/regress/test_broken_timeline.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/test_runner/regress/test_broken_timeline.py b/test_runner/regress/test_broken_timeline.py index c80f2d8360..e067d45f6d 100644 --- a/test_runner/regress/test_broken_timeline.py +++ b/test_runner/regress/test_broken_timeline.py @@ -15,7 +15,7 @@ from fixtures.types import TenantId, TimelineId # Test restarting page server, while safekeeper and compute node keep # running. -def test_broken_timeline(neon_env_builder: NeonEnvBuilder): +def test_local_corruption(neon_env_builder: NeonEnvBuilder): env = neon_env_builder.init_start() env.pageserver.allowed_errors.extend( @@ -69,20 +69,13 @@ def test_broken_timeline(neon_env_builder: NeonEnvBuilder): env.pageserver.start() - # Tenant 0 should still work + # Un-damaged tenant works pg0.start() assert pg0.safe_psql("SELECT COUNT(*) FROM t")[0][0] == 100 - # But all others are broken - - # First timeline would not get loaded into pageserver due to corrupt metadata file - with pytest.raises( - Exception, match=f"Tenant {tenant1} will not become active. Current state: Broken" - ) as err: - pg1.start() - log.info( - f"As expected, compute startup failed eagerly for timeline with corrupt metadata: {err}" - ) + # Tenant with corrupt local metadata works: remote storage is authoritative for metadata + pg1.start() + assert pg1.safe_psql("SELECT COUNT(*) FROM t")[0][0] == 100 # Second timeline will fail during basebackup, because the local layer file is corrupt. # It will fail when we try to read (and reconstruct) a page from it, ergo the error message.