FirebirdSQL/firebird-odbc-driver

Attempted to read or write protected memory. This is often an indication that other memory is corrupt [ODBC137]

firebird-automations opened this issue · 5 comments

Submitted by: Roberto Carlos da Silva (robertosistemas)

Attachments:
TestThreadSafe.zip

some errors reported:

(1) System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

(2) ERROR [08S01] [ODBC Firebird Driver][Firebird]Error reading data from the connection.

(3) ERROR [HY000] [ODBC Firebird Driver][Firebird]request synchronization error.

The read error occurs when the option is not used thread-safe.
As a suggestion, it would be nice if the thread-safe option was enabled by default in the drive.
not passing the attribute SAFETHREAD = Y in the connection string.
because in most ODBC drivers are already thread-safe without any attribute.

Commented by: Roberto Carlos da Silva (robertosistemas)

Project attached for testing

some errors reported:

(1) System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

(2) ERROR [08S01] [ODBC Firebird Driver][Firebird]Error reading data from the connection.

(3) ERROR [HY000] [ODBC Firebird Driver][Firebird]request synchronization error.

The read error occurs when the option is not used thread-safe.
As a suggestion, it would be nice if the thread-safe option was enabled by default in the drive.
not passing the attribute SAFETHREAD = Y in the connection string.
because in most ODBC drivers are already thread-safe without any attribute.

Modified by: Roberto Carlos da Silva (robertosistemas)

Attachment: TestThreadSafe.zip [ 12095 ]

Commented by: @alexpotapchenko

Roberto,
I have not understood you.
If you use the connection string: Driver={Firebird/InterBase(r) driver};dbname=localhost:c:\temp\DbTest.fdb;charset=WIN1252;uid=SYSDBA;pwd=masterkey;client=fbclient.dll" then "SAFETHREAD = Y" is the default option.
I don't see the problem, you use SAFETHREAD=N for reproduction of errors.

Modified by: @alexpotapchenko

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Won't Fix [ 2 ]

Fix Version: 2.0.1 [ 10430 ]

Modified by: @alexpotapchenko

status: Resolved [ 5 ] => Closed [ 6 ]