FIX: Assertion and Error Message 3314 Occurs If You Try to Roll Back a Text Operation with READ UNCOMMITTED (319851)



The information in this article applies to:

  • Microsoft SQL Server 2000 (all editions)
  • Microsoft SQL Server 7.0

This article was previously published under Q319851
BUG #: 102483 (SQLBUG_70) BUG #: 102483 (SHILOH)

SYMPTOMS

SQL Server may experience the following assertion, and a 3314 error message occurs if SQL Server tries to roll back a text operation when a connection is running with the READ UNCOMMITTED transaction isolation level set on the connection:
2002-03-14 10:31:48.95 kernel    SQL Server Assertion: File: <page.cpp>, line=2825 
Failed Assertion = 'sid >= m_slotCnt || m_slots[-sid].offset ==0'.
					
Additionally, on SQL Server 2000, the following assertion may also be present in the SQL Server error log:
2002-08-23 10:21:14.39 spid54    SQL Server Assertion: File: <logscan.cpp>, line=3049 
Failed Assertion = '(m_lastLSN == NullLSN) || (m_lastLSN > m_curLSN)'.

2002-03-14 10:32:03.02 spid9    Error: 3314, Severity: 21, State: 4
2002-03-14 10:32:03.02 spid9    Error while undoing logged operation in database 'myDB'. Error at log record ID (8976:897:74)..
					
On SQL Server 2000, the following message may accompany the 3314 error message:
2002-08-23 10:21:14.68 spid54    Error: 9004, Severity: 23, State: 7
2002-08-23 10:21:14.68 spid54    An error occurred while processing the log for database 'myDB'..
					

RESOLUTION

A supported hotfix is now available from Microsoft, but it is only intended to correct the problem that this article describes. Apply it only to systems that are experiencing this specific problem.

To resolve this problem, contact Microsoft Product Support Services to obtain the hotfix. For a complete list of Microsoft Product Support Services telephone numbers and information about support costs, visit the following Microsoft Web site:Note In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

The English version of the SQL Server 2000 fix should have the following file attributes or later:
   Date          Version    Size              File name    
   -----------------------------------------------------------------------

   05-SEP-2002   8.00.682   7,467,089 bytes   Sqlservr.exe  SP2-Based Fix

				
NOTE: The SQL Server 2000 based fix will be included in Microsoft SQL Server 2000 Service Pack 3 (SP3).

The English version of the SQL Server 7.0 fix should have the following file attributes or later:
   Date          Version     Size              File name    
   -----------------------------------------------------------------------

   15-MAR-2002   7.00.1026   5,054,736 bytes   Sqlservr.exe  SP3-Based Fix
   14-FEB-2002   7.00.1021     586,000 bytes   Sqlsort.dll   SP3-Based Fix
   14-MAY-2002   7.00.1071   5,058,832 bytes   Sqlservr.exe  SP4-Based Fix

				
NOTE: Because of file dependencies, the most recent hotfix or feature that contains the files may also contain additional files.
NOTE: The fix for this bug will be included in SQL Server 2000 Service Pack 3.

WORKAROUND

To work around the behavior, set the isolation level of the connection to READ COMMITTED by using a Transact-SQL SET statement. For example:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
				

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

Modification Type:MinorLast Reviewed:10/18/2005
Keywords:kbHotfixServer kbQFE kbbug kbfix kbQFE kbSQLServ2000sp3fix kbSQLServ700preSP5fix KB319851