Symptoms

Assume that you have a multi-core processor (32 cores or more) that's running Microsoft SQL Server 2014 or 2012 SP3. When the versioning cleanup task runs on an AlwaysOn secondary replica, CPU usage may approach 100-percent. Additionally, a "Non-yielding Scheduler" error that resembles the following is logged in the SQL Server error log:

date time.80 Server Using 'dbghelp.dll' version '4.0.5'date time.81 Server ***Unable to get thread context for spid 0date time.81 Server * *******************************************************************************date time.81 Server *date time.81 Server * BEGIN STACK DUMP:date time.81 Server * date time spid 2944date time.81 Server *date time.81 Server * Non-yielding Schedulerdate time.81 Server *date time.81 Server * *******************************************************************************date time.81 Server Stack Signature for the dump is 0x000000000000015Fdate time.22 Server [INFO] Identity Begin End | State Result Error Speculate Prepared LazyCommit ReadOnly | Transaction Database ThreadId | ReadSet WriteSet ScanSet Savepoint LogSizeRq | CommitDep TotalComm Dependent 0 Dependent 1 Dependent 2 Dependent 3 Dependent 4 Dependent 5 Dependent 6 Dependent 7 | Area Location |date time.33 Server External dump process return code 0x20000001.date time.33 Server Process 0:0:0 (0x32e8) Worker 0x0000000005B54160 appears to be non-yielding on Scheduler 12. Thread creation time: 13094297045567. Approx Thread CPU Used: kernel 0 ms, user 51979 ms. Process Utilization 2%. System Idle 97%. Interval: 70153 ms.date time.45 Server Process 0:0:0 (0x32e8) Worker 0x0000000005B54160 appears to be non-yielding on Scheduler 12. Thread creation time: 13094297045567. Approx Thread CPU Used: kernel 0 ms, user 103459 ms. Process Utilization 2%. System Idle 97%. Interval: 136828 ms.date time.58 Server Process 0:0:0 (0x32e8) Worker 0x0000000005B54160 appears to be non-yielding on Scheduler 12. Thread creation time: 13094297045567. Approx Thread CPU Used: kernel 0 ms, user 146001 ms. Process Utilization 2%. System Idle 97%. Interval: 196951 ms.date time.70 Server Process 0:0:0 (0x32e8) Worker 0x0000000005B54160 appears to be non-yielding on Scheduler 12. Thread creation time: 13094297045567. Approx Thread CPU Used: kernel 0 ms, user 193269 ms. Process Utilization 2%. System Idle 97%. Interval: 257073 ms.

Resolution

This problem was first fixed in the following cumulative update for SQL Server:

Cumulative Update 6 for SQL Server 2014 Service Pack 1 Cumulative Update 3 for SQL Server 2012 SP3 Cumulative Update 12 for SQL Server 2012 SP2

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:

Latest cumulative update for SQL Server 2014 Latest cumulative update for SQL Server 2012 SP3 Latest cumulative update for SQL Server 2012 SP2 

Workaround

To temporarily work around this issue, restart the computer that's running the instance of 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 terminology Microsoft uses to describe software updates.

Need more help?

Want more options?

Explore subscription benefits, browse training courses, learn how to secure your device, and more.

Communities help you ask and answer questions, give feedback, and hear from experts with rich knowledge.