«

»

nov 08

Status Killed/Rollback é um bug?

 

Esta pergunta é muito interessante e a resposta é: depende…

 

O que significa Killed/Rollback na coluna cmd?

Este tipo de status é para transações canceladas antes de sua conclusão, onde a operação é de insert, update, delete. Como os dados estão sendo alterados, se você pedir pra cancelar a operação antes de terminar, os dados que já foram alterados devem voltar ao seu valor anterior e por isso temos este status. Portanto podemos afirmar que este tipo de status não é um bug correto? Errado… 🙁

 

Vejamos pelo Activity Monitor:

 

 

Dentro da DMV sys.sysprocesses você pode obter as mesmas informações do Activity Monitor, vamos aproveitar e filtrar pelo KILLED/ROLLBACK que aparece na coluna cmd:

 

SELECT spid, kpid, login_time, last_batch, status, hostname, nt_username, loginame
FROM sys.sysprocesses
WHERE cmd = ‘KILLED/ROLLBACK’

 

Durante o processo de backup, o volume de destino foi perdido e o processo ficou rodando eternamente. Ao matar o processo (KILL 66) seu status ficou killed/rollback, e o tempo previsto para terminar só aumentava. Para saber o tempo restante de um processo de rollback utilize a seguinte query:

 

KILL 66 WITH STATUSONLY

 

 

A solução foi dar um restart no serviço, de acordo com o bug reportado no Microsoft Connect. Isso é um grande problema em ambientes de alta disponibilidade, fique atento.

 

 

 

 .

1 comentário

  1. Angelo Máximo Moreira Silva

    Muito bom Mercante.

Deixe uma resposta