From 9b71ae7dce74da148f186baa4ce185d8b7a9b06c Mon Sep 17 00:00:00 2001 From: Eric Seppanen Date: Wed, 21 Apr 2021 12:45:22 -0700 Subject: [PATCH] page_cache: add an assert on the last_valid_lsn --- pageserver/src/page_cache.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pageserver/src/page_cache.rs b/pageserver/src/page_cache.rs index 7db50aee1f..85980b08ff 100644 --- a/pageserver/src/page_cache.rs +++ b/pageserver/src/page_cache.rs @@ -286,7 +286,8 @@ impl PageCache { let minkey = CacheKey { tag, lsn: 0 }; let maxkey = CacheKey { tag, lsn }; - if self.walreceiver_works.load(Ordering::Acquire) { + let walreceiver_works = self.walreceiver_works.load(Ordering::Acquire); + if walreceiver_works { self.seqwait_lsn .wait_for_timeout(lsn, TIMEOUT) .await @@ -313,6 +314,10 @@ impl PageCache { { let shared = self.shared.lock().unwrap(); + if walreceiver_works { + assert!(lsn <= shared.last_valid_lsn); + } + if lsn < shared.first_valid_lsn { bail!( "LSN {:X}/{:X} has already been removed",