É um impasse clássico quando um processo (vítima) lê em
serializable
level e outro atualiza a mesma tabela clusterizada. Você está confuso com o que é convertido em quê.
O primeiro processo ("process5e13b88") adquiriu
RangeS-S
lock e espera por outro RangS-S
lock (onde existe X
bloqueio do processo de atualização), não converte nada. O segundo "process5e45b88" adquiriu
X
bloqueie em uma chave e U
em outra chave e deseja convertê-la para X
mas não pode porque existe RangeS-S
trancar. Anexei a imagem onde você pode ver que um processo quer e adquire apenas
RangeS-S
fechaduras e outro apenas X
fechaduras. Quando você vê
RangeS-U
lock isso significa que existe RangeS-S
trava no intervalo, mas a própria chave tem U
trancar