mirror of
https://github.com/neondatabase/neon.git
synced 2026-05-14 11:40:38 +00:00
safekeeper: fix panic in debug_dump. (#9097)
Panic was triggered only when dump selected no timelines. sentry report: https://neondatabase.sentry.io/issues/5832368589/
This commit is contained in:
@@ -253,6 +253,13 @@ pub async fn build(args: Args) -> Result<Response> {
|
||||
});
|
||||
}
|
||||
|
||||
// Tokio forbids to drop runtime in async context, so this is a stupid way
|
||||
// to drop it in non async context.
|
||||
tokio::task::spawn_blocking(move || {
|
||||
let _r = runtime;
|
||||
})
|
||||
.await?;
|
||||
|
||||
Ok(Response {
|
||||
start_time,
|
||||
finish_time: Utc::now(),
|
||||
|
||||
@@ -894,6 +894,13 @@ def test_timeline_status(neon_env_builder: NeonEnvBuilder, auth_enabled: bool):
|
||||
assert debug_dump_0["timelines"][0]["timeline_id"] == str(timeline_id)
|
||||
assert debug_dump_0["timelines"][0]["wal_last_modified"] != ""
|
||||
|
||||
# debug dump non existing tenant, should return no timelines.
|
||||
debug_dump_non_existent = wa_http_cli_debug.debug_dump(
|
||||
{"tenant_id": "deadbeefdeadbeefdeadbeefdeadbeef"}
|
||||
)
|
||||
log.info(f"debug_dump_non_existend: {debug_dump_non_existent}")
|
||||
assert len(debug_dump_non_existent["timelines"]) == 0
|
||||
|
||||
endpoint.safe_psql("create table t(i int)")
|
||||
|
||||
# ensure epoch goes up after reboot
|
||||
|
||||
Reference in New Issue
Block a user