Symptoms
Assume that you use Microsoft SQL Server 2016 or 2017 Always On Availability Groups. When you resume a suspended availability database, an assertion error may occur on the secondary replica. Additionally, error messages that resemble the following are logged in the SQL Server error log on the secondary replica.
Date/Time Error: 17066, Severity: 16, State: 1.
Date/Time SQL Server Assertion: File: <recovery.cpp>, line=LineNumber Failed Assertion = 'recXdes->IsLockReleased () && recXdes->GetOutstandingCount () == 0'. 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 Error: 3624, Severity: 20, State: 1.
Date/Time A system assertion check has failed. Check the SQL Server error log for details. Typically, an assertion failure is caused by a software bug or data corruption. To check for database corruption, consider running DBCC CHECKDB. If you agreed to send dumps to Microsoft during setup, a mini dump will be sent to Microsoft. An update might be available from Microsoft in the latest Service Pack or in a Hotfix from Technical Support.
Date/Time Error: 3624, Severity: 20, State: 2.
Date/Time A system assertion check has failed. Check the SQL Server error log for details. Typically, an assertion failure is caused by a software bug or data corruption. To check for database corruption, consider running DBCC CHECKDB. If you agreed to send dumps to Microsoft during setup, a mini dump will be sent to Microsoft. An update might be available from Microsoft in the latest Service Pack or in a Hotfix from Technical Support.
Date/Time Error: 3313, Severity: 21, State: 2.
Date/Time During redoing of a logged operation in database DatabaseName, an error occurred at log record ID (RecordID). Typically, the specific failure is previously logged as an error in the Windows Event Log service. Restore the database from a full backup, or repair the database.
Date/Time Always On Availability Groups data movement for database DatabaseName has been suspended for the following reason: "system" (Source ID 2; Source string: 'SUSPEND_FROM_REDO'). To resume data movement on the database, you will need to resume the database manually. For information about how to resume an availability database, see SQL Server Books Online.
Date/Time ALTER DB param option: RESUME
Date/Time Always On Availability Groups data movement for database DatabaseName has been resumed. This is an informational message only. No user action is required.
Date/Time Always On Availability Groups connection with primary database established for secondary database DatabaseName on the availability replica ReplicaName with Replica ID: ReplicaID. This is an informational message only. No user action is required.
Date/Time The recovery LSN (LsnNumber) was identified for the database with ID DatabaseID. This is an informational message only. No user action is required.
Resolution
This issue is fixed in the following cumulative updates for 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:
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
References
Learn about the terminologythat Microsoft uses to describe software updates.