Random bug in finalizing DbCommands
-----------------------------------

                 Key: DNET-582
                 URL: http://tracker.firebirdsql.org/browse/DNET-582
             Project: .NET Data provider
          Issue Type: Bug
          Components: ADO.NET Provider
    Affects Versions: 4.5.2.0
         Environment: Windows Server 2008 R2. firebird 2.5.3 x64 embedded
            Reporter: Hennadii
            Assignee: Jiri Cincura


Several times I've experienced randomly reproduced bug. It has some different 
symptoms: OOM, unhandled crash and so on.
But all this times I had the same stack:
000000001b56edb0 00000000773a186a [FaultingExceptionFrame: 000000001b56edb0] 
000000001b56f300 000007fe9a9920b0 
FirebirdSql.Data.FirebirdClient.FbCommand.Release() 
[*\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs @ 821]
000000001b56f340 000007fe9a9a47f5 
FirebirdSql.Data.FirebirdClient.FbCommand.Dispose(Boolean) 
[*\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs @ 384]
000000001b56f3a0 000007fef71cc8da System.ComponentModel.Component.Finalize()
000000001b56f798 000007fef9479d56 [DebuggerU2MCatchHandlerFrame: 
000000001b56f798] 

It is locally built library so I'll provide lines referred above:
FbCommand.cs @ 821
            if (this.connection != null && this.connection.State == 
ConnectionState.Open)
            {
                this.connection.InnerConnection.RemovePreparedCommand(this);
            }
FbCommand.cs @ 384
           try
                    {
                        // Release any unmanaged resources
                        this.Release();

I've added crutch to the FbCommand.Release method as in other places, just 
handle exception without any code. But I think it is not the best way to fix it.

                   try
                    {
                        // old code
                    }
                    catch // added
                    {
                    }
                    finally
                    {
                        base.Dispose(disposing);
                    }

Don't you think that catching swallowing exceptions in dispose methods is a bad 
way to handle errors?

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
Firebird-net-provider mailing list
Firebird-net-provider@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider

Reply via email to