https://bugzilla.novell.com/show_bug.cgi?id=676368
https://bugzilla.novell.com/show_bug.cgi?id=676368#c0 Summary: Should not use ODBC statement handles after SQLDisconnect called Classification: Mono Product: Mono: Class Libraries Version: 2.8.x Platform: All OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: Sys.Data AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- Created an attachment (id=417126) --> (http://bugzilla.novell.com/attachment.cgi?id=417126) patch that addresses this bug User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13 SQLDisconnect() frees any statements allocated on that connection, so statement handles become invalid (even to free) after SQLDisconnect() is called. OdbcConnection keeps a list of OdbcCommands in order to destroy them before calling SQLDisconnect, but the list is of weak references (and for good reason), so once their own destruction commences, they no longer appear in this list. Due to the vagaries of thread scheduling it can happen that destruction of the OdbcCommand commences before SQLDisconnect() is called but SQLFreeStmt() is called after it. (Even worse, they could overlap.) The result is a crash. The attached patch works for me. Reproducible: Always -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
