Article ID: 867878
Article Last Modified on 11/2/2007
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 Edition
- Microsoft SQL Server 2000 Workgroup Edition
- Microsoft SQL Server 2000 Desktop Engine (Windows)
- Microsoft SQL Server 2000 Developer Edition
- Microsoft SQL Server 2000 Enterprise Edition 64-bit
Bug #: 471610 (SHILOH_BUGS)
Microsoft SQL Server 2000 fixes are distributed as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2000 fix release.
SYMPTOMS
The Log Reader Agent may cause 17883 error messages. These 17883 error messages may cause your instance of SQL Server to stop responding:
To determine if this problem is occurring, view the minidump files that are generated by the 17883 error messages, and then search for the IsXactStartValid function. If you do find the IsXactStartValid function, compare the stack from your minidump file to the Log Reader offender thread stack that is noted in the "More Information" section. If the stacks match, this problem is occurring.
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 ---------------------------------------------------------------------- 19-Jun-2004 00:51 2000.80.952.0 664,128 Autoplt.dll 19-Jun-2004 00:51 2000.80.952.0 78,400 Console.exe 19-Jun-2004 00:51 2000.80.952.0 315,968 Custtask.dll 19-Jun-2004 00:51 2000.80.952.0 33,340 Dbmslpcn.dll 08-Apr-2004 21:42 786,432 Distmdl.ldf 08-Apr-2004 21:42 2,359,296 Distmdl.mdf 10-Oct-2003 18:48 180 Drop_repl_hotfix.sql 19-Jun-2004 00:51 2000.80.952.0 1,905,216 Dtspkg.dll 19-Jun-2004 00:52 2000.80.952.0 528,960 Dtspump.dll 19-Jun-2004 00:52 2000.80.952.0 1,557,052 Dtsui.dll 19-Jun-2004 00:52 2000.80.952.0 639,552 Dtswiz.dll 10-Oct-2003 18:48 747,927 Instdist.sql 10-Oct-2003 18:48 1,581 Inst_repl_hotfix.sql 19-Jun-2004 00:51 2000.80.952.0 352,828 Isqlw.exe 19-Jun-2004 00:51 2000.80.952.0 82,492 Itwiz.exe 19-Jun-2004 00:52 2000.80.952.0 90,692 Msgprox.dll 19-May-2004 23:43 8.11.40209.0 209,408 Mssdi98.dll 19-Jun-2004 00:52 2000.80.952.0 62,024 Odsole70.dll 19-Jun-2004 00:52 2000.80.952.0 25,144 Opends60.dll 19-Jun-2004 00:51 2000.80.952.0 57,904 Osql.exe 19-Jun-2004 00:52 2000.80.952.0 279,104 Pfutil80.dll 10-Oct-2003 18:37 550,780 Procsyst.sql 08-Apr-2004 21:42 12,305 Qfe469315.sql 08-Apr-2004 21:42 19,195 Qfe469571.sql 15-Jun-2004 18:11 1,105,167 Replmerg.sql 19-Jun-2004 00:52 2000.80.952.0 221,768 Replprov.dll 19-Jun-2004 00:52 2000.80.952.0 307,784 Replrec.dll 15-Jun-2004 15:43 2000.80.952.0 159,813 Replres.rll 10-Oct-2003 18:48 1,087,150 Replsys.sql 10-Oct-2003 18:48 986,603 Repltran.sql 19-Jun-2004 00:52 2000.80.952.0 287,304 Rinitcom.dll 19-Jun-2004 00:52 2000.80.952.0 78,416 Sdiclnt.dll 19-Jun-2004 00:52 2000.80.952.0 66,112 Semmap.dll 19-Jun-2004 00:52 2000.80.952.0 57,916 Semnt.dll 19-Jun-2004 00:52 2000.80.952.0 492,096 Semobj.dll 15-Jun-2004 16:18 2000.80.952.0 172,032 Semobj.rll 19-Jun-2004 00:51 2000.80.952.0 53,832 Snapshot.exe 12-Mar-2004 03:10 117,834 Sp3_serv_uni.sql 19-Jun-2004 00:51 2000.80.952.0 28,672 Sqlagent.dll 19-Jun-2004 00:51 2000.80.952.0 311,872 Sqlagent.exe 19-Jun-2004 00:51 2000.80.952.0 168,001 Sqlakw32.dll 19-Jun-2004 00:52 2000.80.952.0 33,344 Sqlctr80.dll 19-Jun-2004 00:52 2000.80.952.0 4,215,360 Sqldmo.dll 19-Jun-2004 00:51 25,172 Sqldumper.exe 15-Jun-2004 15:26 2000.80.952.0 28,672 Sqlevn70.rll 19-Jun-2004 00:52 2000.80.952.0 180,792 Sqlmap70.dll 19-Jun-2004 00:52 2000.80.952.0 188,992 Sqlmmc.dll 15-Jun-2004 16:25 2000.80.952.0 479,232 Sqlmmc.rll 19-Jun-2004 00:52 2000.80.952.0 401,984 Sqlqry.dll 19-Jun-2004 00:52 2000.80.952.0 57,920 Sqlrepss.dll 19-Jun-2004 00:52 2000.80.952.0 7,581,777 Sqlservr.exe 19-Jun-2004 00:52 2000.80.952.0 590,396 Sqlsort.dll 19-Jun-2004 00:52 2000.80.952.0 45,644 Sqlvdi.dll 19-Jun-2004 00:52 2000.80.952.0 106,588 Sqsrvres.dll 19-Jun-2004 00:52 2000.80.952.0 33,340 Ssmslpcn.dll 19-Jun-2004 00:52 2000.80.952.0 82,492 Ssnetlib.dll 19-Jun-2004 00:52 2000.80.952.0 25,148 Ssnmpn70.dll 19-Jun-2004 00:52 2000.80.952.0 123,456 Stardds.dll 19-Jun-2004 00:52 2000.80.952.0 158,240 Svrnetcn.dll 19-Jun-2004 00:51 2000.80.952.0 76,416 Svrnetcn.exe 19-Jun-2004 00:52 2000.80.952.0 53,808 Ums.dll 19-Jun-2004 00:52 2000.80.952.0 98,872 Xpweb70.dll
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 problem is related to timing and may not always occur. This problem is not very common. When the problem occurs, the Log Reader thread encountered a replication error and was about to log an error. Before the Log Reader thread could log the error, the thread had to yield the scheduler where the thread was running to another thread. When the Log Reader thread yields the scheduler, the thread holds on to a spinlock on an internal SQL Server structure named DBTABLE. The DBTABLE structure is critical for the server operation. After the Log Reader thread yields, the Log Reader thread that was holding the spinlock cannot run again for an extended time. The time may depend on what else is running on the server at that time on that scheduler. During this time, no other threads in SQL Server can access the DBTABLE structure, and the threads must wait for the spinlock. When the wait period for the spinlock exceeds 60 seconds, the 17883 error message is triggered. The CPU for SQL Server process is 100 percent because all the threads are spinning and waiting on the DBTABLE spinlock. The CPU utilization may cause the instance of SQL Server to stop responding.
The Log Reader thread stack is as follows:
SharedUserData!SystemCallStub+0x4 ntdll!NtWaitForSingleObject+0xc kernel32!WaitForSingleObjectEx+0xac ums!UmsThreadScheduler::Switch+0x4c ums!UmsScheduler::IdleLoop+0x105 ums!UmsScheduler::Suspend+0x66 ums!UmsEvent::Wait+0x8e sqlservr!ExecutionContext::WaitForSignal+0x1aa sqlservr!LatchBase::Suspend+0x16c sqlservr!LatchBase::Acquire+0xae sqlservr!BUF::AcquireLatch+0x1f sqlservr!BPool::GetFromDisk+0x35a sqlservr!bufget+0x278 sqlservr!SDES::GetPage+0xb8 sqlservr!LinkedPageSupplier::FirstPage+0x10c sqlservr!LinkedPageSupplier::GetNextPage+0xd6 sqlservr!SDES::GetBiDi+0x19c sqlservr!CSysScan::FGetNext+0x7f sqlservr!wfindtext+0x24b sqlservr!ex_sprint+0x3f sqlservr!user_log+0x92 sqlservr!IsXactStartValid+0xeb sqlservr!ReplXactFinder::GetNextPendingXact+0x137 sqlservr!repl_cmds_get_xacts+0x15f sqlservr!repl_cmds+0x140 sqlservr!xp_replcmds+0x18a sqlservr!CSpecProc::ExecuteSpecial+0x119 sqlservr!CXProc::Execute+0xa3 sqlservr!CSQLSource::Execute+0x3c0 sqlservr!execrpc+0x507 sqlservr!execute_rpc+0x19 sqlservr!process_commands+0x232 ums!ProcessWorkRequests+0x272 ums!ThreadStartRoutine+0x98 msvcrt!_threadstart+0x70 kernel32!BaseThreadStart+0x34
The stack for one of the threads that is waiting on the spinlock is as follows:
sqlservr!SpinlockBase::SpinToAcquire+0x3a sqlservr!FEqProtstamp+0x4d sqlservr!SecCache::_PsceLookupDbSecntxt+0x27 sqlservr!SecCache::FValidScedb+0x10 sqlservr!checkdbperm+0xd9 sqlservr!usedb+0xda sqlservr!FDetermineSessionDb+0x66 sqlservr!FRedoLogin+0x16c sqlservr!ResetConnAndDtcXact+0xdc sqlservr!execrpc+0xad sqlservr!execute_rpc+0x19 sqlservr!process_commands+0x232 ums!ProcessWorkRequests+0x272 ums!ThreadStartRoutine+0x98 msvcrt!_threadstart+0x70 kernel32!BaseThreadStart+0x34
For more information about the 17883 error message, click the following article number to view the article in the Microsoft Knowledge Base:
319892 New concurrency and scheduling diagnostics added to SQL Server
For more 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
Keywords: kbbug kbfix kbqfe kbsqlserv2000presp4fix kbhotfixserver KB867878