Icon View Incident Report

Serious Serious
Reported By: Daniel Lundin
Reported On: 2/22/2005
For: Version 4.17 Build 1
# 1982 Executing a Transaction Rollback on a Table with Newly-Inserted Records Can Cause 10258 Error

While testing my appliction i got error #10258 'Can not lock record in the table...' several times. While trying to find out the reason why this error was generated I think I found a problem in DBISAM.

The application I developing uses a few number of threads that operates in the database and they are present during the whole application uptime with a number of tables open. Each thread has its own session and database component.

In my application I have a set of functions that is used to add or change data in the database, they are all executed in the context of the main thread. All functions uses transactions, and makes changes in several tables (at least 2 or more). If an exception is raised within a transaction there is no doubt that the next function call (or transaction) will fail with error 10258 when an attempt to post a record is made. If discovered that if I don't have any threads active it all works fine.

Comments Comments
The newly-inserted records must cause the physical size of the table and the number of physical records to expand in order for this bug to surface.

Resolution Resolution
Fixed Problem on 2/26/2005 in version 4.18 build 1