Worth noting, with Combined patch applied (or both other applied
separately), zero unit tests are failing.  So apparently, it doesn't
make anything worse, at least as far as tests go.

-Rob

On 06/28/2012 08:20 AM, Rob Wilkens wrote:
>
> Either of the attached patches illustrates what i was trying to say in
> that last patch
>
> (1) attempt2.patch  : This attempts to patch just the below concern,
> and is based on a guess.
> -or- (not both)
> (2) combined.patch : This combines attempt2.patch with the patch i
> sent last night since they were on the same branch.
>
> I'm not able to test these anything beyond "does it compile" because i
> don't have sample code to reproduce this with.
>
> -Rob
>
> On 06/28/2012 07:55 AM, Rob Wilkens wrote:
>> Re : The stacktrace below...
>>
>> This occurs when an exception is raised in ChannelDispatcher.cs on
>> line 601.  It tries to send back an exception message to the client
>> here, i believe.  But when it does that, it uses the existing
>> RequestContext. 
>>
>> It's apparent that some data is apparently being sent, such as
>> headers, on the RequestContext (rc) before we get to this exception.
>>
>> If we're dealing with the case of SocketException, which caused us to
>> fail mid-send on the RequestContext, perhaps, again, we shouldn't
>> handle this like every other exception and not reply.  i.e. in the
>> exception handler here, if exception is typeof(SocketException) don't
>> reply, what might be more interesting, if this is reproducable, would
>> be to - as debugging - print the exception message and/or stacktrace
>> to the screen to see what exception caused this.
>>
>> Did you file a bug report on this?  The discussion on this particular
>> issue (or any particular bug) is probably better stored in the bug
>> report comments than on the whole mailing list.  PLus comments like
>> the above would stay in the bug report rather than get lost in the
>> list.  IF you file a bug report, post a link to the bug report in
>> this thread (the bug # should be enough).
>>
>> -Rob
>>
>>
>> On 06/27/2012 01:02 PM, shahbour wrote:
>>>
>>>
>>>         Hello After more testing between Mac and Windows this is
>>>         what i got Crash Windows Mac Linux Without ErroHandler No
>>>         Yes Yes With ErrorHandler (return false ) No Yes Yes With
>>>         ErrorHandler (return true) No No No Before i was always
>>>         returning false in IErrorHandler implementation because i
>>>         only implemented for logging purpose but when i return true
>>>         for the HandleError , the application fire the error and log
>>>         it but never crash. Now i trying to debug the application
>>>         under MonoDevelop and repreduce the error, below is what i got
>>>
>>>
>>>             System.InvalidOperationException: Cannot be changed
>>>             after headers are sent. at
>>>             System.Net.HttpListenerResponse.set_ContentType
>>>             (System.String value) [0x00027] in
>>>             
>>> /private/tmp/monobuild/build/BUILD/mono-2.10.9/mcs/class/System/System.Net/HttpListenerResponse.cs:107
>>>             at
>>>             
>>> System.ServiceModel.Channels.Http.HttpStandaloneResponseInfo.set_ContentType
>>>             (System.String value) [0x00000] in
>>>             
>>> /private/tmp/monobuild/build/BUILD/mono-2.10.9/mcs/class/System.ServiceModel/System.ServiceModel.Channels.Http/HttpContextInfo.cs:274
>>>             at
>>>             
>>> System.ServiceModel.Channels.Http.HttpRequestContext.InternalReply
>>>             (System.ServiceModel.Channels.Message msg, TimeSpan
>>>             timeout) [0x00046] in
>>>             /private/tmp/monobuild/build/BUILD/mono-2.10.9
>>>
>>
>>>             
>>> /mcs/class/System.ServiceModel/System.ServiceModel.Channels.Http/HttpRequestContext.cs:140
>>>             at
>>>             System.ServiceModel.Channels.Http.HttpRequestContext.Reply
>>>             (System.ServiceModel.Channels.Message msg, TimeSpan
>>>             timeout) [0x00000] in
>>>             
>>> /private/tmp/monobuild/build/BUILD/mono-2.10.9/mcs/class/System.ServiceModel/System.ServiceModel.Channels.Http/HttpRequestContext.cs:101
>>>             at
>>>             System.ServiceModel.Channels.Http.HttpRequestContext.Reply
>>>             (System.ServiceModel.Channels.Message msg) [0x00000] in
>>>             
>>> /private/tmp/monobuild/build/BUILD/mono-2.10.9/mcs/class/System.ServiceModel/System.ServiceModel.Channels.Http/HttpRequestContext.cs:96
>>>             at
>>>             
>>> System.ServiceModel.Dispatcher.ListenerLoopManager.ProcessRequest
>>>             (IReplyChannel reply,
>>>             System.ServiceModel.Channels.RequestContext rc)
>>>             [0x0003b] in
>>>             
>>> /private/tmp/monobuild/build/BUILD/mono-2.10.9/mcs/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChannelDispatcher.cs:601
>>>             at
>>>             
>>> System.ServiceModel.Dispatcher.ListenerLoopManager.TryReceiveRequestDone
>>>             (IAsyncResult result) [0x0001a] in
>>>             
>>> /private/tmp/monobuild/build/BUILD/mono-2.10.9/mcs/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChannelDispatcher.cs:575
>>>
>>> Reproducing the error is very simple, just host any application
>>> under console app and in any service function put Thread.Sleep(..)
>>> to give you time to close the browser before it reply. Then call
>>> this function from any client and close it before getting the
>>> response. In my live program i don't put Thread.sleep it is only to
>>> give us time between calling the function and closing the browser.
>>> Under windows we got the bellow that don't crash the application
>>> error.Message "An operation was attempted on a nonexistent network
>>> connection" error.InnerException {"An operation was attempted on a
>>> nonexistent network connection"} System.Exception :q
>>> {System.Net.HttpListenerException} error.ErrorCode 1229 BR Shahbour
>>> ------------------------------------------------------------------------
>>> View this message in context: Re: WCF Fail with
>>> System.Net.Sockets.SocketException: Connection reset by peer
>>> <http://mono.1490590.n4.nabble.com/WCF-Fail-with-System-Net-Sockets-SocketException-Connection-reset-by-peer-tp4650173p4650210.html>
>>> Sent from the Mono - Dev mailing list archive
>>> <http://mono.1490590.n4.nabble.com/Mono-Dev-f1517221.html> at
>>> Nabble.com.
>>>
>>>
>>> _______________________________________________
>>> Mono-devel-list mailing list
>>> Mono-devel-list@lists.ximian.com
>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>
>>
>
>


_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to