Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

FIX: Crash in SQLXMLX Hangs Web Service Threads


View products that this article applies to.

This article was previously published under Q291838

↑ Back to the top


Symptoms

When Command.Execute( , , adExecuteStream) is used to execute a statement with the Command.CommandStream object, and when the input stream is a SQL query that uses the XML template format and contains a large value for a <sql:param> parameter, an access violation (AV) may occur.

This occurs only with the MDAC 2.6 (2000.80.194.0) version of Sqlxmlx.dll.

↑ Back to the top


Cause

While the statement is being copied into the stream buffer prior to sending it to the server, a function that processes parameter values attempts to copy twice as many bytes as necessary. When the parameter data resides close to the end of allocated memory, this can cause the copy request to run off the end of allocated memory, and an AV occurs.

↑ Back to the top


Resolution

To resolve this problem, obtain the latest service pack for Microsoft Data Access Components 2.6.

For customers who are unable to upgrade to the latest service pack, a supported fix is available from Microsoft, but it is only intended to correct the problem described in this article and should be applied only to systems experiencing this specific problem.

To obtain the fix, contact Microsoft Product Support Services. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, please go to the following address on the World Wide Web: NOTE: In special cases, charges that are normally incurred for support calls may be canceled, if a Microsoft Support Professional determines that a specific update will resolve your problem. Normal support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

The English version of this fix should have the following file attributes or later:
   Date           Version          Size             File name    
   -------------------------------------------------------------
   06-MAR-2001    2000.80.264.0    188,492 bytes    Sqlxmlx.dll
   06-MAR-2001    2000.80.264.0     24,576 bytes    Sqlxmlx.rll  
				

↑ Back to the top


Workaround

If possible, keep the size of the parameters relatively small. Parameters no larger than approximately 50 characters are recommended.

↑ Back to the top


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 Data Access Components 2.6 Service Pack 1.

↑ Back to the top


More information

The crash in Sqlxmlx.dll is a handled exception, so it may not be immediately obvious that this crash is occurring. It may be necessary to attach a debugger to the process to detect the crash.

However, this crash can lead to another condition which causes the executing thread in a Web server to go into an infinite loop. As more threads encounter this condition over time, server performance can be severely degraded.

↑ Back to the top


Keywords: KB291838, kbqfe, kbprb, kbqfe, kbhotfixserver

↑ Back to the top

Article Info
Article ID : 291838
Revision : 6
Created on : 9/26/2005
Published on : 9/26/2005
Exists online : False
Views : 329