[Mono-list] Seemingly impossible null reference exception running managed code with embedded Mono on Linux

Jean-Michel.Perraud at csiro.au Jean-Michel.Perraud at csiro.au
Tue Mar 12 02:27:44 UTC 2013


I am baffled by a couple of bugs I noticed running Mono (embedded in R) on a Linux box.

* Issues occur on a Debian64. Occurs with Mono 2.10.8 as well as when running on a recompiled mono using the 3.0.5 tag. 
* Annoyingly, the issue disappears if I try to diagnose by attaching to the MonoDevelop soft debugger
* No issues running the same (c/c#) code with Mono 3.0.x on Windows.

I'd appreciate guru's insights/suggestions for methods to nail this fickle bug, which is a serious blocker for my purposes.

fuller repro information is at : http://r2clr.codeplex.com/workitem/47
Scenario: R ==> Embedded Mono / c code ==> C# glue code

The call from the R interpreter:
fails if called a third time in succession. There is no side effect that could explain why.
Subsequent calls will all succeed. 

Key lines of code, where types == null seems *completely* impossible.
    Type[] types = getTypes(arguments); // Array.ConvertAll(arguments, (x => (x == null ? typeof(object) : x.GetType())))
    var method = classType.GetMethod(methodName, bindingFlags, null, types, null);

Exception thrown in the method invocation
Argument cannot be null.
Parameter name: types
  at System.Type.GetMethod (System.String name, BindingFlags bindingAttr, System.Reflection.Binder binder, CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) [0x00000] in <filename unknown>:0 

More information about the Mono-list mailing list