[Mono-bugs] [Bug 353491] New: Calling an explicitly implemented interface method on remoted object causes RemotingException in client

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Fri Jan 11 20:43:11 EST 2008


https://bugzilla.novell.com/show_bug.cgi?id=353491


           Summary: Calling an explicitly implemented interface method on
                    remoted object causes RemotingException in client
           Product: Mono: Runtime
           Version: 1.2.5
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: remoting
        AssignedTo: lluis at novell.com
        ReportedBy: rcook at opiumtrail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: Development


Created an attachment (id=190320)
 --> (https://bugzilla.novell.com/attachment.cgi?id=190320)
Repro

There is a problem when calling explicitly implemented interface methods
through remoting. For example we have an interface IRemoteObject shared between
the server and client. The server registers a typed implementing this interface
explicitly. When the client attempts to call any methods on this interface, the
client throws the following exception:

Unhandled Exception: System.Runtime.Remoting.RemotingException: Tcp transport
error.

Server stack trace: 
  at System.Runtime.Remoting.Channels.Tcp.TcpMessageIO.ReceiveMessageStatus
(System.IO.Stream networkStream, System.Byte[] buffer) [0x00000] 
  at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage
(IMessage msg, ITransportHeaders requestHeaders, System.IO.Stream
requestStream, ITransportHeaders& responseHeaders, System.IO.Stream&
responseStream) [0x00000] 
  at
System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage
(IMessage msg) [0x00000] 

Exception rethrown at [0]: 
 ---> System.Runtime.Remoting.RemotingException: Connection closed
  at System.Runtime.Remoting.Channels.Tcp.TcpMessageIO.StreamRead
(System.IO.Stream networkStream, System.Byte[] buffer, Int32 count) [0x00000] 
  at System.Runtime.Remoting.Channels.Tcp.TcpMessageIO.ReceiveMessageStatus
(System.IO.Stream networkStream, System.Byte[] buffer) [0x00000] --- End of
inner exception stack trace ---

  at System.Runtime.Remoting.Channels.Tcp.TcpMessageIO.ReceiveMessageStatus
(System.IO.Stream networkStream, System.Byte[] buffer) [0x00000] 
  at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage
(IMessage msg, ITransportHeaders requestHeaders, System.IO.Stream
requestStream, ITransportHeaders& responseHeaders, System.IO.Stream&
responseStream) [0x00000] 
  at
System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage
(IMessage msg) [0x00000] 

and the server does not receive the method call.

Implementing the method implicitly does not cause the same problem.

I have attached a example application demonstrating working and broken
behaviours. Running the same code under Windows and the Microsoft CLR this does
not happen and the method call executes without error in both cases.


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list