BUG: Query Against Linked Server Might Cause Access Violation When the Name of One Unique Index is a Part of Another Unique Clustered Index (262541)



The information in this article applies to:

  • Microsoft SQL Server 7.0

This article was previously published under Q262541
BUG #:57611 (SQLBUG_70)

SYMPTOMS

A SELECT statement that uses the four-part name against a linked server, might generate an access violation if all of the following conditions are met:
  • The OLE DB provider for ODBC Driver is chosen to create the linked server.

  • The name of one unique index (for example, PK_index) is a shortened name of another unique clustered index (for example, PK_index_1__14) on the same table.

  • The unique clustered index includes the columns from the other unique index as part of its key.
The query fails with an error message similar to the following:
ODBC: Msg 0, Level 19, State 1

SqlDumpExceptionHandler: Process 8 generated fatal exception c0000005
EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.

Connection Broken
The short stack trace seen in the errorlog for the preceding spid is:
0x00574b4c Module(sqlservr+174b4c) (CTableMetadata::GatherGroupProperties+290)
0x00622298 Module(sqlservr+222298) (CTableMetadata::LoadMetadata+19c)
0x006221ac Module(sqlservr+2221ac) (CCvtTree::LoadAllMetadata+7c)
0x00620888 Module(sqlservr+220888) (CCvtTree::PqryFromTree+dec)
0x00621d5c Module(sqlservr+221d5c) (BuildQueryFromTree+8c)
0x00621ef0 Module(sqlservr+221ef0) (CStmtQuery::InitQuery+184)
0x00619b08 Module(sqlservr+219b08) (CStmtSelect::Init+cc)
0x0052266c Module(sqlservr+12266c) (CCompPlan::FCompileStep+b98)
0x004cf1a8 Module(sqlservr+cf1a8) (CProchdr::FCompile+7f0)
0x004e0580 Module(sqlservr+e0580) (CSQLSource::FTransform+384)
0x004e0100 Module(sqlservr+e0100) (CSQLStrings::FTransform+208)
0x004c04ec Module(sqlservr+c04ec) (CSQLStrings::Compile+8c)
0x004e5180 Module(sqlservr+e5180) (CStmtPrepQuery::CStmtPrepQuery+478)
0x004ea238 Module(sqlservr+ea238) (CCompPlan::FCompileStep+184)
0x004cf1a8 Module(sqlservr+cf1a8) (CProchdr::FCompile+7f0)
0x004e0580 Module(sqlservr+e0580) (CSQLSource::FTransform+384)
0x004e0100 Module(sqlservr+e0100) (CSQLStrings::FTransform+208)
0x004de68c Module(sqlservr+de68c) (CSQLSource::Execute+14c)
0x004dec24 Module(sqlservr+dec24) (language_exec+638)
0x41066ea4 Module(opends60+6ea4) (execute_event+7a0)
0x41067524 Module(opends60+7524) (process_commands+144)
0x410a3620 Module(ums+3620) (ProcessWorkRequests+154)
0x410a2af0 Module(ums+2af0) (ThreadStartRoutine+16c)
0x780168e8 Module(MSVCRT+168e8) (endthread+fc)
0x77e6cc48 Module(KERNEL32+cc48) (lstrcmpiW+128)
2000-05-26 11:58:36.76 spid8    CImageHelper::GetSym Error - The specified Module could not be found.
2000-05-26 11:58:38.39 spid8    Error: 0, Severity: 19, State: 0
2000-05-26 11:58:38.39 spid8    language_exec: Process 8 generated an access violation. SQL Server is terminating this process.
2000-05-28 11:00:43.96 spid8    Using 'sqlimage.dll' version '4.0.5' Stack Dump being sent to C:\MSSQL7\log\SQL00002.dmp
2000-05-28 11:01:03.65 spid8    Error: 0, Severity: 19, State: 0
2000-05-28 11:01:03.65 spid8    SqlDumpExceptionHandler: Process 8 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.

WORKAROUND

To work around this problem you can either:
  • Select the OLE DB provider for SQL Server to create the linked server.

    -or-

  • Change the index name.

STATUS

Microsoft has confirmed this to be a problem in SQL Server 7.0.

Modification Type:MajorLast Reviewed:10/16/2002
Keywords:kbBug KB262541