FIX: Additional diagnostics have been added to SQL Server 2000 to detect unreported read operation failures (841776)



The information in this article applies to:

  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Enterprise Evaluation Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (MSDE)
  • Microsoft SQL Server 2000 Developer Edition 64 bit
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit

Bug #: 471459 (SHILOH_BUGS)
Microsoft distributes Microsoft SQL Server 2000 hotfixes as one downloadable file. Because the hotfixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2000 hotfix release.

SYMPTOMS

Operating system, driver, or hardware problems may cause SQL Server to experience data integrity-related problems. You may receive data integrity-related error messages in the SQL Server error log. These error messages may include, but are not limited to, error messages 823, 605, 644, 625, or assertion failures that are similar to the following:

SQL Server Assertion: File: <T:\shiloh\sql\ntdbms\storeng\drs\include\record.inl>, line=1447 Failed Assertion = 'm_SizeRec > 0 && m_SizeRec <= MAXDATAROW'.
SQL Server Assertion: File: <recbase.cpp>, line=1378 Failed Assertion = 'm_offBeginVar < m_SizeRec'.
SQL Server Assertion: File: <recbase.cpp>, line=1374 Failed Assertion = 'm_nVars > 0'.

RESOLUTION

Service pack information

To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

290211 How to obtain the latest SQL Server 2000 service pack

Hotfix information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
   Date         Time   Version        Size       File name
   ------------------------------------------------------------
   29-Apr-2004  22:46  2000.80.937.0    664,128  Autoplt.dll
   29-Apr-2004  22:58  2000.80.937.0     78,400  Console.exe
   29-Apr-2004  23:17  2000.80.937.0    315,968  Custtask.dll
   29-Apr-2004  22:36  2000.80.937.0     33,340  Dbmslpcn.dll
   29-Apr-2004  23:13  2000.80.937.0  1,905,216  Dtspkg.dll
   29-Apr-2004  23:09  2000.80.937.0    528,960  Dtspump.dll
   29-Apr-2004  23:25  2000.80.937.0  1,557,052  Dtsui.dll
   29-Apr-2004  23:25  2000.80.937.0    639,552  Dtswiz.dll
   29-Apr-2004  23:23  2000.80.937.0     82,492  Itwiz.exe
   29-Apr-2004  22:40  2000.80.937.0     90,692  Msgprox.dll
   29-Apr-2004  22:42  2000.80.937.0     62,024  Odsole70.dll
   29-Apr-2004  23:25  2000.80.937.0     25,144  Opends60.dll
   29-Apr-2004  23:24                    17,576  Opends60.lib
   29-Apr-2004  22:43  2000.80.937.0     57,904  Osql.exe
   29-Apr-2004  23:13  2000.80.937.0    279,104  Pfutil80.dll
   29-Apr-2004  22:52  2000.80.937.0    221,768  Replprov.dll
   29-Apr-2004  22:54  2000.80.937.0    307,784  Replrec.dll
   29-Apr-2004  22:57  2000.80.937.0    287,304  Rinitcom.dll
   29-Apr-2004  22:33  2000.80.937.0     66,112  Semmap.dll
   29-Apr-2004  22:38  2000.80.937.0     57,916  Semnt.dll
   29-Apr-2004  23:22  2000.80.937.0    492,096  Semobj.dll
   29-Apr-2004  22:51  2000.80.937.0     53,832  Snapshot.exe
   29-Apr-2004  22:38  2000.80.937.0     28,672  Sqlagent.dll
   29-Apr-2004  22:42  2000.80.937.0    311,872  Sqlagent.exe
   29-Apr-2004  22:48  2000.80.937.0    168,001  Sqlakw32.dll
   29-Apr-2004  22:48                     4,352  Sqlakw32.lib
   29-Apr-2004  23:11  2000.80.937.0     33,344  Sqlctr80.dll
   29-Apr-2004  22:34  2000.80.937.0    815,676  Sqldata.dll
   29-Apr-2004  23:23  2000.80.937.0  4,215,360  Sqldmo.dll
   29-Apr-2004  22:51                    25,172  Sqldumper.exe
   29-Apr-2004  22:57  2000.80.937.0    180,792  Sqlmap70.dll
   29-Apr-2004  23:21  2000.80.937.0    188,992  Sqlmmc.dll
   29-Apr-2004  23:16  2000.80.937.0    401,984  Sqlqry.dll
   29-Apr-2004  22:55  2000.80.937.0     57,920  Sqlrepss.dll
   29-Apr-2004  23:11  2000.80.937.0  7,512,640  Sqlservr.exe
   29-Apr-2004  22:34  2000.80.937.0    590,396  Sqlsort.dll
   29-Apr-2004  22:54  2000.80.937.0     45,644  Sqlvdi.dll
   29-Apr-2004  22:54  2000.80.937.0    106,588  Sqsrvres.dll
   29-Apr-2004  22:36  2000.80.937.0     33,340  Ssmslpcn.dll
   29-Apr-2004  22:41  2000.80.937.0     82,492  Ssnetlib.dll
   29-Apr-2004  23:04  2000.80.937.0     25,148  Ssnmpn70.dll
   29-Apr-2004  22:57  2000.80.937.0    123,456  Stardds.dll 
   29-Apr-2004  22:58  2000.80.937.0    158,240  Svrnetcn.dll
   29-Apr-2004  22:58  2000.80.937.0     76,416  Svrnetcn.exe
   29-Apr-2004  23:02  2000.80.937.0     53,808  Ums.dll
   29-Apr-2004  22:58  2000.80.937.0     98,872  Xpweb70.dll 
   29-Apr-2004  23:06  2000.80.937.0    208,896  Dtspkg.rll
   29-Apr-2004  23:21  2000.80.937.0    331,776  Dtswiz.rll
   29-Apr-2004  22:45  2000.80.937.0    159,813  Replres.rll
   29-Apr-2004  23:18  2000.80.937.0    172,032  Semobj.rll
   29-Apr-2004  22:38  2000.80.937.0     53,248  Sqlagent.rll
   29-Apr-2004  23:06  2000.80.937.0    585,728  Sqldmo.rll
   29-Apr-2004  22:34  2000.80.937.0     28,672  Sqlevn70.rll
   29-Apr-2004  23:18  2000.80.937.0    479,232  Sqlmmc.rll
   29-Apr-2004  22:53  2000.80.937.0     12,288  Sqlrepss.rll
   29-Apr-2004  22:56  2000.80.937.0     24,576  Svrnetcn.rll

