On 2024-Jan-29, Alvaro Herrera wrote:
> In Dilip's patch to improve SLRU concurrency, there's a requirement to
> prevent predicate.c's SLRU control lock from being used to control
> access to another shared memory structure, SerialControlData. This
> struct is used to keep track of the areas of the SLRU that are valid.
> Dilip just embedded that change into the patch he submitted, but I think
> the patch is actually wrong in detail, because it's leaving the
> SerialAdd() function unchanged to use SerialSLRULock, which is wrong
> because that function depends heavily on the contents of
> SerialControlData, and it also modifies it.
It's terrifying that SerialAdd() doesn't seem to be covered by any
tests, though.
--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
"I think my standards have lowered enough that now I think 'good design'
is when the page doesn't irritate the living f*ck out of me." (JWZ)