KB3138455 - FIX: "Non-yielding Scheduler" error when versioning cleanup task runs on a SQL Server AlwaysOn secondary replica

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 0
date time.81 Server * *******************************************************************************
date time.81 Server *
date time.81 Server * BEGIN STACK DUMP:
date time.81 Server * date time spid 2944
date time.81 Server *
date time.81 Server * Non-yielding Scheduler
date time.81 Server *
date time.81 Server * *******************************************************************************
date time.81 Server Stack Signature for the dump is 0x000000000000015F
date 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?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

Thank you for your feedback! It sounds like it might be helpful to connect you to one of our Office support agents.

×