Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-2710

Atlas cluster setup script should create a unique cluster per-invocation, not per commit

    • Type: Icon: Bug Bug
    • Resolution: Unresolved
    • Priority: Icon: Minor - P4 Minor - P4
    • None
    • Component/s: None
    • None
    • Needed
    • Hide

      setup-atlas-cluster.sh and teardown-atlas-cluster.sh have been updated to ensure that they generate unique atlas clusters per task instead of per commit. both scripts now rely on the default evergreen expansion `task_id`.

      If a driver is calling these scripts while using the `include_expansions_in_env` or `add_expansions_to_env`, no changes should be necessary. If a driver is not providing the `task_id` to the setup and teardown script, the config must be updated to pass this expansion as an environment variable for the scripts.

      Show
      setup-atlas-cluster.sh and teardown-atlas-cluster.sh have been updated to ensure that they generate unique atlas clusters per task instead of per commit. both scripts now rely on the default evergreen expansion `task_id`. If a driver is calling these scripts while using the `include_expansions_in_env` or `add_expansions_to_env`, no changes should be necessary. If a driver is not providing the `task_id` to the setup and teardown script, the config must be updated to pass this expansion as an environment variable for the scripts.
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-4714 Won't Do
      CXX-2743 Backlog
      CSHARP-4777 Backlog
      GODRIVER-2969 Done
      JAVA-5130 Done
      NODE-5601 Done
      MOTOR-1185 Won't Do
      PYTHON-3944 Ready for Work
      PHPLIB-1226 Works as Designed
      RUBY-3324 Fixed 2.19.1
      RUST-1755 Fixed 2.8.0
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CDRIVER-4714 Won't Do CXX-2743 Backlog CSHARP-4777 Backlog GODRIVER-2969 Done JAVA-5130 Done NODE-5601 Done MOTOR-1185 Won't Do PYTHON-3944 Ready for Work PHPLIB-1226 Works as Designed RUBY-3324 Fixed 2.19.1 RUST-1755 Fixed 2.8.0

      Summary

      drivers-evergreen-tools' setup-atlas-cluster.sh  creates a unique cluster per-commit but not per invocation.  This can lead to race conditions for drivers that have implemented both the search index management API and the FAAS failover testing where the CI tasks setup / teardown a cluster with the same name within the same CI run.  We should add a unique identifier (a task id, a random number, ect) to the provisioned cluster's name so CI tasks do not interfere with each other.

      Motivation

      Who is the affected end user?

      drivers engineers.

      How does this affect the end user?

      Drivers may see flaky FAAS failover tests and search index tests.

      How likely is it that this problem or use case will occur?

      likely.

      If the problem does occur, what are the consequences and how severe are they?

      minor annoyance.

      Is this issue urgent?

      This ticket should be done soon so that as more drivers implement the new CI tasks, they are not adding flaky tests into their CI and so that drivers who currently have this can fix their flaky tests.

      Is this ticket required by a downstream team?

      no.

      Is this ticket only for tests?

      yes.

      Acceptance Criteria

      Update setup-atlas-cluster to create a unique cluster name per-invocation instead of a unique name per-commit.

            Assignee:
            bailey.pearson@mongodb.com Bailey Pearson
            Reporter:
            bailey.pearson@mongodb.com Bailey Pearson
            Durran Jordan Durran Jordan
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: