From 8790e3f51dcf3f8674cfebb31aa66e9fb4a40290 Mon Sep 17 00:00:00 2001 From: "tender.wang" Date: Wed, 27 Dec 2023 17:16:57 +0800 Subject: [PATCH v3] Fix local buffer buf_state wrong set. --- src/backend/storage/buffer/localbuf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/storage/buffer/localbuf.c b/src/backend/storage/buffer/localbuf.c index d1cdd3eeb4..f5ccfed9fc 100644 --- a/src/backend/storage/buffer/localbuf.c +++ b/src/backend/storage/buffer/localbuf.c @@ -380,7 +380,7 @@ ExtendBufferedRelLocal(BufferManagerRelation bmr, hash_search(LocalBufHash, (void *) &tag, HASH_ENTER, &found); if (found) { - BufferDesc *existing_hdr = GetLocalBufferDescriptor(hresult->id); + BufferDesc *existing_hdr; uint32 buf_state; UnpinLocalBuffer(BufferDescriptorGetBuffer(victim_buf_hdr)); @@ -392,7 +392,7 @@ ExtendBufferedRelLocal(BufferManagerRelation bmr, buf_state = pg_atomic_read_u32(&existing_hdr->state); Assert(buf_state & BM_TAG_VALID); Assert(!(buf_state & BM_DIRTY)); - buf_state &= BM_VALID; + buf_state &= ~BM_VALID; pg_atomic_unlocked_write_u32(&existing_hdr->state, buf_state); } else -- 2.25.1