FIX: Complex parallel query does not respond in SQL Server 2012 or SQL Server 2014

Applies to: SQL Server 2012 DeveloperSQL Server 2012 EnterpriseSQL Server 2012 Standard More

Symptoms


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.

Cause


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.

Resolution


Cumulative Update information

The issue was first fixed in the following cumulative update of SQL Server.

Status


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