CHECK_TABLES_THREAD_BARRIER

(Republishing, or using this info in a commercial product/website, is prohibited without permission. All other uses are permitted. If in doubt, please ask.)

(Back to main page…)

Description:

This wait type occurs when a parallel thread in a DBCC CHECKDB (or similar) command is waiting for one or more other such threads to finish initializing, or finish exiting when certain unexpected errors occur that terminate the command (not including simply killing the command manually).

(Books Online description: N/A)

Questions/comments on this wait type? Click here to send Paul an email, especially if you have any information to add to this topic.

Added in SQL Server version:

2016

Removed in SQL Server version:

N/A

Extended Events wait_type value:

The map_key value in sys.dm_xe_map_values is 1109 in 2016 RTM. After 2016 RTM, you must check the DMV to get the latest value as some map_key values have changed in later builds.

Other information:

This is usually a benign wait that always occurs for a parallel DBCC operation.

I’ve heard anecdotal evidence of a potential bug where a DBCC CHECKDB will fail for some reason and then hang with one or more threads waiting for this wait type. Microsoft are aware of the issue, but as of 7/23/19 I don’t know of any fix.

Known occurrences in SQL Server (list number matches call stack list):

  1. Waiting for other another parallel thread to finish initializing during a DBCC CHECKDB

Abbreviated call stacks (list number matches known occurrences list):

  1. SOS_Task::PostWait+0x6f
    WaitableBase::Wait+0xb7
    SOS_ThreadBarrier::Join+0x25e
    CheckTables::ProcessNextData+0x4d5
    CheckAggregateSingleInstance::GetNextFact+0x2a3
    CTRowsetInstance::FGetNextRow+0x3c
    CUtRowset::GetNextRows+0xa0
    CQScanRmtScanNew::GetRowHelper+0x41f
    CQScanXProducerNew::GetRowHelper+0x386
    CQScanXProducerNew::GetRow+0x15
    FnProducerOpen+0x5b
    FnProducerThread+0x80b
    SubprocEntrypoint+0x1201
    SOS_Task::Param::Execute+0x231
    SOS_Scheduler::RunTask+0xad