Note Because of file dependencies, the most recent hotfix or feature that contains these files may also contain additional files.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

This problem was first corrected in Microsoft SQL Server 2000 Service Pack 4.

MORE INFORMATION

This hotfix adds diagnostics to SQL Server. These diagnostics try to detect when a read operation from a disk does not experience any errors but the read operation returns data that is not valid. The validation that the diagnostics perform on the data that is returned to SQL Server is similar to audit checks by the CHECKDB command. If you enable these diagnostics, pages are audited every time that they are read from disk.

To enable these diagnostics, you must enable trace flag 806 on the server. To do this, use one of the following methods:
  • Add -T806 to the SQL Server startup parameters. To do this in Enterprise Manager, point to Server Properties, and then click Startup Parameters.
  • Use the DBCC TRACEON(806, -1) command from a query connection.
When you enable trace flag 806 and an audit failure is detected during a read operation, you will receive the following error messages in the SQL Server error log:

2004-06-25 11:29:04.11 spid51 Error: 823, Severity: 24, State: 2
2004-06-25 11:29:04.11 spid51 I/O error (audit failure) detected during read at offset 0x000000000b0000 in file 'e:\Program Files\Microsoft SQL Server\MSSQL\data\pubs.mdf'..
These error messages could indicate potential problems with the disk, the disk controller, or the disk driver software. If you receive these error messages, you must investigate these potential problems.

Note The diagnostics that are included in this hotfix do not correct any hardware or driver problems. These diagnostics are only intended to report issues that occur when you retrieve database pages from physical media. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates


Modification Type:MinorLast Reviewed:6/1/2006
Keywords:kbSQLServ2000preSP4fix kbfix kbbug kbHotfixServer kbQFE KB841776 kbAudDeveloper