FIX: Access violation when you cancel a pending query if the missing indexes feature is enabled in SQL Server

Applies to: SQL Server 2014 DeveloperSQL Server 2014 EnterpriseSQL Server 2014 Enterprise Core More

Symptoms


Consider the following scenario:

  • You have a stored procedure that creates a temporary table in Microsoft SQL Server.  
  • You run a query that the stored procedure issues, and the query meets the following conditions:
    • The query references to the temporary table that's created by the stored procedure.
    • The query has a WHERE clause that's not covered by any indexes, and the missing indexes feature is enabled.
  • Assume that the stored procedure is called concurrently from multiple instances. Then the temporary tables are created and dropped frequently, that will lead to frequent creation and deletion of the corresponding records for the missing indexes.
  • In this situation, if a pending query of the stored procedure is cancelled, you may receive an access violation error.

Resolution


This issue is fixed in the following cumulative updates for SQL Server:

      Cumulative Update 2 for SQL Server 2017

      Cumulative Update 9 for SQL Server 2016 RTM

      Cumulative Update 6 for SQL Server 2016 SP1

      Cumulative Update 8 for SQL Server 2014 SP2

Workaround


The workaround for this issue is to enable the Trace Flag (TF) 2392 which will suppress the collection of missing indexes.

More Information


To get more information about the missing indexes feature, please refer to the following link:

Missing Indexes Feature

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