[firebase-br] Bug .NET Data Acess

Marcos Weimer marcosweimer em gmail.com
Qui Set 29 10:27:59 -03 2016


Ola!

Eventualmente nosso aplicativo fecha, do nada, sem motivo aparente, as
vezes lança um CLR20R3 null exception, mas isso é beem eventual, tem 2 ou 3
clientes que acontece, de algumas centenas.

Então baixei o fonte da dll (FirebirdSql.Data.FirebirdClient, ativei o
diagnostic tools no visual studio e boa, deixei rodando, acontece que
agora, a primeira vez depois de dias, consegui encontrar um erro, e de
posso do fonte o visual studio me levou a linha do problema.

Recebo a exceção:
An unhandled exception of type 'System.NullReferenceException' occurred in
FrebirdSql.Data.FirebirdClient.dll

Neste momento, está parado no FbCommand.cs, no método
RollbackImplicitTransaction()

Tem uma linha não tratada:

int transactionCount = Connection.InnerConnection.Database.TransactionCount;

Connection = ok
InnerConnection = null

Usamos eventos e threads, o erro é eventual, não encontrei uma maneira de
simular para postar no tracker (além do péssimo ingles).

Vendo o código fonte, pensei em apenas mudar para dentro do try, mas não
acredito que seja a melhor solução (ou se realmente é a solução, já que não
consegui compilar a dll para testar se resolve).

Segue Trace:
Activated    Event    Time    Duration    Thread
    <TraceRecord xmlns="
http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord"
Severity="Critical"><TraceIdentifier>
http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled</TraceIdentifier><Description>Exceção
não
tratada</Description><AppDomain>UltraNFe.vshost.exe</AppDomain><Exception><ExceptionType>System.NullReferenceException,
mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089</ExceptionType><Message>Referência de
objeto não definida para uma instância de um
objeto.</Message><StackTrace>   em
FirebirdSql.Data.FirebirdClient.FbCommand.RollbackImplicitTransaction() na
C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:linha
768
   em FirebirdSql.Data.FirebirdClient.FbCommand.Release() na
C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:linha
806
   em FirebirdSql.Data.FirebirdClient.FbCommand.Dispose(Boolean disposing)
na
C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:linha
372
   em
System.ComponentModel.Component.Finalize()</StackTrace><ExceptionString>System.NullReferenceException:
Referência de objeto não definida para uma instância de um objeto.
   em
FirebirdSql.Data.FirebirdClient.FbCommand.RollbackImplicitTransaction() na
C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:linha
768
   em FirebirdSql.Data.FirebirdClient.FbCommand.Release() na
C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:linha
806
   em FirebirdSql.Data.FirebirdClient.FbCommand.Dispose(Boolean disposing)
na
C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:linha
372
   em
System.ComponentModel.Component.Finalize()</ExceptionString></Exception></TraceRecord>




-=Ma®©oS=-
Marcos R. Weimer
Delphi / C# / ASP.NET / PHP / WebServices / Firebird



Mais detalhes sobre a lista de discussão lista