From 9ebccbcdd549d9806899a3df6ce3235ca0bc0762 Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Fri, 9 Jun 2023 16:47:39 +0200 Subject: [PATCH] page_cache: in cfg(test), bail if writeback fails Tests use an extremely small page cache. This is very likely to trigger the indefinitely retrying loop mentioned in the comment above the changed line. It's easier to debug the tests if we bail out and fail. I also tried panicking, but, that wasn't as helpful as bailing out, in my experience. --- pageserver/src/page_cache.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pageserver/src/page_cache.rs b/pageserver/src/page_cache.rs index d2fe06697e..9e5c4d1afc 100644 --- a/pageserver/src/page_cache.rs +++ b/pageserver/src/page_cache.rs @@ -799,8 +799,12 @@ impl PageCache { // a different victim. But if the problem persists, the page cache // could fill up with dirty pages that we cannot evict, and we will // loop retrying the writebacks indefinitely. - error!("writeback of buffer {:?} failed: {}", old_key, err); - continue; + if cfg!(test) { + anyhow::bail!("writeback of buffer {:?} failed: {}", old_key, err); + } else { + error!("writeback of buffer {:?} failed: {}", old_key, err); + continue; + } } }