[DRIVERS-633] Define how multiple phases should be handled in SDAM spec runner Created: 16/Apr/19  Updated: 02/Mar/21

Status: Implementing
Project: Drivers
Component/s: SDAM
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Oleg Pudeyev (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on CDRIVER-3469 Define how multiple phases should be ... Backlog
depends on CXX-1897 Define how multiple phases should be ... Backlog
depends on CSHARP-2883 Define how multiple phases should be ... Closed
depends on GODRIVER-1447 Define how multiple phases should be ... Closed
depends on JAVA-3561 Define how multiple phases should be ... Closed
depends on MOTOR-483 Define how multiple phases should be ... Closed
depends on NODE-2396 Define how multiple phases should be ... Closed
depends on PHPC-1518 Define how multiple phases should be ... Closed
depends on PYTHON-2088 Define how multiple phases should be ... Closed
depends on RUBY-2051 Define how multiple phases should be ... Closed
Driver Compliance:
Key Status/Resolution FixVersion
RUBY-2051 Fixed 2.12.0.rc0
CSHARP-2883 Fixed 2.12.0
GODRIVER-1447 Won't Do
PHPC-1518 Won't Fix
MOTOR-483 Works as Designed
CXX-1897 Backlog
NODE-2396 Won't Do
PYTHON-2088 Fixed 3.11
JAVA-3561 Fixed 4.0.0
CDRIVER-3469 Backlog

 Description   

Currently, there are tests for SDAM state transitions ("sdam") and some of the events generated by SDAM flow ("sdam monitoring"), but there are areas not covered by the existing monitoring tests, specifically:

  • server removal/server close events
  • some situations when the first response is not from primary
  • multiple servers responding

The existing "sdam" tests cover topology outcomes in most of these cases, but those tests do not specify the order in which events should be published (or event contents, but this is a minor point).

https://jira.mongodb.org/browse/SPEC-1280 proposes to add a number of "sdam monitoring" tests to formalize the order of sdam events being published in various situations.

In order for the new tests to be possible, a change in spec runner is necessary which is to perform assertions on events generated during cluster/topology construction prior to any responses being received from any of the servers.

This ticket covers the spec runner change - specifically, defining how SDAM spec runner should be implemented with respect to events in multiple phases.


Generated at Thu Feb 08 08:21:59 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.