[Mono-bugs] [Bug 41450][Nor] New - System.Runtime.Remoting Bug

bugzilla-daemon@rocky.ximian.com bugzilla-daemon@rocky.ximian.com
Wed, 16 Apr 2003 12:32:00 -0400 (EDT)


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by yoros@wanadoo.es.

http://bugzilla.ximian.com/show_bug.cgi?id=41450

--- shadow/41450	Wed Apr 16 12:32:00 2003
+++ shadow/41450.tmp.8176	Wed Apr 16 12:32:00 2003
@@ -0,0 +1,89 @@
+Bug#: 41450
+Product: Mono/Class Libraries
+Version: unspecified
+OS: 
+OS Details: 
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Normal
+Component: CORLIB
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: yoros@wanadoo.es               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: System.Runtime.Remoting Bug
+
+I've done an example program for Remoting (based in other two ones posted
+in mono-list). This program crashes a time after it is started. This
+message is writed out in the terminal:
+
+Unhandled Exception: System.NullReferenceException: A null value was found
+where an object instance was required
+in <0x00177> 00 .Runner:Start ()
+in <0x0005b> 01 System.MulticastDelegate:invoke_void ()
+
+The program desn't crash but now the server doesn't work (before that
+message, it worked right). I think that it is due to the finalization of
+the listening thread.
+
+I have seen that XSP shows the same message but it still works after that.
+
+In my remoting program, after looking at the trace output, I can see that
+it crashes because is called
+"System.Runtime.Remoting.Lifetime.LeaseManager:StopManager" method by
+"System.Runtime.Remoting.Lifetime.LeaseManager:ManageLeases". I don't know
+why it is stopping the manager, I think that it must be waiting "forever",
+but calling StopManager wouldn't crash the program.
+
+I saw the trace output of XSP server and I saw that it is affected by the
+bug because AppDomain.CreateDomain uses RemotingServices and XSP calls that
+method.
+
+My system is:
+- CVS version (15-04-2003) of MONO, MINI, MCS, libgc, etc...
+- Debian GNU/Linux Sid
+- Kernel 2.4.19-xfs
+- glibc 2.3.1-16
+- glib 2.2.1-3
+
+                                                                          
+     Here I send my Remoting example if anyone wants to see the error
+message. For compiling that file you must write:
+    
+    mcs -o Server.exe Server.cs -r System.Runtime.Remoting
+
+(if anybody wants me to send the Client.cs, mail me)
+                                                                          
+     For reproducing the bug it's only needed the server. After compiling,
+execute the server (MONO or MINI) and wait a few minutes. It shows the
+exception message and waits.
+
+The Server.cs code is:
+---------------8<---------------
+using System;
+using System.Runtime.Remoting;
+using System.Runtime.Remoting.Channels;
+using System.Runtime.Remoting.Channels.Tcp;
+
+public class ServerClass {
+
+    public static void Main (string[] args) {
+        Console.WriteLine("Before TcpChannel.");
+        TcpChannel ch = new TcpChannel(4321);
+        Console.WriteLine("Before Register the Channel.");
+        ChannelServices.RegisterChannel(ch);
+        Uri u = new Uri("http://www.example.com", false);
+        Console.WriteLine("Before Marshaling.");
+        RemotingServices.Marshal(u, "URI");
+        Console.WriteLine("After Marshaling, waiting...");
+        Console.ReadLine();
+        ch.StopListening (null);
+    }
+
+}
+---------------8<---------------
+
+That's all now.