FIX: Complex ANSI Join Query with Distributed Queries May Cause Handled Access Violation (285290)



The information in this article applies to:

  • Microsoft SQL Server 2000 (all editions)

This article was previously published under Q285290
BUG #: 235508 (SHILOH_BUGS)

SYMPTOMS

Complex ANSI join queries that consist of multiple distributed queries may cause a handled access violation, which terminates the client connection that submitted the query. If this occurs the SQL Server error log contains a stack trace similar to:
Note this stack trace is from build 8.00.194 (retail):

0058A89D Module(SQLSERVR+0018A89D) (CBinding::PexprExtract(int *,class COpArg * *)+0000014B)
0058A754 Module(SQLSERVR+0018A754) (CBinding::PexprExtract(int *,class COpArg * *)+000001D0)
00589094 Module(SQLSERVR+00189094) (CTask_ApplyRule::Perform(int)+000001F8)
0058C939 Module(SQLSERVR+0018C939) (CMemo::ExecuteTasks(class COptTask *,int,int)+0000014D)
0058CF2D Module(SQLSERVR+0018CF2D) (CMemo::OptimizeQuery(class CQuery *,class COptExpr *,double *,int,int,struct s_OptimPlans *)+0000051A)
0058CADF Module(SQLSERVR+0018CADF) (COptContext::PexprSearchPlan(class COptExpr *)+00000155)
0055E100 Module(SQLSERVR+0015E100) (COptContext::PcxteOptimizeQuery(class COptExpr *,class DRgCId *)+00000B7A)
0055FFBB Module(SQLSERVR+0015FFBB) (CQuery::Optimize(void)+00000416)
0055FD54 Module(SQLSERVR+0015FD54) (CQuery::Optimize(unsigned long)+00000030)
005642C6 Module(SQLSERVR+001642C6) (CCvtTree::PqryFromTree(class TREE *,class IMemObj *,class CRangeCollection *,unsigned long,class CCompPlan *)+000002C4)
00564019 Module(SQLSERVR+00164019) (BuildQueryFromTree(class TREE *,class IMemObj *,class IMemObj *,class IQueryObj * *,class CRangeCollection *,unsigned long,class CCompPlan *)+00000046)
00563F78 Module(SQLSERVR+00163F78) (CStmtQuery::InitQuery(class CAlgStmt *,class CCompPlan *,unsigned long)+0000014B)
0049DA48 Module(SQLSERVR+0009DA48) (CStmtSelect::Init(class CAlgStmt *,class CCompPlan *,class IBrowseMode *)+00000091)
00447078 Module(SQLSERVR+00047078) (CCompPlan::FCompileStep(class CAlgStmt *,class CStatement * *)+00000AE7)
004510FE Module(SQLSERVR+000510FE) (CProchdr::FCompile(class CCompPlan *,class CParamExchange *)+00000D15)
00415080 Module(SQLSERVR+00015080) (CSQLSource::FTransform(class CParamExchange *)+0000037C)
004592CE Module(SQLSERVR+000592CE) (CSQLStrings::FTransform(class CParamExchange *)+000001A8)
0041534F Module(SQLSERVR+0001534F) (CSQLSource::Execute(class CParamExchange *)+00000176)
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)
				

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

Hotfix

NOTE: The following hotfix was created prior to Microsoft SQL Server 2000 Service Pack 1.

The English version of this fix should have the following file attributes or later:
   File name      Platform
   -----------------------

   s80239i.exe    x86
				
NOTE: Due to file dependencies, the most recent hotfix or feature that contains the preceding files may also contain additional files.

WORKAROUND

Simplify the query by removing some distributed queries.

STATUS

Microsoft has confirmed that this is a problem in Microsoft SQL Server 2000. This problem was first corrected in SQL Server 2000 Service Pack 1.

Modification Type:MajorLast Reviewed:10/9/2003
Keywords:kbBug kbfix kbQFE kbSQLServ2000sp1fix KB285290