Uploaded image for project: 'C# Driver'
  1. C# Driver
  2. CSHARP-1876

Race condition in ReceiveMessage_should_handle_out_of_order_replies test

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Minor - P4 Minor - P4
    • 2.4.2
    • Affects Version/s: 2.0
    • Component/s: Testing
    • Labels:
      None

      The ReceiveMessage_should_handle_out_of_order_replies test sometimes fails due to what looks like a race condition.

      The output of the test when it fails is:

          MongoDB.Driver.Core.Connections.BinaryConnectionTests.ReceiveMessage_should_handle_out_of_order_replies(async1: False, async2: False) [FAIL]
            MongoDB.Driver.MongoConnectionException : An exception occurred while receiving a message from the server.
            ---- System.IO.EndOfStreamException : Attempted to read past the end of the stream.
            Stack Trace:
              D:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Driver.Core\Core\Connections\BinaryConnection.cs(329,0): at MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBuffer()
              D:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Driver.Core\Core\Connections\BinaryConnection.cs(365,0): at MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBuffer(Int32 responseTo, CancellationToken cancellationToken)
              D:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Driver.Core\Core\Connections\BinaryConnection.cs(454,0): at MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveMessage(Int32 responseTo, IMessageEncoderSelector encoderSelector, MessageEncoderSettings messageEncoderSettings, CancellationToken cancellationToken)
              D:\jenkins\workspace\mongo-csharp-driver-build\tests\MongoDB.Driver.Core.Tests\Core\Connections\BinaryConnectionTests.cs(395,0): at MongoDB.Driver.Core.Connections.BinaryConnectionTests.<>c__DisplayClass17_0.<ReceiveMessage_should_handle_out_of_order_replies>b__0()
                 at System.Threading.Tasks.Task`1.InnerInvoke()
                 at System.Threading.Tasks.Task.Execute()
              --- End of stack trace from previous location where exception was thrown ---
                 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
                 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
              D:\jenkins\workspace\mongo-csharp-driver-build\tests\MongoDB.Driver.Core.Tests\Core\Connections\BinaryConnectionTests.cs(415,0): at MongoDB.Driver.Core.Connections.BinaryConnectionTests.ReceiveMessage_should_handle_out_of_order_replies(Boolean async1, Boolean async2)
              ----- Inner Stack Trace -----
              D:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Driver.Core\Core\Misc\StreamExtensionMethods.cs(39,0): at MongoDB.Driver.Core.Misc.StreamExtensionMethods.ReadBytes(Stream stream, Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
              D:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Driver.Core\Core\Connections\BinaryConnection.cs(315,0): at MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBuffer()
      
      

            Assignee:
            robert@mongodb.com Robert Stam
            Reporter:
            robert@mongodb.com Robert Stam
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: