https://bugzilla.novell.com/show_bug.cgi?id=463999
Summary: System.Transactions unit tests fail randomly
Product: Mono: Class Libraries
Version: SVN
Platform: Other
OS/Version: Other
Status: NEW
Severity: Normal
Priority: P5 - None
Component: System
AssignedTo: [email protected]
ReportedBy: [email protected]
QAContact: [email protected]
Found By: ---
The unit tests for System.Transactions fail randomly:
1) MonoTests.System.Transactions.AsyncTest.AsyncFail3 : Expected
TransactionAbortedException, got System.Runtime.Remoting.RemotingException
at MonoTests.System.Transactions.AsyncTest.AsyncFail3 () [0x00099] in
/raid/home/zovarga/mono-svn/mcs/class/System.Transactions/Test/AsyncTest.cs:117
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke
(object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags
invokeAttr, System.Reflection.Binder binder, System.Object[] parameters,
System.Globalization.CultureInfo culture) [0x00057] in
/raid/home/zovarga/mono-svn/mcs/class/corlib/System.Reflection/MonoMethod.cs:159
It is easier to repro this by running mono with MONO_NO_SMP=1
The underlying exception is this:
System.Runtime.Remoting.RemotingException: The async result object is null or
of an unexpected type.
at (wrapper managed-to-native)
object:__icall_wrapper_mono_delegate_end_invoke (object,intptr)
at (wrapper delegate-end-invoke)
System.Transactions.Transaction/AsyncCommit:end_invoke_void__this___IAsyncResult
(System.IAsyncResult)
at System.Transactions.Transaction.EndCommitInternal (IAsyncResult ar)
[0x00000] in
/raid/home/zovarga/mono-svn/mcs/class/System.Transactions/System.Transactions/Transaction.cs:282
at System.Transactions.CommittableTransaction.EndCommit (IAsyncResult ar)
[0x00017] in
/raid/home/zovarga/mono-svn/mcs/class/System.Transactions/System.Transactions/CommittableTransaction.cs:64
at MonoTests.System.Transactions.AsyncTest.CommitCallback (IAsyncResult ar)
[0x0001e] in
/raid/home/zovarga/mono-svn/mcs/class/System.Transactions/Test/AsyncTest.cs:86
The cause seems to be this line in CommitableTransaction.cs:
asyncResult = BeginCommitInternal (cb);
and this in EndCommit ():
EndCommitInternal (asyncResult);
basically, BeginCommitInterval will invoke a delegate asynchronously, and
the delegate calls EndCommit (), which will pass asyncResult to
EndCommitInternal (), but asyncResult is not yet set since BeginCommitInterval
() might not have returned yet.
--
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