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

Enable background refreshing of the logical session cache during the fuzzer test suites

    • Fully Compatible
    • v3.6
    • TIG 2018-03-26

      The "race-y" behavior is likely beneficial for the fuzzer's ability to find concurrency-related bugs around sessions. We should therefore enable the background refreshing of the logical session cache by explicitly setting mongod_options.set_parameters.disableLogicalSessionCacheRefresh=false in the following test suites:

      • jstestfuzz.yml
      • jstestfuzz_replication.yml
      • jstestfuzz_replication_initsync.yml
      • jstestfuzz_replication_resync.yml
      • jstestfuzz_replication_session.yml
      • jstestfuzz_sharded.yml
      • jstestfuzz_sharded_causal_consistency.yml
      • jstestfuzz_sharded_continuous_stepdown.yml
      • jstestfuzz_sharded_session.yml

      The following patch to the jstestfuzz_sharded.yml test suite would have immediately caught SERVER-33376 (as would running any sharding-related test suite that didn't require the use of the of the "refreshLogicalSessionCacheNow" command). Thanks to esha.maharishi for determining SERVER-33376 was missed due to how all MongoDB deployments started by both resmoke.py and the mongo shell specify --setParameter=disableLogicalSessionCacheRefresh=true.

      Unable to find source-code formatter for language: diff. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml
      diff --git a/buildscripts/resmokeconfig/suites/jstestfuzz_sharded.yml b/buildscripts/resmokeconfig/suites/jstestfuzz_sharded.yml
      index 94b96613e2..7de220b60b 100644
      --- a/buildscripts/resmokeconfig/suites/jstestfuzz_sharded.yml
      +++ b/buildscripts/resmokeconfig/suites/jstestfuzz_sharded.yml
      @@ -34,6 +34,7 @@ executor:
           mongod_options:
             set_parameters:
               enableTestCommands: 1
      +        disableLogicalSessionCacheRefresh: false
               numInitialSyncAttempts: 1
               writePeriodicNoops: 1
             verbose: ''
      
      # The LogicalSessionCache does automatic background refreshes in the server. This is
      # race-y for tests, since tests trigger their own immediate refreshes instead. Turn off
      # background refreshing for tests. Set in the .yml file to override this.
      if "disableLogicalSessionCacheRefresh" not in suite_set_parameters:
          suite_set_parameters["disableLogicalSessionCacheRefresh"] = True
      

      https://github.com/mongodb/mongo/blob/r3.6.2/buildscripts/resmokelib/core/programs.py#L48-L52
      https://github.com/mongodb/mongo/blob/r3.6.2/src/mongo/shell/servers.js#L1059-L1060

            Assignee:
            ian@mongodb.com Ian Whalen (Inactive)
            Reporter:
            max.hirschhorn@mongodb.com Max Hirschhorn
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: