What's up with SQL Transaction ZombieCheck?


#1

I received this stack trace from a live system. Notice the stack is entirely in library code. I have no idea if it affected the user but it seems like it did since I was given a URL of the page the user was on in the email. Is this a bug in EWL?

System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.ApplicationException: An exception occurred while committing a transaction for the primary database. ---> System.InvalidOperationException: This SqlTransaction has completed; it is no longer usable. 
at System.Data.SqlClient.SqlTransaction.ZombieCheck() 
at System.Data.SqlClient.SqlTransaction.Commit() 
at RedStapler.StandardLibrary.DataAccess.DBConnection.CommitTransaction() in d:\Red Stapler\Revision Control\EwlSam\Standard Library\DataAccess\DBConnection.cs:line 307 
--- End of inner exception stack trace --- 
at RedStapler.StandardLibrary.StandardLibraryMethods.CallEveryMethod(Action[] methods) in d:\Red Stapler\Revision Control\EwlSam\Standard Library\StandardLibraryMethods.cs:line 220 
at RedStapler.StandardLibrary.EnterpriseWebFramework.AppRequestState.cleanUpDatabaseConnectionsAndExecuteNonTransactionalModificationMethods(Boolean skipNonTransactionalModificationMethods) in d:\Red Stapler\Revision Control\EwlSam\Standard Library\EnterpriseWebFramework\AppRequestState.cs:line 242 
at RedStapler.StandardLibrary.EnterpriseWebFramework.EwfPage.OnPreRender(EventArgs eventArgs) in d:\Red Stapler\Revision Control\EwlSam\Standard Library\EnterpriseWebFramework\PageBase\EwfPage.cs:line 897 
at System.Web.UI.Control.PreRenderRecursiveInternal() 
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
at System.Web.UI.Page.HandleError(Exception e) 
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
at System.Web.UI.Page.ProcessRequest() 
at System.Web.UI.Page.ProcessRequest(HttpContext context) 
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

#2

I’ve seen this happen a couple of times but have not investigated it yet. If you figure it out @samrueby, let me know.


#3

I just got this again by opening a few pages at the same time.