[Mono-bugs] [Bug 79438][Maj] New - Exceptions on many Windows Forms apps

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Tue Sep 19 06:15:05 EDT 2006


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by jordimash at gmail.com.

http://bugzilla.ximian.com/show_bug.cgi?id=79438

--- shadow/79438	2006-09-19 06:15:05.000000000 -0400
+++ shadow/79438.tmp.3190	2006-09-19 06:15:05.000000000 -0400
@@ -0,0 +1,53 @@
+Bug#: 79438
+Product: Mono: Class Libraries
+Version: 1.0
+OS: Windows XP (Cygwin)
+OS Details: 
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Major
+Component: Sys.Drawing.
+AssignedTo: peter at novonyx.com                            
+ReportedBy: jordimash at gmail.com               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Exceptions on many Windows Forms apps
+
+Hi folks,
+
+On Mono on Win32, when finishing a Windows Forms apps I get:
+
+;----------------------------------------------------------------------
+
+=================================================================
+Got a SIGSEGV while executing native code. This usually indicates
+a fatal error in the mono runtime or one of the native libraries
+used by your application.
+=================================================================
+
+Stacktrace:
+
+ at (wrapper managed-to-native) System.Drawing.GDIPlus.GdipDisposeImage
+(intptr) <0x00004>
+ at (wrapper managed-to-native) System.Drawing.GDIPlus.GdipDisposeImage
+(intptr) <0xffffffff>
+  at System.Drawing.Image.Dispose (bool) <0x00109>
+  at System.Drawing.Image.Finalize () <0x00010>
+  at (wrapper runtime-invoke) System.Object.runtime_invoke_void
+(object,intptr,intptr,intptr) <0xffffffff>
+
+This application has requested the Runtime to terminate it in an unusual way.
+Please contact the application's support team for more information.
+;----------------------------------------------------------------------
+
+The problem is that we call DisposeImage and other resource destroy GDI API
+calls AFTER the beast has been shutdown.
+
+Our code at GDIPlus.ProcessExit calls WaitForPendingFinalizers but this
+only waits for the current thread, not the Windows Forms app one for example.
+
+To avoid this, my suggestion is to check if GDI+ has been shutdown before
+calling any release resource function, that are called from the destructors.


More information about the mono-bugs mailing list