FIX: Complex parallel query does not respond in SQL Server 2012 or SQL Server 2014
Content provided by Microsoft
Applies to: Microsoft SQL Server 2012 Service Pack 2SQL Server 2012 DeveloperSQL Server 2012 EnterpriseSQL Server 2012 StandardSQL Server 2014 EnterpriseSQL Server 2014 EnterpriseSQL Server 2014 DeveloperSQL Server 2014 DeveloperSQL Server 2014 StandardSQL Server 2014 StandardSQL Server 2014 WebSQL Server 2014 WebMicrosoft SQL Server 2014 Service Pack 1SQL Server 2014 DeveloperSQL Server 2014 DeveloperSQL Server 2014 EnterpriseSQL Server 2014 EnterpriseSQL Server 2014 StandardSQL Server 2014 StandardMore
Assume that you run a complex parallel query that requires a significant number of parallel threads in Microsoft SQL Server 2012 or in Microsoft SQL Server 2014, and the worker threads are exhausted on the corresponding scheduler. In a rare condition, the query does not make any progress for indefinite time because of undetected deadlock.
Note If other schedulers in SQL Server have available workers, the database engine will be able to process other queries correctly.
When starvation of worker threads occurs, a specific wait between worker threads is not treated as a potential blocker. Therefore, the deadlock monitor does not detect the condition. This causes the query to be not responding. The probability of such condition to occur is low, and mainly depends on the query plan shape, the degree of parallelism, and the worker threads availability.
Cumulative Update information
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. We recommend that you download and install the latest cumulative updates for SQL Server: