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

FirstOrDefaultAsync never return?

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Done
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None

    Description

      MongoDB.Driver 2.2.3
      [TestMethod]
      public async Task GetAsync()

      { SocialRobotRepository repo = new SocialRobotRepository(); SocialRobotEntity doc = await repo.GetAsync(x => x.RobotId == 11438); }

      [CollectionNameAttribute("Ymt_Social_Robot")]
      public class SocialRobotEntity : MongoEntityBase
      {
      public int RobotId

      { get; set; }

      public int AdminId { get; set; }

      public string AdminName

      { get; set; }

      public int UserId { get; set; }

      public DateTime CreatedAt

      { get; set; }

      public string UserName { get; set; }

      public string UserAvatar

      { get; set; }

      }

      public class SocialRobotRepository:MongoRepository<SocialRobotEntity>
      {
      }

      public class MongoRepository<T> : IMongoRepository<T> where T : MongoEntityBase
      {
      public async Task<T> GetAsync(Expression<Func<T, bool>> filter)

      { return await collection.Find(filter).FirstOrDefaultAsync(); }

      }
      =============================
      Test Name: GetAsync
      Test FullName: Ymatou.Social.Core.Test.DataAccess.MongoRepositoryTest.GetAsync
      Test Source: e:\Work\doc\99 个人文件夹\Ymatou.Social.Core\Ymatou.Social.Core.Test\DataAccess\MongoRepositoryTest.cs : line 26
      Test Outcome: Failed
      Test Duration: 0:00:46.977356

      Result Message:
      Test method Ymatou.Social.Core.Test.DataAccess.MongoRepositoryTest.GetAsync threw exception:
      System.TimeoutException: A timeout occured after 30000ms selecting a server using CompositeServerSelector{ Selectors = ReadPreferenceServerSelector{ ReadPreference =

      { Mode = SecondaryPreferred, TagSets = [] }

      }, LatencyLimitingServerSelector

      { AllowedLatencyRange = 00:00:00.0150000 }

      }. Client view of cluster state is { ClusterId : "1", ConnectionMode : "ReplicaSet", Type : "ReplicaSet", State : "Disconnected", Servers : [{ ServerId: "

      { ClusterId : 1, EndPoint : "Unspecified/set3a.mongodb.ymatou.com:27017" }

      ", EndPoint: "Unspecified/set3a.mongodb.ymatou.com:27017", State: "Disconnected", Type: "Unknown" }, { ServerId: "

      { ClusterId : 1, EndPoint : "Unspecified/set3b.mongodb.ymatou.com:27017" }

      ", EndPoint: "Unspecified/set3b.mongodb.ymatou.com:27017", State: "Disconnected", Type: "Unknown" }] }.
      Result StackTrace:
      在 MongoDB.Driver.Core.Clusters.Cluster.ThrowTimeoutException(IServerSelector selector, ClusterDescription description)
      在 MongoDB.Driver.Core.Clusters.Cluster.WaitForDescriptionChangedHelper.HandleCompletedTask(Task completedTask)
      在 MongoDB.Driver.Core.Clusters.Cluster.<WaitForDescriptionChangedAsync>d__44.MoveNext()
      — 引发异常的上一位置中堆栈跟踪的末尾 —
      在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
      在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
      在 System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()
      在 MongoDB.Driver.Core.Clusters.Cluster.<SelectServerAsync>d__37.MoveNext()
      — 引发异常的上一位置中堆栈跟踪的末尾 —
      在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
      在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
      在 System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
      在 MongoDB.Driver.Core.Bindings.ReadPreferenceBinding.<GetReadChannelSourceAsync>d__8.MoveNext()
      — 引发异常的上一位置中堆栈跟踪的末尾 —
      在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
      在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
      在 System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
      在 MongoDB.Driver.Core.Operations.FindOperation`1.<ExecuteAsync>d__107.MoveNext()
      — 引发异常的上一位置中堆栈跟踪的末尾 —
      在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
      在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
      在 System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
      在 MongoDB.Driver.OperationExecutor.<ExecuteReadOperationAsync>d__1`1.MoveNext()
      — 引发异常的上一位置中堆栈跟踪的末尾 —
      在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
      在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
      在 System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
      在 MongoDB.Driver.MongoCollectionImpl`1.<ExecuteReadOperationAsync>d__59`1.MoveNext()
      — 引发异常的上一位置中堆栈跟踪的末尾 —
      在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
      在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
      在 System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
      在 MongoDB.Driver.IAsyncCursorSourceExtensions.<FirstOrDefaultAsync>d__5`1.MoveNext()
      — 引发异常的上一位置中堆栈跟踪的末尾 —
      在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
      在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
      在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
      在 Ymatou.Social.Core.DataAccess.MongoRepository`1.<GetAsync>d__0.MoveNext() 位置 e:\Work\doc\99 个人文件夹\Ymatou.Social.Core\Ymatou.Social.Core\DataAccess\MongoRepository.cs:行号 32
      — 引发异常的上一位置中堆栈跟踪的末尾 —
      在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
      在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
      在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
      在 Ymatou.Social.Core.Test.DataAccess.MongoRepositoryTest.<GetAsync>d__0.MoveNext() 位置 e:\Work\doc\99 个人文件夹\Ymatou.Social.Core\Ymatou.Social.Core.Test\DataAccess\MongoRepositoryTest.cs:行号 29
      — 引发异常的上一位置中堆栈跟踪的末尾 —
      在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
      在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
      在 System.Runtime.CompilerServices.TaskAwaiter.GetResult()

      Attachments

        Activity

          People

            craig.wilson@mongodb.com Craig Wilson
            arraylist tianzhonghai
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: