SQL Server 2005 or 2008 Reporting Error 17883 – Stalled Scheduler Warnings
SQL Server 2005 introduced a background worker to flush trace event streams. The trace buffer is flushed when it becomes fully populated but a partially populated trace buffer remains in-memory until events fill the buffer or the background worker flushes the events to the stream. Periodically the background worker wakes up, checks outstanding trace buffers and flushes them as required. A small 17883 trend has surfaced regarding the trace output taking too long and stalling a scheduler. The issue occurs when the background worker attempts to flush a buffer and the IO subsystem stalls. Using the public symbols for the SQL Server the stack would look like the following. ntdll!ZwWriteFile+0xa kernel32!WriteFile+0xf6 sqlservr!DiskWriteAsync+0xee ß This should take very little time but a stalled scheduler indicates it took 60+ seconds sqlservr!CTraceIoBuf::IncrementalFlush+0x18b sqlservr!CTraceFileIoProvider::IncrementalFlush+0×46 sqlservr!CTraceController::IncrementalFlush+0xb9 sqlservr!CTraceManagementTask::Invoke+0×71 sqlservr!CTraceBatchTask::Task+0×183 The trace file location can make a big difference. The always on trace, controlled by the sp_configure value ‘default trace enabled’, is placed in the LOG directory
Here is the original post:
SQL Server 2005 or 2008 Reporting Error 17883 – Stalled Scheduler Warnings


