Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Commit on .NET Data provider throws NullReferenceException. [DNET689] #641

Closed
firebird-automations opened this issue Aug 9, 2016 · 10 comments

Comments

@firebird-automations
Copy link

Submitted by: Christian B (buc)

Is related to DNET476
Is related to DNET698

Sometimes following error occurs, when we try to executing a procedure on database like this: db.Database.ExecuteSqlCommand("execute procedure...")

An error was reported while committing a database transaction but it could not be determined whether the transaction succeeded or failed on the database server. See the inner exception and http://go.microsoft.com/fwlink/?LinkId=313468 for more information. System.Data.Entity.Infrastructure.CommitFailedException CommitFailedException System.Data.Entity.Infrastructure.CommitFailedException: An error was reported while committing a database transaction but it could not be determined whether the transaction succeeded or failed on the database server. See the inner exception and http://go.microsoft.com/fwlink/?LinkId=313468 for more information. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at FirebirdSql.Data.Client.Managed.Version10.GdsTransaction.Commit() in C:\Users\Jiri\Documents\devel\NETProvider\working\NETProvider\src\FirebirdSql.Data.FirebirdClient\Client\Managed\Version10\GdsTransaction.cs:line 172
at FirebirdSql.Data.FirebirdClient.FbTransaction.Commit() in C:\Users\Jiri\Documents\devel\NETProvider\working\NETProvider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbTransaction.cs:line 142
at System.Data.Entity.Infrastructure.Interception.DbTransactionDispatcher.<Commit>b__c(DbTransaction t, DbTransactionInterceptionContext c)
at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext](TTarget target, Action`2 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
--- End of inner exception stack trace ---
at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext](TTarget target, Action`2 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
at System.Data.Entity.Infrastructure.Interception.DbTransactionDispatcher.Commit(DbTransaction transaction, DbInterceptionContext interceptionContext)
at System.Data.Entity.Core.EntityClient.EntityTransaction.Commit()
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
at System.Data.Entity.Core.Objects.ObjectContext.<>c__DisplayClass59.<ExecuteStoreCommand>b__57()
at System.Data.Entity.Infrastructure.DefaultExecutionStrategy.Execute[TResult](Func`1 operation)
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreCommand(TransactionalBehavior transactionalBehavior, String commandText, Object[] parameters)
at System.Data.Entity.Internal.InternalContext.ExecuteSqlCommand(TransactionalBehavior transactionalBehavior, String sql, Object[] parameters)
at System.Data.Entity.Database.ExecuteSqlCommand(TransactionalBehavior transactionalBehavior, String sql, Object[] parameters)
at System.Data.Entity.Database.ExecuteSqlCommand(String sql, Object[] parameters)
System.Action`3[TInterceptor,TTarget,TInterceptionContext], System.Action`3[TInterceptor,TTarget,TInterceptionContext]) at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext](TTarget target, Action`2 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
at System.Data.Entity.Infrastructure.Interception.DbTransactionDispatcher.Commit(DbTransaction transaction, DbInterceptionContext interceptionContext)
at System.Data.Entity.Core.EntityClient.EntityTransaction.Commit()
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
at System.Data.Entity.Core.Objects.ObjectContext.<>c__DisplayClass59.<ExecuteStoreCommand>b__57()
at System.Data.Entity.Infrastructure.DefaultExecutionStrategy.Execute[TResult](Func`1 operation)
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreCommand(TransactionalBehavior transactionalBehavior, String commandText, Object[] parameters)
at System.Data.Entity.Internal.InternalContext.ExecuteSqlCommand(TransactionalBehavior transactionalBehavior, String sql, Object[] parameters)
at System.Data.Entity.Database.ExecuteSqlCommand(TransactionalBehavior transactionalBehavior, String sql, Object[] parameters)
at System.Data.Entity.Database.ExecuteSqlCommand(String sql, Object[] parameters)
NullReferenceException Object reference not set to an instance of an object. Void Commit()

@firebird-automations
Copy link
Author

Modified by: @cincuranet

Link: This issue is related to DNET476 [ DNET476 ]

@firebird-automations
Copy link
Author

Commented by: @cincuranet

Can you replicate it? I.e. under pressure. Or like running the code 10000 times? It should be fixed in 5.0.0 so it might be good to check that version.

@firebird-automations
Copy link
Author

Modified by: @cincuranet

status: Open [ 1 ] => In Progress [ 3 ]

@firebird-automations
Copy link
Author

Commented by: Christian B (buc)

I was not able to replicate it. It happens not very often, but i think it does not depend on pressure. I will test with new provider 5.0.5.0...

@firebird-automations
Copy link
Author

Modified by: @cincuranet

Link: This issue is related to DNET698 [ DNET698 ]

@firebird-automations
Copy link
Author

Commented by: @cincuranet

It's probably race condition with finalizer somewhere - DNET698.

@firebird-automations
Copy link
Author

Commented by: Christian B (buc)

I tested version 5.1.1.0 for a few weeks, bug seems to be fixed in this version.

@firebird-automations
Copy link
Author

Commented by: @cincuranet

That's good to hear. But I think it's just a coincidence. I planning to do the DNET698 soon, so that will hopefully fix it forever.

@firebird-automations
Copy link
Author

Modified by: @cincuranet

status: In Progress [ 3 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

Fix Version: vNext - Finalizers [ 10807 ]

@firebird-automations
Copy link
Author

Modified by: @cincuranet

Fix Version: vNext [ 10804 ]

Fix Version: vNext - Finalizers [ 10807 ] =>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants