FIX: Database recovery could hang if it contains in-memory objects and a recovery failure is encountered during a race condition in SQL Server 2017

Applies to: SQL Server 2017 DeveloperSQL Server 2017 EnterpriseSQL Server 2017 Enterprise Core

Symptoms


As part of SQL Server in-memory database recovery, a parallel task is started to recover in-memory objects. In certain scenarios, this task could fail. There is a race condition during log recovery that, if the failure happens at the last phase of log redo, the parallel task misses the failure notification and does not exit. This translates to a database hang during recovery.

Note This is a transient-race condition issue, and a server restart would unblock the database.

Resolution


This fix is included in the following update for SQL Server:

Cumulative Update 8 for SQL Server 2017

This update fixes the missed notification so that the recovery task detects the failure and leaves the database as recovery failed. Then an ALTER DATABASE SET ONLINE statement can be issued to restart the database recovery process.

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 standard terminology that Microsoft uses to describe software updates.