[Mono-bugs] [Bug 687906] New: Long-running WCF client based on System.ServiceModel.ClientBase<TChannel> crashes with 'The operation has timed-out'

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Fri Apr 15 12:22:01 EDT 2011


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

https://bugzilla.novell.com/show_bug.cgi?id=687906#c0


           Summary: Long-running WCF client based on
                    System.ServiceModel.ClientBase<TChannel> crashes with
                    'The operation has timed-out'
    Classification: Mono
           Product: Mono: Runtime
           Version: 2.10.x
          Platform: 64bit
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: remoting
        AssignedTo: lluis at novell.com
        ReportedBy: emily.lewis at lumension.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


Created an attachment (id=425216)
 --> (http://bugzilla.novell.com/attachment.cgi?id=425216)
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 constructed a very simple WCF server with a single method, void Ping().
I have also built a client based on System.ServiceModel.ClientBase<TChannel>
that repeatedly calls the server in order to measure call-time. When you run
the server and the client in very short order the client will throw the
following exception:

     ---->System.TimeoutException
     Message
          The operation has timed-out.
     Stack
          at
System.ServiceModel.Channels.HttpRequestChannel+HttpChannelRequestA
syncResult.WaitEnd () [0x0003c] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10
1\mcs\class\System.ServiceModel\System.ServiceModel.Channels\HttpRequestChannel
cs:435
          at System.ServiceModel.Channels.HttpRequestChannel.EndRequest
(IAsyncR
esult result) [0x00029] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.1\mcs\c
lass\System.ServiceModel\System.ServiceModel.Channels\HttpRequestChannel.cs:289
          at System.ServiceModel.Channels.HttpRequestChannel.Request
(System.Ser
viceModel.Channels.Message message, TimeSpan timeout) [0x00000] in
C:\cygwin\tmp
\monobuild\build\BUILD\mono-2.10.1\mcs\class\System.ServiceModel\System.ServiceM
odel.Channels\HttpRequestChannel.cs:63
          at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Request
(Syst
em.ServiceModel.Channels.Message msg, TimeSpan timeout) [0x0000b] in
C:\cygwin\t
mp\monobuild\build\BUILD\mono-2.10.1\mcs\class\System.ServiceModel\System.Servic
eModel\ClientRuntimeChannel.cs:579
          at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Request
(Syst
em.ServiceModel.Description.OperationDescription od, System.Object[]
parameters)
 [0x00066] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.1\mcs\class\System.S
erviceModel\System.ServiceModel\ClientRuntimeChannel.cs:534
          at System.ServiceModel.MonoInternal.ClientRuntimeChannel.DoProcess
(Sy
stem.Reflection.MethodBase method, System.String operationName, System.Object[]
parameters) [0x00038] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.1\mcs\cla
ss\System.ServiceModel\System.ServiceModel\ClientRuntimeChannel.cs:499
          at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Process
(Syst
em.Reflection.MethodBase method, System.String operationName, System.Object[]
pa
rameters) [0x00000] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.1\mcs\class
\System.ServiceModel\System.ServiceModel\ClientRuntimeChannel.cs:479

Reproducible: Always

Steps to Reproduce:
1. Donwload and open the attached solution
2. Run the server in Microsoft .Net, you MUST run the server in Microsoft .Net
due to a different mono bug, 687902
3. Run the client in mono.
4. Observe that the client will report average call time every 10 seconds, and
further, note that the call times grow progressively worse:

The client is running, press a key to stop...
Contact!
0.356038481360591ms
0.455139100098399ms
0.500788488074118ms
0.531477380575767ms
0.669040636782572ms
0.667665567875337ms
0.714867617107943ms
0.833405514652808ms
0.847995121207501ms
1ms
1.01244019138756ms

In a few minutes the client eventually crashes with this exception:

     ---->System.TimeoutException
     Message
          The operation has timed-out.
     Stack
          at
System.ServiceModel.Channels.HttpRequestChannel+HttpChannelRequestA
syncResult.WaitEnd () [0x0003c] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10
1\mcs\class\System.ServiceModel\System.ServiceModel.Channels\HttpRequestChannel
cs:435
          at System.ServiceModel.Channels.HttpRequestChannel.EndRequest
(IAsyncR
esult result) [0x00029] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.1\mcs\c
lass\System.ServiceModel\System.ServiceModel.Channels\HttpRequestChannel.cs:289
          at System.ServiceModel.Channels.HttpRequestChannel.Request
(System.Ser
viceModel.Channels.Message message, TimeSpan timeout) [0x00000] in
C:\cygwin\tmp
\monobuild\build\BUILD\mono-2.10.1\mcs\class\System.ServiceModel\System.ServiceM
odel.Channels\HttpRequestChannel.cs:63
          at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Request
(Syst
em.ServiceModel.Channels.Message msg, TimeSpan timeout) [0x0000b] in
C:\cygwin\t
mp\monobuild\build\BUILD\mono-2.10.1\mcs\class\System.ServiceModel\System.Servic
eModel\ClientRuntimeChannel.cs:579
          at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Request
(Syst
em.ServiceModel.Description.OperationDescription od, System.Object[]
parameters)
 [0x00066] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.1\mcs\class\System.S
erviceModel\System.ServiceModel\ClientRuntimeChannel.cs:534
          at System.ServiceModel.MonoInternal.ClientRuntimeChannel.DoProcess
(Sy
stem.Reflection.MethodBase method, System.String operationName, System.Object[]
parameters) [0x00038] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.1\mcs\cla
ss\System.ServiceModel\System.ServiceModel\ClientRuntimeChannel.cs:499
          at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Process
(Syst
em.Reflection.MethodBase method, System.String operationName, System.Object[]
pa
rameters) [0x00000] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.1\mcs\class
\System.ServiceModel\System.ServiceModel\ClientRuntimeChannel.cs:479
Actual Results:  
The client quickly crashes with this exception:

     ---->System.TimeoutException
     Message
          The operation has timed-out.
     Stack
          at
System.ServiceModel.Channels.HttpRequestChannel+HttpChannelRequestA
syncResult.WaitEnd () [0x0003c] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10
1\mcs\class\System.ServiceModel\System.ServiceModel.Channels\HttpRequestChannel
cs:435
          at System.ServiceModel.Channels.HttpRequestChannel.EndRequest
(IAsyncR
esult result) [0x00029] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.1\mcs\c
lass\System.ServiceModel\System.ServiceModel.Channels\HttpRequestChannel.cs:289
          at System.ServiceModel.Channels.HttpRequestChannel.Request
(System.Ser
viceModel.Channels.Message message, TimeSpan timeout) [0x00000] in
C:\cygwin\tmp
\monobuild\build\BUILD\mono-2.10.1\mcs\class\System.ServiceModel\System.ServiceM
odel.Channels\HttpRequestChannel.cs:63
          at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Request
(Syst
em.ServiceModel.Channels.Message msg, TimeSpan timeout) [0x0000b] in
C:\cygwin\t
mp\monobuild\build\BUILD\mono-2.10.1\mcs\class\System.ServiceModel\System.Servic
eModel\ClientRuntimeChannel.cs:579
          at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Request
(Syst
em.ServiceModel.Description.OperationDescription od, System.Object[]
parameters)
 [0x00066] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.1\mcs\class\System.S
erviceModel\System.ServiceModel\ClientRuntimeChannel.cs:534
          at System.ServiceModel.MonoInternal.ClientRuntimeChannel.DoProcess
(Sy
stem.Reflection.MethodBase method, System.String operationName, System.Object[]
parameters) [0x00038] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.1\mcs\cla
ss\System.ServiceModel\System.ServiceModel\ClientRuntimeChannel.cs:499
          at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Process
(Syst
em.Reflection.MethodBase method, System.String operationName, System.Object[]
pa
rameters) [0x00000] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.1\mcs\class
\System.ServiceModel\System.ServiceModel\ClientRuntimeChannel.cs:479



Expected Results:  
The client should be able to call the server in perpetuity without the client
crashing.

I tried a number of variations in this test setup - I tried newing the client
once and then calling it over and over, I also tried newing the client once,
calling it and then disposing it over and over - both approaches eventually
crash.

-- 
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