Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-76157

ClusterServerParameterRefresher can result in dangling internal transactions on the config server

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 7.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Server Security
    • Fully Compatible
    • ALL
    • v7.0
    • Security 2023-05-01
    • 164

      The ClusterServerParameterRefresher has a periodic job that runs internal transactions on the config server. The job currently isn't explicitly stopped on shutdown so a new transaction can start after mongos implicitly aborts transactions as part shutting down. The new transaction can get interrupted on mongos later during shutdown and that results in an open transaction on the config server. This can occur in sharding tests since ShardingTest.stop() shuts down the mongoses before the config server. When it occurs, it would get stuck trying shut down the config server because freezing a node involves doing fsync which requires taking the global S lock which cannot occur because the the IX lock is being held by the dangling transaction and in tests we use the transaction lifetime limit of 24 hours. 

            Assignee:
            gabriel.marks@mongodb.com Gabriel Marks
            Reporter:
            cheahuychou.mao@mongodb.com Cheahuychou Mao
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: