mirror of
https://github.com/neondatabase/neon.git
synced 2026-05-31 03:50:37 +00:00
do not wait for checkpoint in emergency mode
Signed-off-by: Alex Chi Z <chi@neon.tech>
This commit is contained in:
@@ -4985,6 +4985,7 @@ def generate_uploads_and_deletions(
|
||||
timeline_id: TimelineId | None = None,
|
||||
data: str | None = None,
|
||||
pageserver: NeonPageserver,
|
||||
wait_for_upload: bool = True,
|
||||
):
|
||||
"""
|
||||
Using the environment's default tenant + timeline, generate a load pattern
|
||||
@@ -5046,4 +5047,4 @@ def generate_uploads_and_deletions(
|
||||
# background ingest, no more uploads pending, and therefore no non-determinism
|
||||
# in subsequent actions like pageserver restarts.
|
||||
flush_ep_to_pageserver(env, endpoint, tenant_id, timeline_id, pageserver.id)
|
||||
ps_http.timeline_checkpoint(tenant_id, timeline_id, wait_until_uploaded=True)
|
||||
ps_http.timeline_checkpoint(tenant_id, timeline_id, wait_until_uploaded=wait_for_upload)
|
||||
|
||||
@@ -343,7 +343,7 @@ class PageserverHttpClient(requests.Session, MetricsGetter):
|
||||
assert isinstance(res_json["tenant_shards"], list)
|
||||
return res_json
|
||||
|
||||
def tenant_get_location(self, tenant_id: Union[TenantId, TenantShardId]):
|
||||
def tenant_get_location(self, tenant_id: TenantId | TenantShardId):
|
||||
res = self.get(
|
||||
f"http://localhost:{self.port}/v1/location_config/{tenant_id}",
|
||||
)
|
||||
|
||||
@@ -459,7 +459,11 @@ def test_emergency_mode(neon_env_builder: NeonEnvBuilder, pg_bin: PgBin):
|
||||
env.pageserver.start()
|
||||
|
||||
# The pageserver should provide service to clients
|
||||
generate_uploads_and_deletions(env, init=False, pageserver=env.pageserver)
|
||||
# Because it is in emergency mode, it will not attempt to validate deletions required by the initial barrier, and therefore
|
||||
# other files cannot be uploaded b/c it's waiting for the initial barrier to be validated.
|
||||
generate_uploads_and_deletions(
|
||||
env, init=False, pageserver=env.pageserver, wait_for_upload=False
|
||||
)
|
||||
|
||||
# The pageserver should neither validate nor execute any deletions, it should have
|
||||
# loaded the DeletionLists from before though
|
||||
|
||||
Reference in New Issue
Block a user