FIX: SQL Server Assertion Failure Occurs if Recovery Model of TempDB is not SIMPLE

This article was previously published under Q289880
This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 351754 (SHILOH_bugs)
When you try to connect to a SQL Server server with the SQL Server Enterprise Manager, you may encounter the following error message, which is followed by a SQL Server shut down:
sqlservr.exe - Application Error
The exception unknown software exception (0xe06d7363) occurred in the application at location 0x77e89b01.
This assertion can only occur if the recovery model option of the tempdb database was manually set to a value other than SIMPLE, by modifying the sysdatabases.status system table. Please note that modifying system tables in SQL Server is not supported and may lead to unexpected product behavior.
To resolve this problem, obtain the latest service pack for SQL Server 2000. For additional information, click the following article number to view the article in theMicrosoft Knowledge Base:
290211 INF: How to Obtain the Latest SQL Server 2000 Service Pack
Set the tempdb to a SIMPLE recovery model. You can only do this by updating sysdatabases.status to eight (8).
Microsoft has confirmed that this is a problem in SQL Server 2000. This problem was first corrected in SQL Server 2000 Service Pack 1.
The ALTER DATABASE statement and sp_dboption do not allow you to change the recovery model of tempdb. The only way you can change the recovery model of tempdb is to perform a manual modification of the system catalog.

The following stack dump may be found in the SQL Server error log:
Short Stack Dump77F97AC6 Module(ntdll+00017AC6) (ZwGetContextThread+0000000B)0092569E Module(sqlservr+0052569E) (utassert_fail(enum UTASSERT_TYPE,char const *,char const *,int,char const *,...)+000002EA)008445AF Module(sqlservr+004445AF) (PageRef::ComputeLogMode(enum LogMode,struct BUF *,class XDES *,int)+000001DC)0041E88C Module(sqlservr+0001E88C) (PageRef::DeleteRows(struct BUF *,int,int,enum ETabStatus,int,class XDES *,unsigned int)+0000014E)0041E44E Module(sqlservr+0001E44E) (PageRef::MarkIndexRowAsDeleted(struct BUF *,int,class SDES *)+00000052)0041E595 Module(sqlservr+0001E595) (DeleteSargKeysFromIndex(class ExecutionContext *,struct INDEX const *,class SDES *)+0000013A)0041F3E9 Module(sqlservr+0001F3E9) (ncdelete(class SDES *,class Scan_rid &,struct BUF * &)+00000240)0040C70C Module(sqlservr+0000C70C) (DeleteNonClusteredEntries(class SDES *,struct BUF * &,class Scan_rid &)+0000002C)0041EB30 Module(sqlservr+0001EB30) (SDES::IndexDeleteRow(class Scan_rid &,int,int,int)+00000163)00469401 Module(sqlservr+00069401) (CSysScan::DeleteRow(int)+00000077)0046A06F Module(sqlservr+0006A06F) (DropObject(class XDES *,unsigned short,long,long,int,int,int)+000000B8)00552132 Module(sqlservr+00152132) (FDropTempWithNolog(long,int)+00000144)005E0E4D Module(sqlservr+001E0E4D) (DropTempObject(long,int)+000001EE)005F3388 Module(sqlservr+001F3388) (AutoDropTmpObjects(void)+00000092)00414405 Module(sqlservr+00014405) (CSQLSource::~CSQLSource(void)+00000134)00416DF4 Module(sqlservr+00016DF4) (CSQLObject::~CSQLObject(void)+000000A4)0049CD55 Module(sqlservr+0009CD55) (CStmtExec::XretLocalExec(class CMsqlExecContext *,unsigned short *,int,class WParseName *)const +0000019F)0049CB9F Module(sqlservr+0009CB9F) (CStmtExec::XretExecute(class CMsqlExecContext *)const +00000322)004160DB Module(sqlservr+000160DB) (CMsqlExecContext::ExecuteStmts(class ExecutionContext *)+0000027E)00415765 Module(sqlservr+00015765) (CMsqlExecContext::Execute(class CCompPlan *,class CParamExchange *)+000001C7)00415410 Module(sqlservr+00015410) (CSQLSource::Execute(class CParamExchange *)+00000343)00459A54 Module(sqlservr+00059A54) (language_exec(struct srv_proc *)+000003C8)004175D8 Module(sqlservr+000175D8) (process_commands(struct srv_proc *)+000000E0)410735D0 Module(UMS+000035D0) (ProcessWorkRequests(class UmsWorkQueue *)+00000264)4107382C Module(UMS+0000382C) (ThreadStartRoutine(void *)+000000BD)7800BEA1 Module(MSVCRT+0000BEA1) (_beginthread+000000CE)77E92CA8 Module(KERNEL32+00012CA8) (CreateFileA+0000011B)-------------------------------------------------------------------------------2001-03-22 08:25:11.65 spid51    SQL Server Assertion: File: <pageref.cpp>, line=881 Failed Assertion = '(xdes != NULL) && !xdes->IsReadOnly ()'.				


For more information about recovery models, refer to:

SQL Server 2000 Books Online; topics: "Selecting a Recovery Model"; "Using Recovery Models"

Article ID: 289880 - Last Review: 01/16/2015 21:42:42 - Revision: 3.2

  • Microsoft SQL Server 2000 Standard Edition
  • kbnosurvey kbarchive kbbug kbfix kbsqlserv2000sp1fix KB289880