Hi, On 2026-04-14 15:37:56 +0200, Antonin Houska wrote: > Andres Freund <[email protected]> wrote: > > > On 2026-04-12 15:31:20 +0200, Mihail Nikalayeu wrote: > > > Instead of cancelling the backend entered the deadlock detector - it > > > cancel some another (nearest hard edge) until it is possible to get the > > > lock (either by > > > reordering or directly). > > > > I don't think that's as good. The problem is that that way you're only > > detecting the deadlocks once they have materialized (i.e. once repack > > actually > > does the lock upgrade), rather than cancelling when we know that the problem > > starts. > > This is my hack that tries to do that.
I still think this needs to be in the deadlock detector. The lock cycle just needs to be a bit more complicated for a hack in JoinWaitQueue not to work. There's no guarantee that the wait that triggers the deadlock is actually on the relation being repacked. Greetings, Andres Freund
