[DRIVERS-2713] Permit legacy transaction tests to run on load-balanced topologies and Atlas Serverless Created: 01/Sep/23 Updated: 07/Feb/24 |
|
| Status: | Implementing |
| Project: | Drivers |
| Component/s: | Transactions |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Jeremy Mikola | Assignee: | Jeremy Mikola |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Driver Changes: | Needed | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Downstream Changes Summary: | Sync legacy transaction spec tests with 38e65fc. Drivers that do not pin connections on load balancers (e.g. libmongoc, PHP) can consider skipping the tests listed in this comment. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Engineering Lead: | |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Start date: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Driver Compliance: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description |
SummaryIn d2de776 for DRIVERS-720, various legacy spec tests were updated to incorporate "load-balanced" into their topology runOn requirements. The transactions spec was notably omitted. As a result, a segment of legacy spec tests are never run on Atlas Serverless, which the driver sees as a load balanced topology (see 1b471f1 and DRIVERS-1967). Note that the serverless runOn requirement does not come into play here, as that's generally used with "forbid" to prohibit running tests. Even if a test specified "require" or "allow" (the default) for serverless, that alone would not be sufficient to run the test if topology was also specified and omitted "load-balanced". MotivationWho is the affected end user?Drivers running legacy transaction specs tests. How does this affect the end user?Legacy transaction spec tests have no test coverage on load-balanced toplogies (including Atlas Serverless). How likely is it that this problem or use case will occur?Likely applies to all drivers, since the issue is in the spec tests themselves. Is this issue urgent?No, as the issue dates back over a year and was only recently discovered by the Java team. Is this ticket required by a downstream team?No. Is this ticket only for tests?Yes. |
| Comments |
| Comment by Jeremy Mikola [ 07/Feb/24 ] |
|
Note: if any drivers implement DRIVERS-1709 first (porting legacy transaction spec tests to unified format), there will be no work needed for this ticket. |
| Comment by Jeremy Mikola [ 28/Sep/23 ] |
|
Note: drivers that do not pin connections on load balancers (e.g. libmongoc, PHP) can consider skipping the following tests:
|
| Comment by Githook User [ 28/Sep/23 ] |
|
Author: {'name': 'Jeremy Mikola', 'email': 'jmikola@gmail.com', 'username': 'jmikola'}Message: DRIVERS-2713: Run legacy transaction tests on LB topologies (#1459) d2de77692b727b805168eeba02c3ab29e6a1d3e2 previously added "load-balanced" to other legacy test formats but omitted the transactions spec. This change ensures legacy transaction tests can be run on LB topologies, including Atlas Serverless (where "serverless: forbid" is not specified). Some tests in retryable-commit.yml are incompatible with serverless and have been split off into a separate file with "serverless: forbid". |
| Comment by Jeremy Mikola [ 01/Sep/23 ] |
| Comment by Jeremy Mikola [ 01/Sep/23 ] |
|
Note: I've confirmed that this only affects the legacy transaction spec tests. DRIVERS-1525 covers all specs that still have legacy tests that need to be ported over to the unified format, and only the transactions spec was using "topology" with "sharded" and without "load-balanced". The convenient API was not affected as those have all been ported to the unified format, and other unported specs (e.g. CRUD v1, ADL) don't use topology requirements at all. |