Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-87791

Add support for reporting semantic correctness issues to Antithesis and use it in multi_statement_transaction*.js FSM workloads

    • Type: Icon: Engineering Test Engineering Test
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Testing Infrastructure
    • Labels:
      None
    • Replication
    • 135

      Our Antithesis testing uses the JavaScripts tests as a workload generator while replica set elections, data balancing, etc. are running in the background. JavaScript test assertion failures are ignored due to the testing infrastructure not able to retry operations sufficiently in the Antithesis environment. Some JavaScript tests exercise semantic correctness properties of the database where their test assertions are always valid.

      1. We should expose a way to propagate high-value test assertion failures to Antithesis. One idea would be to introduce a function like

      function expectAlwaysValidAndReportToAntithesis(func) {
          try {
              func()
          } catch (e) {
              print("ANTITHESIS-COMMAND: un-ignore");
              throw e;
          }
      }
      

      2. Audit and modify test assertions in the multi_statement_transaction*.js FSM workloads to wrap test assertions which are always valid in the function from (1). Here's an incomplete list of some relevant test assertions.


      On failure the mongo shell would write to its stdout a message resembling the following.

      [fsm_workload_test:multi_statement_transaction_simple] [tid:0] ANTITHESIS-COMMAND: un-ignore
      

            Assignee:
            backlog-server-repl [DO NOT USE] Backlog - Replication Team
            Reporter:
            max.hirschhorn@mongodb.com Max Hirschhorn
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated: