https://bugzilla.novell.com/show_bug.cgi?id=687902
https://bugzilla.novell.com/show_bug.cgi?id=687902#c0 Summary: The mono runtime crashes on a long-running WCF server Classification: Mono Product: Mono: Runtime Version: 2.10.x Platform: 64bit OS/Version: Windows Server 2008 R2 Status: NEW Severity: Normal Priority: P5 - None Component: remoting AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- Created an attachment (id=425215) --> (http://bugzilla.novell.com/attachment.cgi?id=425215) This is a working example that reproduces the bug User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) I have composed a very simple WCF SOAP server with a single method, void Ping() and a client that calls that method in a loop in order to measure remoting call-time. If you start the server under mono, then run the client the server soon crashes with a hard access violation. The crash is so hard I can't catch it in my code - this appears to be a hard runtime crash. I have attached a working sample hat reproduces he bug. Reproducible: Always Steps to Reproduce: 1. Download and open my sample solution 2. Run the server in mono 3. Run the client in Microsoft .Net. You MUST run the client in Microsoft .Net due to a seperate issue with System.ServiceModel.ClientBase<TChannel> under mono which I will report in a seperate bug. 4. Observe the client and note that the client reports average call time every 10 seconds. Note that over time the average call time grows progressively worse, suggesting there is something wrong with the server: The client is running, press a key to stop... Contact! 0.863130881094953ms 2.53887559808612ms 3.61134995700774ms 4.14545454545455ms 5.87476280834915ms 5.00810372771475ms 5.70899808551372ms 7.03869969040248ms 7.66666666666667ms 7.7003367003367ms 6.66206395348837ms 8.5355871886121ms 9.36026200873362ms 9.56926188068756ms 12.6885026737968ms 12.5408970976253ms 12.4676354029062ms 12.3530183727034ms 12.5217391304348ms 10.7576099210823ms 10.2411953041622ms 11.9022277227723ms 11.905055487053ms 11.9419924337957ms 11.7959183673469ms 11.8966376089664ms 14.2062780269058ms 16.3232830820771ms 16.1959798994975ms 16.1641541038526ms 16.6735751295337ms 17.0448028673835ms 16.9679144385027ms 16.8924162257496ms 16.8236331569665ms 16.8763440860215ms 17.021568627451ms 12.6992084432718ms Eventually (within a couple of minutes) the server will hard crash. The client will get this exception when the server crashes: ---->System.ServiceModel.CommunicationException Message An error occurred while receiving the HTTP response to http://localhos t:8080/ProfileSOAP. This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being abort ed by the server (possibly due to the service shutting down). See server logs fo r more details. Stack Server stack trace: at System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetRespons eWebException(WebException webException, HttpWebRequest request, HttpAbortReason abortReason) at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel. HttpChannelRequest.WaitForReply(TimeSpan timeout) at System.ServiceModel.Channels.RequestChannel.Request(Message message , TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boo lean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeS pan timeout) at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMet hodCallMessage methodCall, ProxyOperationRuntime operation) at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage me ssage) Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMess age reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData & msgData, Int32 type) at client.IProfileSOAP.Ping() at client.Program.<>c__DisplayClass3.<DoMain>b__2() in C:\Temp\FunWith MonoRESTClient.SOAP\client\Program.cs:line 81 ---->System.Net.WebException Message The underlying connection was closed: An unexpected error occurre d on a receive. Stack at System.Net.HttpWebRequest.GetResponse() at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestCha nnel.HttpChannelRequest.WaitForReply(TimeSpan timeout) ---->System.IO.IOException Message Unable to read data from the transport connection: An existi ng connection was forcibly closed by the remote host. Stack at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int3 2 offset, Int32 size) at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size) at System.Net.Connection.SyncRead(HttpWebRequest request, Bo olean userRetrievedStream, Boolean probeRead) ---->System.Net.Sockets.SocketException Message An existing connection was forcibly closed by the remot e host Stack at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) Actual Results: The WCF server running in mono experiences a hard crash in the mono runtime. Expected Results: If you run this experiment in pure Microsoft .NET the server will run in perpetuity with the client calling it without the server crashing. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
