Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-9506

Add debug_mode configuration support to test/format

    • 5
    • Storage Engines - 2023-01-10

      Summary
      The motivation behind this ticket is add connection debug configuration muchalike the timing_stress to test/format, to improve the test coverage of test/format. There are a few debug configurations that change how WiredTiger runs but should still remain correct, e.g. checkpoint_evict_page, eviction, evict_reposition.

      Acceptance Criteria (Definition of Done)
      This ticket will be completed once test/format can randomly turn on debug mode configurations and run test/format with those configurations. The developer will need to investigation at the current debug_mode configurations and add any interesting configurations that will increase test/format test coverage.

      Suggested Solution
      The solution will look muchalike the configure_timing_stress() function,

      /*
       * configure_timing_stress --
       *     Configure stressing settings.
       */
      static void
      configure_timing_stress(char *p, size_t max)
      {
          CONFIG_APPEND(p, ",timing_stress_for_test=[");
          if (GV(STRESS_AGGRESSIVE_SWEEP))
              CONFIG_APPEND(p, ",aggressive_sweep");
          if (GV(STRESS_CHECKPOINT))
              CONFIG_APPEND(p, ",checkpoint_slow");
          if (GV(STRESS_CHECKPOINT_PREPARE))
              CONFIG_APPEND(p, ",prepare_checkpoint_delay");
          if (GV(STRESS_CHECKPOINT_RESERVED_TXNID_DELAY))
              CONFIG_APPEND(p, ",checkpoint_reserved_txnid_delay");
          if (GV(STRESS_EVICT_REPOSITION))
              CONFIG_APPEND(p, ",evict_reposition");
          if (GV(STRESS_FAILPOINT_HS_DELETE_KEY_FROM_TS))
              CONFIG_APPEND(p, ",failpoint_history_store_delete_key_from_ts");
          if (GV(STRESS_HS_CHECKPOINT_DELAY))
              CONFIG_APPEND(p, ",history_store_checkpoint_delay");
          if (GV(STRESS_HS_SEARCH))
              CONFIG_APPEND(p, ",history_store_search");
          if (GV(STRESS_HS_SWEEP))
              CONFIG_APPEND(p, ",history_store_sweep_race");
          if (GV(STRESS_SPLIT_1))
              CONFIG_APPEND(p, ",split_1");
          if (GV(STRESS_SPLIT_2))
              CONFIG_APPEND(p, ",split_2");
          if (GV(STRESS_SPLIT_3))
              CONFIG_APPEND(p, ",split_3");
          if (GV(STRESS_SPLIT_4))
              CONFIG_APPEND(p, ",split_4");
          if (GV(STRESS_SPLIT_5))
              CONFIG_APPEND(p, ",split_5");
          if (GV(STRESS_SPLIT_6))
              CONFIG_APPEND(p, ",split_6");
          if (GV(STRESS_SPLIT_7))
              CONFIG_APPEND(p, ",split_7");
          CONFIG_APPEND(p, "]");
      }

            Assignee:
            jasmine.bi@mongodb.com Jasmine Bi
            Reporter:
            jie.chen@mongodb.com Jie Chen
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: