NETProvider icon indicating copy to clipboard operation
NETProvider copied to clipboard

invalid transaction handle with aborted threads [DNET910]

Open firebird-automations opened this issue 6 years ago • 3 comments

Submitted by: Christian Mayer (byzo_mc)

Attachments: FirebirdInvalidTransactionHandle.zip

Hi,

we migrated our project from version 2.6.5.1 to 7.1.1.0. After that we get this exception in a multithreaded environment with the use of thread abortion.

FirebirdSql.Data.FirebirdClient.FbException (0x80004005): invalid transaction handle (expecting explicit transaction start) ---> invalid transaction handle (expecting explicit transaction start) bei FirebirdSql.Data.FirebirdClient.FbTransaction.Dispose(Boolean disposing) bei System.Data.Common.DbTransaction.Dispose() bei FirebirdSql.Data.FirebirdClient.FbCommand.RollbackImplicitTransaction() bei FirebirdSql.Data.FirebirdClient.FbCommand.CommitImplicitTransaction() bei FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteScalar()

It seems that the unfinished implicit transaction is carried to the next connection through connection pooling. A sample project is attached. The remaining connection in the thread pool is unusable then.

firebird-automations avatar Oct 22 '19 16:10 firebird-automations

Commented by: Christian Mayer (byzo_mc)

Example project

firebird-automations avatar Oct 22 '19 16:10 firebird-automations

Modified by: Christian Mayer (byzo_mc)

Attachment: FirebirdInvalidTransactionHandle.zip [ 13392 ]

firebird-automations avatar Oct 22 '19 16:10 firebird-automations

Modified by: Christian Mayer (byzo_mc)

description: We get this exception in a multithreaded environment with the use of thread abortion.

FirebirdSql.Data.FirebirdClient.FbException (0x80004005): invalid transaction handle (expecting explicit transaction start) ---> invalid transaction handle (expecting explicit transaction start) bei FirebirdSql.Data.FirebirdClient.FbTransaction.Dispose(Boolean disposing) bei System.Data.Common.DbTransaction.Dispose() bei FirebirdSql.Data.FirebirdClient.FbCommand.RollbackImplicitTransaction() bei FirebirdSql.Data.FirebirdClient.FbCommand.CommitImplicitTransaction() bei FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteScalar()

It seems that the unfinished implicit transaction is carried to the next connection through connection pooling. The remaining connection in the thread pool is unusable then.

=>

Hi,

we migrated our project from version 2.6.5.1 to 7.1.1.0. After that we get this exception in a multithreaded environment with the use of thread abortion.

FirebirdSql.Data.FirebirdClient.FbException (0x80004005): invalid transaction handle (expecting explicit transaction start) ---> invalid transaction handle (expecting explicit transaction start) bei FirebirdSql.Data.FirebirdClient.FbTransaction.Dispose(Boolean disposing) bei System.Data.Common.DbTransaction.Dispose() bei FirebirdSql.Data.FirebirdClient.FbCommand.RollbackImplicitTransaction() bei FirebirdSql.Data.FirebirdClient.FbCommand.CommitImplicitTransaction() bei FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteScalar()

It seems that the unfinished implicit transaction is carried to the next connection through connection pooling. A sample project is attached. The remaining connection in the thread pool is unusable then.

firebird-automations avatar Oct 22 '19 16:10 firebird-automations