Issue Details (XML | Word | Printable)

Key: DNET-844
Type: Bug Bug
Status: Closed Closed
Resolution: Incomplete
Priority: Critical Critical
Assignee: Jiri Cincura
Reporter: Christian B
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
.NET Data provider

NullReferenceException on Version10.GdsDatabase.BeginTransaction(TransactionParameterBuffer tpb)

Created: 22/Aug/18 10:16 AM   Updated: 08/Oct/18 09:30 AM
Component/s: ADO.NET Provider
Affects Version/s: 5.12.1.0
Fix Version/s: None

Environment:
WindowsServer 2012R2
Firebird-Server Version 2.5.4
EntityFramework Version 6.1.3
EntityFramework.Firebird Version 5.12.1.0
Provider Version 5.12.1.0
Provider Version 5.12.1.0


 Description  « Hide
It happens every few days, that we get NullReferenceException in our web-service. This happens on select and also on update (save changes). We can now only "fix" it, when we restart the web-service (pool).

Callstack - Select: It happens on ToList(), First(), FirstOrDefault()

System.NullReferenceException Void BeginTransaction(FirebirdSql.Data.Common.TransactionParameterBuffer) bei FirebirdSql.Data.Client.Managed.Version10.GdsTransaction.BeginTransaction(TransactionParameterBuffer tpb)
   bei FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.BeginTransaction(TransactionParameterBuffer tpb)
   bei FirebirdSql.Data.FirebirdClient.FbTransaction.BeginTransaction()
   bei FirebirdSql.Data.FirebirdClient.FbCommand.Prepare(Boolean returnsSet)
   bei FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteCommand(CommandBehavior behavior, Boolean returnsSet)
   bei FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteReader(CommandBehavior behavior)
   bei System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
   bei System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand command, DbCommandInterceptionContext interceptionContext)
   bei System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
   bei System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
   bei System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
   bei System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__5()
   bei System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
   bei System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0()
   bei System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
   bei System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   bei System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
  
Callstack - Update:
   
System.NullReferenceException Void BeginTransaction(FirebirdSql.Data.Common.TransactionParameterBuffer) bei FirebirdSql.Data.Client.Managed.Version10.GdsTransaction.BeginTransaction(TransactionParameterBuffer tpb)
   bei FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.BeginTransaction(TransactionParameterBuffer tpb)
   bei FirebirdSql.Data.FirebirdClient.FbTransaction.BeginTransaction()
   bei FirebirdSql.Data.FirebirdClient.FbConnectionInternal.BeginTransaction(IsolationLevel level, String transactionName)
   bei FirebirdSql.Data.FirebirdClient.FbConnection.BeginDbTransaction(IsolationLevel isolationLevel)
   bei System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
   bei System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.BeginTransaction(DbConnection connection, BeginTransactionInterceptionContext interceptionContext)
   bei System.Data.Entity.Core.EntityClient.EntityConnection.BeginDbTransaction(IsolationLevel isolationLevel)
   bei System.Data.Entity.Core.EntityClient.EntityConnection.BeginTransaction()
   bei System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
   bei System.Data.Entity.Core.Objects.ObjectContext.SaveChangesToStore(SaveOptions options, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction)
   bei System.Data.Entity.Core.Objects.ObjectContext.SaveChangesInternal(SaveOptions options, Boolean executeInExistingTransaction)
   bei System.Data.Entity.Internal.InternalContext.SaveChanges()
   bei BetAdmin.Data.BetAdminContext.SaveChanges()

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Jiri Cincura added a comment - 23/Aug/18 07:29 AM
1. Can you create reproducible test-case (even if it takes couple of runs to trigger the issue)?
2. Can you try with latest provider?

Christian B added a comment - 23/Aug/18 08:01 AM
1. I can not replicate, i have no idea in which case i happens...
2. I will try, but this will take some time.

Reinhard Gunacker added a comment - 03/Oct/18 03:04 PM
We have the same Problem, from time to time we get this Exception. Once it happens it will happen again on the same command until the application is restarted.
Happens on starting a new Transaction:
con.BeginTransaction()

I tried but can't reproduce it reliably so far.

Not using Entity Framework
Provider: 6.1.0.0

System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
   bei FirebirdSql.Data.Client.Managed.Version10.GdsTransaction.BeginTransaction(TransactionParameterBuffer tpb)
   bei FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.BeginTransaction(TransactionParameterBuffer tpb)
   bei FirebirdSql.Data.FirebirdClient.FbTransaction.BeginTransaction()
   bei FirebirdSql.Data.FirebirdClient.FbConnectionInternal.BeginTransaction(IsolationLevel level, String transactionName)
   bei FirebirdSql.Data.FirebirdClient.FbConnection.BeginDbTransaction(IsolationLevel isolationLevel)
   bei System.Data.Common.DbConnection.BeginTransaction()

Jiri Cincura added a comment - 08/Oct/18 09:30 AM
I don't have anything to hold onto. If somebody has a memory dump, reproducible test case, etc. I'll reopen.