Microsoft KB Archive/867878

= FIX: The Log Reader Agent may cause 17883 error messages =

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:

Error: 17883, Severity: 1, State: 0

server Process 162:0 (0) UMS Context 0x11DE8B68 appears to be non-yielding on Scheduler 1.

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 &quot;More Information&quot; section. If the stacks match, this problem is occurring.



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 &quot;Applies to&quot; 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

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.