Re: MultiXact\SLRU buffers configuration - Mailing list pgsql-hackers

From Robert Haas
Subject Re: MultiXact\SLRU buffers configuration
Date
Msg-id CA+TgmoarL2nTionJxAgJcuOWm3S9d0hBMHmQ78-6HoO1JgphHQ@mail.gmail.com
Whole thread Raw
In response to Re: MultiXact\SLRU buffers configuration  (Thom Brown <thom@linux.com>)
List pgsql-hackers
On Tue, Oct 29, 2024 at 1:45 PM Thom Brown <thom@linux.com> wrote:
> Taking a look at what's happening under the hood, it seems to be
> getting stuck here:
>
>                 if (nextMXOffset == 0)
>                 {
>                         /* Corner case 2: next multixact is still
> being filled in */
>                         LWLockRelease(MultiXactOffsetSLRULock);
>                         CHECK_FOR_INTERRUPTS();
>                         pg_usleep(1000L);
>                         goto retry;
>                 }
>
> It clearly checks for interrupts, but when I saw this issue happen, it
> wasn't interruptible.

I don't understand the underlying issue here; however, if a process
holds an lwlock, it's not interruptible, even if it checks for
interrupts. So it could be that at this point in the code we're
holding some other LWLock, such as a buffer content lock, and that's
why this code fails to achieve its objective.

--
Robert Haas
EDB: http://www.enterprisedb.com



pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: Proposal to Enable/Disable Index using ALTER INDEX (with patch)
Next
From: Fujii Masao
Date:
Subject: Re: Making error message more user-friendly with spaces in a URI