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

OS/2 | WINDOWS

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

BUG# 9531 (4.20.00)

SYMPTOMS

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.”

CAUSE

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.

WORKAROUND

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

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

STATUS

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.