BUG: DBLIB Stops When Multiple Threads Handle An Error

ID: Q151608


The information in this article applies to:


SYMPTOMS

Here are some of the errors or behavior that have been encountered when a threaded application is in use and multiple threads are attempting to handle an error:

  1. If the loginrec becomes corrupted, it can cause the per process error and message handler installations to stop responding, and then cause a paged pool memory leak.


  2. The threaded application returns the folowing error message, while at same time you can log on from ISQL/W10004:
    Server unavailable or does not exist.


  3. Network library DLL is unloaded.


  4. The more errors produced, the faster the unexpected behavior occurs.


  5. Messages repeated or concatenated. For example, error message 10004:
    Unable to connect: Server is unavailable or does not exist. Unable to connect: Server is unavailable or does not exist.
    or
    10004: Connection is busy. Connection is busy.
    This is not the correct message; it should not be repeated.


  6. Memory structures corrupted in the user application.


  7. Dr. Watson or application general protection (GP) fault.


  8. Error message 10000:
    Unable to allocate sufficient memory
    or
    Not enough core


  9. Perfmon shows non-paged pool leak each time per process error or message handler fails to install


  10. Error contains garbage or extended characters.



CAUSE

Operating system errors or communication errors can cause a DBLIB application to exhibit unexpected behavior. It is hard to predict the behavior because DBLIB may free any memory address.

The conditions for encountering the problem include a threaded application where multiple threads are attempting to handle an error. The error handling routine contains a static structure that is not being protected.


STATUS

Microsoft has confirmed this to be a problem in Microsoft SQL Server version 6.0.We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

This problem does not occur in Microsoft SQL Server version 6.5.


Keywords          : kbbug6.00 
Version           : 6.0
Platform          : WINDOWS 
Issue type        : 

Last Reviewed: March 26, 1999