http://bugzilla.novell.com/show_bug.cgi?id=324361
User [email protected] added comment http://bugzilla.novell.com/show_bug.cgi?id=324361#c4 Jambunathan Kalyanasundaram <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 - Medium |P4 - Low CC| |[email protected] | |m Platform|Other |i686 Version|1.2 |2.4.x Severity|Enhancement |Normal --- Comment #4 from Jambunathan Kalyanasundaram <[email protected]> 2009-05-12 10:05:00 MDT --- I am using a hand-compiled mono-2.4 on ubuntu/i686. // file: Recurse.cs using System; class T { public static void Recurse () { Recurse (); } public static void Main () { Recurse (); } } $ mcs Recurse.cs $ mono Recurse.exe Stack overflow in unmanaged: IP: 0xb7dde5b9, fault addr: 0xbf692fd4 Stack overflow in unmanaged: IP: 0xb7e098dc, fault addr: 0xbf692fdc Stack overflow in unmanaged: IP: 0xb7dde573, fault addr: 0xbf692f38 Stack overflow in unmanaged: IP: 0xb7f1144c, fault addr: 0xbf692ffc Stack overflow in unmanaged: IP: 0x81d7f10, fault addr: 0xbf691e88 Stack overflow in unmanaged: IP: 0x8107509, fault addr: 0xbf692ffc Stack overflow in unmanaged: IP: 0x8073bc8, fault addr: 0xbf692e9c Stack overflow in unmanaged: IP: 0xb7dde573, fault addr: 0xbf692b68 Stack overflow in unmanaged: IP: 0x80e15ed, fault addr: 0xbf692ff0 Stack overflow in unmanaged: IP: 0x8107509, fault addr: 0xbf692ffc Stack overflow in unmanaged: IP: 0x813b112, fault addr: 0xbf692ffc Stack overflow in unmanaged: IP: 0xb7f1144c, fault addr: 0xbf692fdc Stack overflow in unmanaged: IP: 0xb7f1144c, fault addr: 0xbf692fdc Stack overflow in unmanaged: IP: 0xb7dde573, fault addr: 0xbf692b98 Stack overflow in unmanaged: IP: 0x81a4515, fault addr: 0xbf692ffc Stack overflow in unmanaged: IP: 0xb7f1144c, fault addr: 0xbf692fec Stack overflow in unmanaged: IP: 0x81074fc, fault addr: 0xbf692fec Stack overflow in unmanaged: IP: 0xb7f1144c, fault addr: 0xbf692fdc Stack overflow in unmanaged: IP: 0xb7e098dc, fault addr: 0xbf692fa8 Stack overflow in unmanaged: IP: 0xb7f73d72, fault addr: 0xbf692fdc Stack overflow in unmanaged: IP: 0xb7f1144c, fault addr: 0xbf692ffc Stack overflow in unmanaged: IP: 0x8073bc8, fault addr: 0xbf692f4c Stack overflow in unmanaged: IP: 0x8073bc8, fault addr: 0xbf692e9c Stack overflow in unmanaged: IP: 0x8073bc8, fault addr: 0xbf692e9c Stack overflow in unmanaged: IP: 0x8073bc8, fault addr: 0xbf692eac Stack overflow in unmanaged: IP: 0x8073bc8, fault addr: 0xbf692e5c Stack overflow in unmanaged: IP: 0x8073bc8, fault addr: 0xbf692eac Stack overflow in unmanaged: IP: 0x8073bc8, fault addr: 0xbf692eac Stack overflow in unmanaged: IP: 0x8073bc8, fault addr: 0xbf692eac Stack overflow in unmanaged: IP: 0xb7f1144c, fault addr: 0xbf692fcc Stack overflow in unmanaged: IP: 0xb7df7946, fault addr: 0xbf691ffc Stack overflow in unmanaged: IP: 0xb7f11445, fault addr: 0xbf692ffc Stack overflow in unmanaged: IP: 0xb7dcd7f1, fault addr: 0xbf692ff8 Stack overflow in unmanaged: IP: 0x810ba6b, fault addr: 0xbf692d3c Stack overflow in unmanaged: IP: 0x81074fc, fault addr: 0xbf692fdc Unhandled Exception: System.StackOverflowException: The requested operation caused a stack overflow. at (wrapper managed-to-native) System.MonoType:getFullName (bool,bool) at System.MonoType.ToString () [0x00000] at System.Exception.get_ClassName () [0x00000] at System.Exception.ToString () [0x00000] Observed Behaviour: StackOverflowException reported in System.Exception.ToString () code path. Required Behaviour: Report StackOverflowException in Main () 1.The first sigsegv -> altstack_handle_and_restore() -> mono_handle_exception () 2. mono_handle_exception () triggers another sigsegv (in the runtime code) 3. mono_handle_soft_stack_ovf () finds no jit info and assumes that the fault is in an unmanaged code called from within the managed code. Installs a restore_stack_protection_tramp 4. mono_handle_exception () proceeds ahead (after some more faults and relaxed protection) 5. No user-specified handlers are available. Execution proceeds along mono_unhandled_exception () -> mono_print_unhandled_exception () -> mono_runtime_invoke (Exception.ToString ()). 6. JIT compilation is triggered for Exception.ToString () and Exception.ToString () is invoked. This call sequence has some managed-to-native wrappers. 7. When one of the managed-to-native wrappers return, restore_stack_protection_tramp () kicks in from the method epilog and does a mono_raise_exception (StackOverflowException). Note that this Exception is triggered in the context of Invoke() -> Exception.ToString (). The stacktrace from the execution of the program clearly shows this unintended transference - Unhandled Exception: System.StackOverflowException: The requested operation caused a stack overflow. at (wrapper managed-to-native) System.MonoType:getFullName (bool,bool) at System.MonoType.ToString () [0x00000] at System.Exception.get_ClassName () [0x00000] at System.Exception.ToString () [0x00000] 8. The thread exits with above stack trace. Comments There are multiple assumptions that are broken in the above path which needs to be addressed. -- Configure bugmail: http://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
