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:
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: | Major | Last Reviewed: | 10/16/2002 |
---|
Keywords: | kbBug KB262541 |
---|
|