postgres.git / summary / log / commit / refs

commit    fad0da271e006015fcc25724aca2871d6dec04f5
Author:   Alvaro Herrera <alvherre@alvh.no-ip.org>
Date:     Mon Aug 19 00:49:57 2024 +0000
First released in: 18.0, 17.0

    Search for SLRU page only in its own bank
    
    One of the two slot scans in SlruSelectLRUPage was not walking only the
    slots in the specific bank where the buffer could be; change it to do
    that.
    
    Oversight in 53c2a97a9266.
    
    Author: Sergey Sargsyan <sergey.sargsyan.2001@gmail.com>
    Discussion: https://postgr.es/m/18582-5f301dd30ba91a38@postgresql.org


src/backend/access/transam/slru.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/access/transam/slru.c b/src/backend/access/transam/slru.c index 248aa1a6553..27473009b00 100644 --- a/src/backend/access/transam/slru.c +++ b/src/backend/access/transam/slru.c @@ -1184,7 +1184,7 @@ SlruSelectLRUPage(SlruCtl ctl, int64 pageno) Assert(LWLockHeldByMe(SimpleLruGetBankLock(ctl, pageno))); /* See if page already has a buffer assigned */ - for (int slotno = 0; slotno < shared->num_slots; slotno++) + for (int slotno = bankstart; slotno < bankend; slotno++) { if (shared->page_status[slotno] != SLRU_PAGE_EMPTY && shared->page_number[slotno] == pageno) [parent: 4b6aa0cffc04]