Microsoft KB Archive/308749

= FIX: Access Violation Occurs When You Execute DBCC SHOWCONTIG Followed by Any System Function =

Article ID: 308749

Article Last Modified on 10/17/2003

-

APPLIES TO


 * Microsoft SQL Server 2000 Standard Edition

-



This article was previously published under Q308749



BUG #: 354316 (SHILOH_BUGS)



SYMPTOMS
After SQL Server executes a DBCC SHOWCONTIG statement, a SELECT statement from any SQL Server 2000 system function may generate an Access Violation.

The following Transact-SQL command executes DBCC SHOWCONTIG followed by a SELECT from the ::fn_helpcollations system function, which generates an Access Violation in SQL Server: USE master GO DBCC SHOWCONTIG GO SELECT * FROM ::fn_helpcollations GO The following error message displays if you execute the query in Query Analyzer:

ODBC: Msg 0, Level 19, State 1 SqlDumpExceptionHandler: Process 51 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.

The following access violation stack dump appears in the SQL Server error log: 2001-05-30 16:19:13.32 spid51   Using 'sqlimage.dll' version '4.0.5' Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL\log\SQL00022.dmp

2001-05-30 16:19:13.46 spid51   Error: 0, Severity: 19, State: 0

2001-05-30 16:19:13.46 spid51   SqlDumpExceptionHandler: Process 51 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process..

Short Stack Dump

 00800A9F Module(sqlservr+00400A9F) (RowsetSS::Init(class IMemObj *,class BaseXact *,int,int,int,struct IRowset *,class RowsetUsageDescriptor *,class RowsetExecContext const *,int)+000003E9)

0042794F Module(sqlservr+0002794F) (RowsetSS::WakeUp(class BaseXact *,class RowsetExecContext const *)+00000031)

00427919 Module(sqlservr+00027919) (CQScanRowset::WakeUp(void)+0000008E)

0042D8E9 Module(sqlservr+0002D8E9) (CQScanRowset::Open(unsigned long *)+0000002B)

004C0611 Module(sqlservr+000C0611) (CQScanTableScan::Open(unsigned long *)+0000000E)

00428749 Module(sqlservr+00028749) (CQueryScan::Startup(unsigned long *,class BaseXact *)+00000111)

0042703D Module(sqlservr+0002703D) (CStmtQuery::ErsqExecuteQuery(class CMsqlExecContext *,class CEsComp const *,class CEsComp const *,unsigned long *,int,int)const +000002B5)

00441A34 Module(sqlservr+00041A34) (CStmtSelect::XretExecute(class CMsqlExecContext *)const +0000021C)

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 *)+000000BC) 7800BEA1 Module(MSVCRT+0000BEA1) (_beginthread+000000CE)

77E837CD Module(KERNEL32+000037CD) (TlsSetValue+000000F0)

---



CAUSE
DBCC SHOWCONTIG scans the sysobjects system table to determine what tables to scan; however, it does not filter out the table valued functions. The object descriptor is cached, which causes an access violation when you SELECT from the system function.



RESOLUTION
To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

290211 INF: How to Obtain the Latest SQL Server 2000 Service Pack



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

This problem was first corrected in Microsoft SQL Server 2000 Service Pack 2.

Additional query words: DES cache system function AV SHOWCONTIG DBCC

Keywords: kbbug kbfix KB308749

-

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

© Microsoft Corporation. All rights reserved.