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