From f78ad4904a03ff2ae44fe61ec5542e4d8282a745 Mon Sep 17 00:00:00 2001 From: Konstantin Knizhnik Date: Sat, 12 Apr 2025 15:50:23 +0300 Subject: [PATCH] Fix lfc_prewarm --- pgxn/neon/file_cache.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pgxn/neon/file_cache.c b/pgxn/neon/file_cache.c index 3f08fc9ff1..770545c27c 100644 --- a/pgxn/neon/file_cache.c +++ b/pgxn/neon/file_cache.c @@ -791,6 +791,10 @@ lfc_prewarm(FileCacheState* fcs, uint32 worker_id, uint32 n_workers) } if (n_sent >= n_received + prewarm_batch || snd_idx == max_prefetch_pages) { + if (n_received == n_sent && snd_idx == max_prefetch_pages) + { + break; + } if ((rcv_idx >> fcs_chunk_size_log) % n_workers != worker_id) { /* Skip chunks processed by other workers */ @@ -817,10 +821,7 @@ lfc_prewarm(FileCacheState* fcs, uint32 worker_id, uint32 n_workers) ws->skipped_pages += 1; } rcv_idx += 1; - if (++n_received == n_sent && snd_idx == max_prefetch_pages) - { - break; - } + n_received += 1; } } Assert(n_sent == n_received);