[Mono-bugs] [Bug 667921] New: [Dynamic methods] Crash with multi-threaded linq
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Fri Jan 28 07:58:03 EST 2011
https://bugzilla.novell.com/show_bug.cgi?id=667921
https://bugzilla.novell.com/show_bug.cgi?id=667921#c0
Summary: [Dynamic methods] Crash with multi-threaded linq
Classification: Mono
Product: Mono: Runtime
Version: SVN
Platform: Other
OS/Version: Other
Status: NEW
Severity: Major
Priority: P5 - None
Component: misc
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: rkvinge at novell.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Blocker: ---
Created an attachment (id=410990)
--> (http://bugzilla.novell.com/attachment.cgi?id=410990)
test case
Compile the attached test case with dmcs and run.
It should print a list of SUCCESS #[0..19]/20 until it exits.
I do however get a pretty random behaviour, which includes:
SIGSEGV
SIGILL
SIGTRAP
SIGABRT
ExecutionEngineExceptions
NullReferenceExceptions
InvalidCastExceptions
IndexOutOfRangeExceptions
deadlocks
infinite recursions
and of course it does actually work correctly once in a while too.
Note that all those exceptions terminate the process, even if there is a
exception handler in the main method and all threads.
It seems to be because dynamic methods are freed too early, if I make
mono_reflection_destroy_dynamic_method in reflection.c a nop (return
immediately), the test case works correctly. It also works with GC_DONT_GC=1.
This test case only seems to crash with boehm, not sgen. However an earlier
(and a lot bigger) version of the test case usually caused an infinite loop in
sgen, so the bug is likely not limited to boehm.
--
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.
More information about the mono-bugs
mailing list