[SERVER-77799] Test various error classes on mongos Created: 05/Jun/23  Updated: 30/Jan/24  Resolved: 30/Jan/24

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: Vishnu Kaushik Assignee: Sean Zimmerman
Resolution: Gone away Votes: 0
Labels: milestone-2
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Replication
Sprint: Repl 2023-10-16, Repl 2023-11-13, Repl 2023-11-27
Participants:

 Description   

Test that that mongos can handle the error classes listed in the document (see comments).



 Comments   
Comment by Sean Zimmerman [ 30/Jan/24 ]

I audited our existing testing and feel that our retryable writes testing is adequate. We have unit tests to ensure that stmtId is correctly attached to subbatches that are sent to mongod (where actual retryable writes behavior lives). Our sharded bulkwrite concurrency suite will also include internal_transactions_unsharded.js which does retryable writes against mongos. The only thing I could see we might be missing coverage for is bulkWrite + resharding but I don't think there is any special behavior there like for chunk migrations.

Comment by Kaitlin Mahar [ 20/Nov/23 ]

I am tabling this in favor of picking up some higher priority work. The work left here is to look more into retryable writes testing and identify testing gaps. Adding some relevant Jira discussions in comments

Comment by Kaitlin Mahar [ 15/Nov/23 ]

From my investigation so far I think we mostly have this covered perhaps with the exception of retryable errors. Notes so far (will add more on retryable errors tomorrow):

  • Write concern errors: Vishnu added WCE reporting support and unit tests in SERVER-76954. Additional tests for WCE + retryable timeseries update were added in SERVER-80918. SERVER-81280 should handle testing WCE for FLE once it is unblocked and SERVER-81261 should handle testing WCE for updateOne w/o shard key once it is unblocked.
  • Targeting errors: SERVER-72787 added some initial targeting tests. SERVER-73281 added some additional coverage. SERVER-81003 covered testing targeting errors in transactions.
  • Mongos local errors: We added unit testing for this in SERVER-80481.
  • Would Change Owning Shard errors: Testing for this is covered in SERVER-72793.
  • Remote errors: SERVER-80174 covered handling and testing those.
  • Per-statement errors: we have a lot of coverage of these already both in unit tests and JS tests that has been added as we've done individual tickets.
  • Staleness errors: SERVER-77778 describes the state of testing there. Per that ticket, we still need to test the refresh behavior.
Generated at Thu Feb 08 06:36:37 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.