From e670a214c562833cdc67c4a1191d358b52c5d8dc Mon Sep 17 00:00:00 2001 From: Konstantin Knizhnik Date: Wed, 23 Apr 2025 08:41:57 +0300 Subject: [PATCH] Add check for number of pinned pages --- test_runner/regress/test_lfc_prewarm.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test_runner/regress/test_lfc_prewarm.py b/test_runner/regress/test_lfc_prewarm.py index 3587c30cf3..ff60afbafc 100644 --- a/test_runner/regress/test_lfc_prewarm.py +++ b/test_runner/regress/test_lfc_prewarm.py @@ -8,6 +8,17 @@ from fixtures.neon_fixtures import NeonEnv from fixtures.utils import USE_LFC +def check_pinned_entries(cur): + # some LFC buffer can be temporary locked by autovacuum or background writer + for _ in range(10): + cur.execute("select lfc_value from neon_lfc_stats where lfc_key='file_cache_pinned'") + n_pinned = cur.fetchall()[0][0] + if n_pinned == 0: + break + time.sleep(1) + assert n_pinned == 0 + + @pytest.mark.skipif(not USE_LFC, reason="LFC is disabled, skipping") def test_lfc_prewarm(neon_simple_env: NeonEnv): env = neon_simple_env @@ -56,6 +67,8 @@ def test_lfc_prewarm(neon_simple_env: NeonEnv): assert prewarm_info[1] > 0 + check_pinned_entries(cur) + @pytest.mark.skipif(not USE_LFC, reason="LFC is disabled, skipping") def test_lfc_prewarm_under_workload(neon_simple_env: NeonEnv): @@ -128,3 +141,5 @@ def test_lfc_prewarm_under_workload(neon_simple_env: NeonEnv): cur.execute("select sum(balance) from accounts") total_balance = cur.fetchall()[0][0] assert total_balance == 0 + + check_pinned_entries(cur)