Bug 7070 - Using reflection to invoke a generic method on remoted objects that do not implement an interface results in a slot assertion
Summary: Using reflection to invoke a generic method on remoted objects that do not im...
Status: CONFIRMED
Alias: None
Product: Runtime
Classification: Mono
Component: Remoting ()
Version: unspecified
Hardware: PC All
: Normal normal
Target Milestone: Future Cycle (TBD)
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2012-09-11 12:02 UTC by Smaz
Modified: 2017-07-13 00:05 UTC (History)
3 users (show)

Tags:
Is this bug a regression?: ---
Last known good build:


Attachments
Solution with Client and Server applications to reproduce this behavior (16.78 KB, application/x-gzip)
2012-09-11 12:02 UTC, Smaz
Details


Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report for Bug 7070 on GitHub or Developer Community if you have new information to add and do not yet see a matching new report.

If the latest results still closely match this report, you can use the original description:

  • Export the original title and description: GitHub Markdown or Developer Community HTML
  • Copy the title and description into the new report. Adjust them to be up-to-date if needed.
  • Add your new information.

In special cases on GitHub you might also want the comments: GitHub Markdown with public comments

Related Links:
Status:
CONFIRMED

Description Smaz 2012-09-11 12:02:18 UTC
Created attachment 2502 [details]
Solution with Client and Server applications to reproduce this behavior

This sample solution reproduces a problem when using reflection to invoke generic methods on remoted objects that do not implement an interface that defines the generic method. Executing the server and client applications results in a slot assertion failure from the Mono runtime. The generic method can be invoked using reflection successfully under both .NET 2.0 and 4.0 runtimes on Windows 7. When the remoted class implements an interface that defines the generic method, the slot assertion does not occur under Mono.

- This behavior can be reproduced under the following conditions:
                - Mono 2.10.8
                - Remoted instance of the class
                - Generic method on the class
                - Invoking the generic method using reflection
                - The class does not implement an interface that defines the generic method.

Included are output files from the client and server applications that display the behavior.

mono-windows-server-out.txt
mono-windows-client-out.txt - Remoted generic method invoked with reflection results in a slot assertion

mono-linux-server-out.txt
mono-linux-client-out.txt - Remoted generic method invoked with reflection results in a slot assertion

net-windows-server-out.txt - Remoted generic method output visible (expected output)
net-windows-client-out.txt - Remoted generic method invoked with reflection succeeds (expected output)

mono-windows-server-interface-out.txt - Class A implements interface IA. Remoted generic method output visible (expected output)
mono-windows-client-interface-out.txt - Class A implements interface IA. Remoted generic method invoked with reflection succeeds (expected output)

mono-linux-server-interface-out.txt - Class A implements interface IA. Remoted generic method output visible (expected output)
mono-linux-client-interface-out.txt - Class A implements interface IA. Remoted generic method invoked with reflection succeeds (expected output)

net-windows-server-interface-out.txt - Class A implements interface IA. 

net-windows-client-interface-out.txt - Class A implements interface IA. Remoted generic method invoked with reflection executes on the client side. This is a .NET bug.
Comment 1 Rodrigo Kumpera 2017-07-13 00:05:14 UTC
I can reproduce the issue with the latest mono.