Bug #232

avatar

Client throws unhandled exceptions upon network connection loss (Windows)

Added by Kalle Kaitala 5489 days ago. Updated 5441 days ago.

Status:Closed Start:11/10/2009
Priority:Normal Due date:
Assigned to:avatarMirco Bauer % Done:

100%

Category:Frontend GNOME
Target version:0.7
Complexity:

Found in Version:

Votes: 0

Description

The client throws the following unhandled exceptions upon network loss (tested by detaching network cable):

http://paste.debian.net/hidden/92b9dbbb/

And

http://paste.debian.net/hidden/d260c347/

System is Windows Vista Ultimate ENG SP1 32-bit, client is 0.6.4.1

Associated revisions

Revision d839da8edb4fb0cd43a8f3b258ee04512109c0bb
Added by Mirco Bauer 5441 days ago

Treat a SocketException like a RemotingException as MS .NET is not wrapping low level socket issues into a RemotingException. (closes: #232)

History

Updated by Mirco Bauer 5489 days ago

avatar

Please pastebin stack traces directly here using the pre tags, as pastebins have expire after some time (the debian one after 3 days)

Exception Type:
System.Net.Sockets.SocketException

Exception Message:
Etäpalvelin sulki aiemmin luodun yhteyden

Exception StackTrace:

Server stack trace: 

   kohteessa System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)

   kohteessa System.Runtime.Remoting.Channels.SocketStream.Read(Byte[] buffer, Int32 offset, Int32 size)

   kohteessa System.Runtime.Remoting.Channels.SocketHandler.ReadFromSocket(Byte[] buffer, Int32 offset, Int32 count)

   kohteessa System.Runtime.Remoting.Channels.SocketHandler.BufferMoreData()

   kohteessa System.Runtime.Remoting.Channels.SocketHandler.Read(Byte[] buffer, Int32 offset, Int32 count)

   kohteessa System.Runtime.Remoting.Channels.SocketHandler.ReadAndMatchFourBytes(Byte[] buffer)

   kohteessa System.Runtime.Remoting.Channels.Tcp.TcpSocketHandler.ReadVersionAndOperation(UInt16& operation)

   kohteessa System.Runtime.Remoting.Channels.Tcp.TcpClientSocketHandler.ReadHeaders()

   kohteessa System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream)

   kohteessa System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]: 

   kohteessa System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)

   kohteessa System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)

   kohteessa Smuxi.Engine.FrontendManager.get_IsAlive()

   kohteessa Smuxi.Frontend.Gnome.Frontend._CheckFrontendManagerStatus()
Exception Type:
System.Net.Sockets.SocketException

Exception Message:
Yhteyttä ei voi muodostaa, koska kohdekone ei salli sitä 127.0.0.1:7689

Exception StackTrace:

Server stack trace: 

   kohteessa System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)

   kohteessa System.Net.Sockets.Socket.Connect(EndPoint remoteEP)

   kohteessa System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSocket(EndPoint ipEndPoint)

   kohteessa System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSocket()

   kohteessa System.Runtime.Remoting.Channels.SocketCache.GetSocket(String machinePortAndSid, Boolean openNew)

   kohteessa System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.SendRequestWithRetry(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream)

   kohteessa System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream)

   kohteessa System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]: 

   kohteessa System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)

   kohteessa System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)

   kohteessa Smuxi.Engine.FrontendManager.set_IsFrontendDisconnecting(Boolean value)

   kohteessa Smuxi.Frontend.Gnome.Frontend.DisconnectEngineFromGUI()

   kohteessa Smuxi.Frontend.Gnome.Frontend.Quit()

   kohteessa Smuxi.Frontend.Gnome.Frontend.ShowException(Window parent, Exception ex)

   kohteessa Smuxi.Frontend.Gnome.Frontend.ShowException(Exception ex)

   kohteessa Smuxi.Frontend.Gnome.Frontend._CheckFrontendManagerStatus()

   kohteessa GLib.Timeout.TimeoutProxy.Handler()

Updated by Mirco Bauer 5489 days ago

avatar

Yeah this issue is Windows (actually MS .NET) specific as it throws a different exception than Mono does. The error is raised from the .NET Remoting code and doesn't wrap the low level error into a nice RemotingException as Mono does.

Updated by Mirco Bauer 5489 days ago

avatar
  • Category changed from Frontend to Frontend GNOME
  • Target version set to 0.7

Updated by Mirco Bauer 5441 days ago

avatar
  • Status changed from New to Closed
  • % Done changed from 0 to 100

Also available in: Atom PDF