Error message when you run the DBCC CHECKDB statement on a database that contains one or more very large tables in SQL Server 2005: "Timeout occurred while waiting for latch" (919155)



The information in this article applies to:

  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Workgroup
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • SQL Server 2005 Standard Edition for Itanium-based Systems

Bug #: 406938 (SQLBUDT)

SYMPTOMS

Consider the following scenario. You have a database that contains one or more very large tables. The tables are typically several hundred gigabytes (GB) in size. You run the DBCC CHECKDB statement on the database in Microsoft SQL Server 2005. In this scenario, an error message that resembles the following is written to the SQL Server error log:
2005-12-06 02:04:09.41 spid65 Timeout occurred while waiting for latch: class 'DBCC_MULTIOBJECT_SCANNER', id 000000002201DED0, type 4, Task 0x000000000C80BEB8 : 6, waittime 300, flags 0xa, owning task 0x0000000005A0AC58. Continuing to wait.
However, the DBCC CHECKDB statement will complete successfully. You can safely ignore the error message.

CAUSE

This issue occurs because a time-out occurs when SQL Server traverses the Index Allocation Map (IAM) chains. The latch that is mentioned in the error message is used to prevent other threads from accessing a list. This list is being built by a thread that traverses the IAM chains for all indexes that are associated with a given table. If the table is large enough that traversing these IAM chains takes more than 5 minutes, you may experience the latch time-out. Additionally, this issue is typically worse when disk I/O is slow.

STATUS

This behavior is by design.

Modification Type:MajorLast Reviewed:5/23/2006
Keywords:kbprb kbExpertiseAdvanced kbtshoot kbsql2005tsql KB919155 kbAudDeveloper kbAudITPRO