FIX: Undetected deadlock occurs when you use a sequence object in SQL Server 2012
Content provided by Microsoft
Applies to: Microsoft SQL Server 2012 Service Pack 1Microsoft SQL Server 2012 DeveloperMicrosoft SQL Server 2012 EnterpriseMicrosoft SQL Server 2012 StandardMicrosoft SQL Server 2012 Service Pack 2Microsoft SQL Server 2012 DeveloperMicrosoft SQL Server 2012 EnterpriseMicrosoft SQL Server 2012 StandardMore
Assume that you use a sequence object in Microsoft SQL Server 2012. When you view your session’s running status, you may find there is an undetected deadlock between the checkpoint process and the session that inserts the new sequence number. In this situation, the session hangs indefinitely.
Note When you kill the blocked session, the SQL Server process stops.
The issue occurs because a checkpoint thread tries to flush a sequence. However its row cannot be found in sysobjvalues table. This is because another thread performs a rollback on a transaction that has the next value of the sequence, in this situation, the row is removed from sysobjvalues table.
The issue was first fixed in the following cumulative update of SQL Server.
Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server: