[SERVER-53298] Tests that call "getMore" can fail in replica_sets_multi_stmt_txn_jscore_passthrough suite Created: 09/Dec/20 Updated: 06/Dec/22 |
|
| Status: | Backlog |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Minor - P4 |
| Reporter: | A. Jesse Jiryu Davis | Assignee: | Backlog - Replication Team |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Assigned Teams: |
Replication
|
| Participants: |
| Description |
|
Although most (all?) of the other multi_stmt_txn passthrough suites exclude tests tagged "requires_getmore", the replica_sets_multi_stmt_txn_jscore_passthrough suite does not, and we must manually exclude all tests that use the "getMore" command from it. If we do not, the test errors with: "assert: [getMore] != [getMore] are equal", here: Consider excluding all requires_getmore tests from this suite, and see if there are other multi_stmt_txn passthrough suites which should also exclude them. |
| Comments |
| Comment by A. Jesse Jiryu Davis [ 10/Dec/20 ] | ||||||||||||||||||||||||||||||||||||
|
Thanks, that sounds like a possible solution. For now, I'm leaving this ticket on the backlog, and I'll manually exclude list_indexes_invalidation.js from replica_sets_multi_stmt_txn_jscore_passthrough.yml as part of | ||||||||||||||||||||||||||||||||||||
| Comment by Max Hirschhorn [ 09/Dec/20 ] | ||||||||||||||||||||||||||||||||||||
|
The listIndexes command cannot be run in a multi-document transaction so it'll be run outside of one. I think the issue is that the network_error_and_txn_override.js override doesn't know the cursor the getMore command is being run on came from outside a multi-document transaction. (A contradiction of the third bullet point in my earlier comment.) I see the changes from b3c2613 as part of | ||||||||||||||||||||||||||||||||||||
| Comment by A. Jesse Jiryu Davis [ 09/Dec/20 ] | ||||||||||||||||||||||||||||||||||||
|
Sorry, I should've mentioned that it's the list_indexes_invalidation.js test I'm having trouble with. I noticed in the course of Would another means of fixing this be to call an additional dummy command after getMore, just to make sure it isn't the transaction's final command? | ||||||||||||||||||||||||||||||||||||
| Comment by Max Hirschhorn [ 09/Dec/20 ] | ||||||||||||||||||||||||||||||||||||
|
jesse, my recollection is that it should be safe to run getMore commands in the replica_sets_multi_stmt_txn_jscore_passthrough.yml test suite because we never expect a transient transaction error or network error to occur. It sounds like you're seeing failures when trying to run some tests that do getMores under that suite. I think it could be helpful to post some explicit steps to reproduce. There's ~30 tests which are tagged as requires_getmore that currently run (and pass) in the replica_sets_multi_stmt_txn_jscore_passthrough.yml test suite.
I also think the assertion is trying to express
|