Microsoft KB Archive/105751

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

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.