FIX: Assertion failures occur when you query the database-state information in SQL Server 2012


Assume that you use the AlwaysOn Availability Groups feature in Microsoft SQL Server 2012. When you query the database-state information by using the sys.dm_hadr_database_replica_states DMV, it may return a large amount of rows in the result. Additionally, an error message that resembles the following is logged in the SQL Server error log:
<Date time> spid41s     Error: 17066, Severity: 16, State: 1.
<Date time> spid41s     SQL Server Assertion: File:< hadrdbmgrpartner.cpp>, line=143 Failed Assertion = '!m_link.IsInList ()'. This error may be timing-related. If the error persists after rerunning the statement, use DBCC CHECKDB to check the database for structural integrity, or restart the server to ensure in-memory data structures are not corrupted.
<Date time> spid387s    **Dump thread - spid = 0, EC = 0x000000017E6DCB90
<Date time> spid387s    ***Stack Dump being sent to D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\LOG\SQLDump0002.txt
<Date time> spid387s    * *******************************************************************************
<Date time> spid387s    *
<Date time> spid387s    * BEGIN STACK DUMP:
<Date time> spid387s    *   <Date time> spid 387
<Date time> spid387s    *
<Date time> spid387s    * Location:  hadrdbmgrpartner.cpp:143
<Date time> spid387s    * Expression:  !m_link.IsInList ()
<Date time> spid387s    * SPID:   387<Date time> spid387s    * Process ID:  2512


This problem was fixed in the following cumulative update for SQL Server:

About cumulative updates for SQL Server
About cumulative updates for SQL Server


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.


Learn about the terminology Microsoft uses to describe software updates.

Article ID: 3187842 - Last Review: Sep 21, 2016 - Revision: 1