Registrations are now open. Join us today!
There is still a lot of work to do on the wiki yet! More information about editing can be found here.
Already have an account?

Microsoft KB Archive/105751

From BetaArchive Wiki

FIX: GP Fault in Multi-Threaded DB-Library Program

PSS ID Number: Q105751 Article last modified on 01-24-1995

4.20 | 4.20


The information in this article applies to:
- Microsoft SQL Server Programmer’s Toolkit, version 4.2

BUG# 9531 (4.20.00)


When calling DB-Library from multiple threads of execution within a client application, a general protection fault (GP fault) occurs. This happens despite serialization of DB-Library calls involving global variables as documented in the Microsoft SQL Server “Programmer’s Reference for C.”


Interactions between threads executing several different DB-Library functions can result in a situation leading to an infinite recursion and GP fault. This is most likely to occur when multiple threads are executing dbuse() and dbcursoropen() simultaneously.


Access to the following functions should be serialized with a single synchronization object:

dbcursoropen() dbopen() dbuse() dbmsghandle() dberrhandle()


Microsoft has confirmed this to be a problem in DB-Library version 4.20.00. This problem was corrected in DB-Library version 4.21.00. For more information, contact your primary support provider.

Additional reference words: 4.20.00 DB-Lib cursor cursors multi threads KBCategory: kbprg KBSubCategory: SSrvDB_Lib SSrvProg


Copyright Microsoft Corporation 1995.