https://bugzilla.novell.com/show_bug.cgi?id=654322
https://bugzilla.novell.com/show_bug.cgi?id=654322#c0 Summary: Crash when throwing too many exception Classification: Mono Product: Mono: Runtime Version: 2.8.x Platform: All OS/Version: All Status: NEW Severity: Critical Priority: P5 - None Component: GC AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: Customer Blocker: --- Created an attachment (id=400845) --> (http://bugzilla.novell.com/attachment.cgi?id=400845) Exception crash Description of Problem: When too many exceptions are thrown, the mono process die with a StackOverflowException or a native stacktrace. When adding a GC.Collect() in the catch part of the attached file, the process survives much longer (~20 minutes) but crash in GC.Collect internal implementation. When adding a counter and displaying it using a format string, the process die during an allocation in the GC (object.__icall_wrapper_mono_array_new_specific) Steps to reproduce the problem: 1. Compile and run the attached file 2. Add GC.Collect() in the catch part and run it for ~20 minutes or 2b. Add a counter and a Console.Write with a format string. Actual Results: -- No modifications : Stack overflow in unmanaged: IP: 0x82222fe, fault addr: 0xbf7f1088 Stack overflow in unmanaged: IP: 0x8225ee8, fault addr: 0xbf7f0fec Unhandled Exception: System.StackOverflowException: The requested operation caused a stack overflow. at (wrapper managed-to-native) object:__icall_wrapper_mono_thread_get_undeniable_exception () at Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 OR Stacktrace: Native stacktrace: mono [0x80da264] mono [0x811a34b] /lib/libpthread.so.0 [0xb76d3930] mono [0x8221290] mono [0x8215c4b] mono [0x8215869] mono [0x8216770] mono [0x82169c6] mono [0x8233ce0] mono [0x821d8a8] mono [0x8224d60] mono(mono_object_new_alloc_specific+0x28) [0x81cea88] mono(mono_object_new_specific+0x80) [0x81cf230] mono(mono_exception_from_token+0x2c) [0x81b915c] mono [0x80a87ca] [0xb54d0ceb] [0xb54d0d8c] mono [0x8062dc8] mono(mono_runtime_invoke+0x40) [0x81cf090] mono(mono_runtime_exec_main+0xd6) [0x81d2366] mono(mono_main+0x1b6c) [0x80b66dc] mono [0x8059328] /lib/libc.so.6(__libc_start_main+0xe5) [0xb759e455] mono [0x80590d1] Debug info from gdb: ================================================================= 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. ================================================================= Aborted -- With counter : Stacktrace: at (wrapper managed-to-native) object.__icall_wrapper_mono_array_new_specific (intptr,int) <0x00003> at (wrapper managed-to-native) object.__icall_wrapper_mono_array_new_specific (intptr,int) <0x00003> at string.Format (string,object) <0x00023> at System.IO.TextWriter.Write (string,object) <0x00020> at System.IO.SynchronizedWriter.Write (string,object) <0x0003c> at System.Console.Write (string,object) <0x00031> at Program.Main (string[]) <0x00061> at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <0x00073> Native stacktrace: mono [0x80da264] mono [0x811a34b] /lib/libpthread.so.0 [0xb7769930] mono [0x8216c54] mono [0x8216c54] mono [0x8216c54] mono [0x8216c54] mono [0x8216c54] mono [0x8216c54] mono [0x8216c54] mono [0x8216c54] mono [0x8216c54] mono [0x8216cc2] mono [0x821d89a] mono [0x8224b59] mono(mono_array_new_specific+0xea) [0x81d572a] [0xb5567130] /opt/mono-2.8/lib/mono/4.0/mscorlib.dll.so [0xb566b094] /opt/mono-2.8/lib/mono/4.0/mscorlib.dll.so [0xb56e85a1] /opt/mono-2.8/lib/mono/4.0/mscorlib.dll.so [0xb56e933d] /opt/mono-2.8/lib/mono/4.0/mscorlib.dll.so [0xb561dca2] [0xb5566d4a] [0xb5566e1c] mono [0x8062dc8] mono(mono_runtime_invoke+0x40) [0x81cf090] mono(mono_runtime_exec_main+0xd6) [0x81d2366] mono(mono_main+0x1b6c) [0x80b66dc] mono [0x8059328] /lib/libc.so.6(__libc_start_main+0xe5) [0xb7634455] mono [0x80590d1] Debug info from gdb: ================================================================= 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. ================================================================= Aborted Expected Results: Running the same process using Microsoft.Net under Windows 7 x64 worked during 3 hours without using memory (~3MB) How often does this happen? Everytime Additional Information: Tested with mono-2.8 and compiler mcs, gmcs and dmcs. Tested on Windows 7 x64 without option and --gc=sgen --llvm Tested on Debian x86 without option and --gc=sgen --llvm -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
