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


Reply via email to