On 1/16/20 7:40 PM, Peter Geoghegan wrote:
On Thu, Jan 9, 2020 at 12:55 AM godjan • <g0d...@gmail.com> wrote:
I heard that amcheck has an invariant about locking no more than 1 page at a
moment for avoiding deadlocks. Is there possible a deadlock situation?
This is a conservative principle that I came up with when I wrote the
original version of amcheck. It's not strictly necessary, but it
seemed like a good idea. It should be safe to "couple" buffer locks in
a way that matches the B-Tree code -- as long as it is thought through
very carefully. I am probably going to relax the rule for one specific
case soon -- see:
https://postgr.es/m/f7527087-6e95-4077-b964-d2cafef62...@yandex-team.ru
Your patch looks like it gets it right (it won't deadlock with other
sessions that access the metapage), but I hesitate to commit it
without a strong justification. Acquiring multiple buffer locks
concurrently is worth avoiding wherever possible.
I have marked this patch Returned with Feedback since it has been
sitting for a while with no response from the author.
Regards,
--
-David
da...@pgmasters.net