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

Unresponsive/deadlocked cluster.Dispose()

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Unknown Unknown
    • 3.2.0
    • Affects Version/s: None
    • Component/s: Internal
    • None
    • Fully Compatible
    • Not Needed
    • Hide

      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?

      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?

      For example:
      https://evergreen.mongodb.com/task/dot_net_driver_secure_tests_linux__version~5.0_os~ubuntu_1804_topology~replicaset_auth~auth_ssl~ssl_test_netstandard21_patch_b961b81cb7dc1ffe7262c55a227afad0aab5a994_6138ff3a9ccd4e2b269ec32e_21_09_08_18_22_08
      https://evergreen.mongodb.com/task/dot_net_driver_secure_tests_macOS__version~5.0_os~macos_1014_topology~standalone_auth~auth_ssl~ssl_test_netstandard21_patch_b961b81cb7dc1ffe7262c55a227afad0aab5a994_6139469732f4171b6671f7b2_21_09_08_23_26_33

      Leads to timeouts due to hanging DisposableMongoClient.Dispose(). Was not able to reproduce locally.
      From brief investigation two flavors where observed:

      • Execution blocked at monitorCancellationTokenSource.Cancel(); in ServerMonitor.Dispose()
      • Execution blocked at _cancellationTokenSource.Cancel(); in RoundTripTimeMonitor.Dispose()

            Assignee:
            oleksandr.poliakov@mongodb.com Oleksandr Poliakov
            Reporter:
            boris.dogadov@mongodb.com Boris Dogadov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: