Mám podezření, že se jedná o okrajový případ, který nestojí za zefektivnění. Všimněte si, že jste museli absolvovat 3 sezení, abyste se pokusili chytit stejný řádek - což je vzácné. A udělali jste ROLLBACK -- také vzácné. Takže zablokování, ke kterému došlo, je přehnané, ale nestojí za to ho opravovat. Z tohoto důvodu musíme být připraveni zvládnout zablokování všude.
Pro informaci, pokud by se jednalo o 3 uzly clusteru Galera, byly by chyby COMMIT
které by kód musel zvládnout. Mám podezření, že se děje ještě více kombinací podivných věcí, pokud tuto transakci (s vrácením zpět nebo potvrzením) použijete vícekrát na více uzlů.
Nyní k vaší otázce... Patrně k uváznutí nedošlo, protože jedno z vláken dostalo výhradní zámek a druhé bylo zasaženo „čekáním“ namísto „zablokování“.