diff options
author | Max Hirschhorn <max.hirschhorn@mongodb.com> | 2017-08-30 11:15:13 -0400 |
---|---|---|
committer | Max Hirschhorn <max.hirschhorn@mongodb.com> | 2017-08-30 11:15:13 -0400 |
commit | 03055999749ed577af14d5d9cc969f616b4c3196 (patch) | |
tree | bc226e0a3cf9a897a626b3d1a118e9c24367e040 | |
parent | 45d4ddb4aaaf5b0bbe36442659c76be494a92af0 (diff) | |
download | mongo-03055999749ed577af14d5d9cc969f616b4c3196.tar.gz |
SERVER-30686 Add retryable_writes_jscore_passthrough_WT task.
-rw-r--r-- | buildscripts/resmokeconfig/suites/retryable_writes_jscore_passthrough.yml | 17 | ||||
-rw-r--r-- | etc/evergreen.yml | 97 | ||||
-rw-r--r-- | jstests/core/currentop.js | 19 |
3 files changed, 91 insertions, 42 deletions
diff --git a/buildscripts/resmokeconfig/suites/retryable_writes_jscore_passthrough.yml b/buildscripts/resmokeconfig/suites/retryable_writes_jscore_passthrough.yml index 4637156aae2..a319397b83b 100644 --- a/buildscripts/resmokeconfig/suites/retryable_writes_jscore_passthrough.yml +++ b/buildscripts/resmokeconfig/suites/retryable_writes_jscore_passthrough.yml @@ -9,6 +9,16 @@ selector: - jstests/core/dbadmin.js - jstests/core/opcounters_write_cmd.js - jstests/core/read_after_optime.js + # TODO SERVER-30325: The following tests perform many write operations and cause the Evergreen + # task to time out due to performance issues with tracking the transaction's progress. + - jstests/core/bulk_insert.js + - jstests/core/geo2.js + - jstests/core/geo3.js + - jstests/core/geo_s2explain.js + - jstests/core/geo_s2twofields.js + - jstests/core/insert1.js + - jstests/core/remove6.js + - jstests/core/removea.js executor: config: @@ -27,6 +37,13 @@ executor: # validating the entire contents of the collection. - class: CheckReplOplogs - class: CheckReplDBHash + shell_options: + global_vars: + TestData: + # TODO SERVER-30325: We temporarily ignore any dbhash mismatches from the + # "config.transactions" collection. + excludedDBsFromDBHash: + - config - class: ValidateCollections - class: CleanEveryN n: 20 diff --git a/etc/evergreen.yml b/etc/evergreen.yml index b7cc97bddd0..6d3e0857b50 100644 --- a/etc/evergreen.yml +++ b/etc/evergreen.yml @@ -373,7 +373,7 @@ functions: script: | set -o errexit set -o verbose - if [ "${build_cdriver|}" = "true" ]; then + if [ "${build_cdriver|}" = "true" ]; then CDRIVER_VERSION=1.6.3 rm -rf mongo-c-driver-$CDRIVER_VERSION rm -rf mongo-c-driver @@ -873,7 +873,7 @@ functions: ${compile_env|} ${python|/opt/mongodbtoolchain/v2/bin/python2} buildscripts/runiossim.py --test "build/debug/mongo/client/embedded/mongo_embedded_capi_test" ${compile_env|} ${python|/opt/mongodbtoolchain/v2/bin/python2} buildscripts/runiossim.py --test "build/debug/mongo/client/embedded/mongo_embedded_transport_test" fi - + "do multiversion setup" : command: shell.exec params: @@ -3528,25 +3528,25 @@ tasks: run_multiple_jobs: true - <<: *task_template - name: causally_consistent_jscore_passthrough_WT + name: session_jscore_passthrough_WT depends_on: - name: jsCore_WT commands: - func: "do setup" - func: "run tests" vars: - resmoke_args: --suites=causally_consistent_jscore_passthrough --storageEngine=wiredTiger + resmoke_args: --suites=session_jscore_passthrough --storageEngine=wiredTiger run_multiple_jobs: true - <<: *task_template - name: session_jscore_passthrough_WT + name: causally_consistent_jscore_passthrough_WT depends_on: - name: jsCore_WT commands: - func: "do setup" - func: "run tests" vars: - resmoke_args: --suites=session_jscore_passthrough --storageEngine=wiredTiger + resmoke_args: --suites=causally_consistent_jscore_passthrough --storageEngine=wiredTiger run_multiple_jobs: true - <<: *task_template @@ -3572,6 +3572,17 @@ tasks: run_multiple_jobs: true - <<: *task_template + name: retryable_writes_jscore_passthrough_WT + depends_on: + - name: jsCore_WT + commands: + - func: "do setup" + - func: "run tests" + vars: + resmoke_args: --suites=retryable_writes_jscore_passthrough --storageEngine=wiredTiger + run_multiple_jobs: true + +- <<: *task_template name: watchdog commands: - func: "do setup" @@ -5558,13 +5569,16 @@ buildvariants: - name: jsCore_decimal - name: jsCore_decimal_WT - name: jsonSchema + - name: master_slave + - name: master_slave_WT + - name: master_slave_jscore_passthrough + - name: master_slave_jscore_passthrough_WT - name: mmap - name: mongosTest - name: noPassthrough - name: noPassthrough_WT - name: noPassthroughWithMongod - name: noPassthroughWithMongod_WT - - name: session_jscore_passthrough_WT - name: bulk_gle_passthrough - name: bulk_gle_passthrough_WT - name: parallel @@ -5643,10 +5657,10 @@ buildvariants: - name: replica_sets_kill_secondaries_jscore_passthrough_WT distros: - windows-64-vs2015-large - - name: master_slave - - name: master_slave_WT - - name: master_slave_jscore_passthrough - - name: master_slave_jscore_passthrough_WT + - name: retryable_writes_jscore_passthrough_WT + distros: + - windows-64-vs2015-large + - name: session_jscore_passthrough_WT - name: sharding distros: - windows-64-vs2015-large @@ -6110,6 +6124,7 @@ buildvariants: - name: replica_sets_jscore_passthrough - name: replica_sets_jscore_passthrough_WT - name: replica_sets_kill_secondaries_jscore_passthrough_WT + - name: retryable_writes_jscore_passthrough_WT - name: serial_run - name: serial_run_WT - name: session_jscore_passthrough_WT @@ -6239,7 +6254,7 @@ buildvariants: build_cdriver: true cdriver_configure_flags: --host arm-apple-darwin CC="$(xcrun -f --sdk iphoneos clang)" CXX="$(xcrun -f --sdk iphoneos clang++)" CPPFLAGS="-isysroot $(xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=10.2 -arch arm64 -fembed-bitcode" CFLAGS="-isysroot $(xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=10.2 -arch arm64 -fembed-bitcode" CXXFLAGS="-isysroot $(xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=10.2 -arch arm64 -fembed-bitcode" LDFLAGS="-miphoneos-version-min=10.2 -arch arm64" compile_env: DEVELOPER_DIR=/Applications/Xcode8.3.app - compile_flags: -j$(sysctl -n hw.logicalcpu) --dbg=on --disable-warnings-as-errors --js-engine=none --variables-files=etc/scons/xcode_ios.vars CPPPATH="$(dirname $PWD)/mongo-c-driver/install/include/libbson-1.0 $(dirname $PWD)/mongo-c-driver/install/include/libmongoc-1.0" LIBPATH="$(dirname $PWD)/mongo-c-driver/install/lib" all + compile_flags: -j$(sysctl -n hw.logicalcpu) --dbg=on --disable-warnings-as-errors --js-engine=none --variables-files=etc/scons/xcode_ios.vars CPPPATH="$(dirname $PWD)/mongo-c-driver/install/include/libbson-1.0 $(dirname $PWD)/mongo-c-driver/install/include/libmongoc-1.0" LIBPATH="$(dirname $PWD)/mongo-c-driver/install/lib" all python: python2.7 disable_unit_tests: true tasks: @@ -6256,7 +6271,7 @@ buildvariants: compile_env: DEVELOPER_DIR=/Applications/Xcode8.3.app compile_flags: -j$(sysctl -n hw.logicalcpu) --dbg=on --disable-warnings-as-errors --js-engine=none --variables-files=etc/scons/xcode_ios_sim.vars CPPPATH="$(dirname $PWD)/mongo-c-driver/install/include/libbson-1.0 $(dirname $PWD)/mongo-c-driver/install/include/libmongoc-1.0" LIBPATH="$(dirname $PWD)/mongo-c-driver/install/lib" all python: python2.7 - disable_unit_tests: true + disable_unit_tests: true enable_ios_sim_tests: true tasks: - name: compile_all @@ -6403,6 +6418,11 @@ buildvariants: - name: jstestfuzz_sharded_WT - name: jstestfuzz_replication_initsync - name: jstestfuzz_replication_initsync_WT + - name: master_slave + - name: master_slave_WT + - name: master_slave_auth + - name: master_slave_jscore_passthrough + - name: master_slave_jscore_passthrough_WT - name: mmap - name: mongosTest - name: multiversion @@ -6418,7 +6438,6 @@ buildvariants: - name: parallel_compatibility - name: parallel_compatibility_WT - name: read_concern_linearizable_passthrough - - name: session_jscore_passthrough_WT distros: - rhel62-large - name: read_concern_linearizable_passthrough_WT @@ -6473,14 +6492,13 @@ buildvariants: - name: replica_sets_kill_secondaries_jscore_passthrough_WT distros: - rhel62-large - - name: master_slave - - name: master_slave_WT - - name: master_slave_auth - - name: master_slave_jscore_passthrough - - name: master_slave_jscore_passthrough_WT + - name: retryable_writes_jscore_passthrough_WT + distros: + - rhel62-large - name: rlp - name: rlp_WT - name: sasl + - name: session_jscore_passthrough_WT - name: sharded_collections_jscore_passthrough - name: sharded_collections_jscore_passthrough_WT - name: sharding @@ -6610,6 +6628,11 @@ buildvariants: - name: jsCore_minimum_batch_size_WT - name: jsCore_op_query - name: jsCore_op_query_WT + - name: master_slave + - name: master_slave_WT + - name: master_slave_auth + - name: master_slave_jscore_passthrough + - name: master_slave_jscore_passthrough_WT - name: mmap - name: mongosTest - name: multiversion @@ -6645,12 +6668,9 @@ buildvariants: - name: replica_sets_resync_static_jscore_passthrough - name: replica_sets_resync_static_jscore_passthrough_WT - name: replica_sets_kill_secondaries_jscore_passthrough_WT - - name: master_slave - - name: master_slave_WT - - name: master_slave_auth - - name: master_slave_jscore_passthrough - - name: master_slave_jscore_passthrough_WT + - name: retryable_writes_jscore_passthrough_WT - name: sasl + - name: session_jscore_passthrough_WT - name: sharded_collections_jscore_passthrough - name: sharded_collections_jscore_passthrough_WT - name: sharding @@ -8662,6 +8682,9 @@ buildvariants: - name: jstestfuzz_concurrent_sharded_WT - name: jstestfuzz_replication_WT - name: jstestfuzz_sharded_WT + - name: master_slave_WT + - name: master_slave_auth + - name: master_slave_jscore_passthrough - name: mongosTest - name: noPassthrough - name: noPassthroughWithMongod @@ -8673,9 +8696,7 @@ buildvariants: - name: replica_sets_auth - name: replica_sets_pv0 - name: replica_sets_jscore_passthrough - - name: master_slave_WT - - name: master_slave_auth - - name: master_slave_jscore_passthrough + - name: retryable_writes_jscore_passthrough_WT - name: rlp - name: sasl - name: session_jscore_passthrough_WT @@ -9106,6 +9127,11 @@ buildvariants: - name: jsCore_op_query - name: jsCore_op_query_WT - name: jsonSchema + - name: master_slave + - name: master_slave_WT + - name: master_slave_auth + - name: master_slave_jscore_passthrough + - name: master_slave_jscore_passthrough_WT - name: mmap - name: mongosTest - name: multiversion @@ -9141,11 +9167,7 @@ buildvariants: - name: replica_sets_resync_static_jscore_passthrough - name: replica_sets_resync_static_jscore_passthrough_WT - name: replica_sets_kill_secondaries_jscore_passthrough_WT - - name: master_slave - - name: master_slave_WT - - name: master_slave_auth - - name: master_slave_jscore_passthrough - - name: master_slave_jscore_passthrough_WT + - name: retryable_writes_jscore_passthrough_WT - name: sasl - name: session_jscore_passthrough_WT - name: sharded_collections_jscore_passthrough @@ -9290,6 +9312,11 @@ buildvariants: - name: jsCore_op_query - name: jsCore_op_query_WT - name: jsonSchema + - name: master_slave + - name: master_slave_WT + - name: master_slave_auth + - name: master_slave_jscore_passthrough + - name: master_slave_jscore_passthrough_WT - name: mmap - name: mongosTest - name: multiversion @@ -9325,11 +9352,7 @@ buildvariants: - name: replica_sets_resync_static_jscore_passthrough - name: replica_sets_resync_static_jscore_passthrough_WT - name: replica_sets_kill_secondaries_jscore_passthrough_WT - - name: master_slave - - name: master_slave_WT - - name: master_slave_auth - - name: master_slave_jscore_passthrough - - name: master_slave_jscore_passthrough_WT + - name: retryable_writes_jscore_passthrough_WT - name: sasl - name: session_jscore_passthrough_WT - name: sharded_collections_jscore_passthrough diff --git a/jstests/core/currentop.js b/jstests/core/currentop.js index d1e360c12c0..a27fbbd47e2 100644 --- a/jstests/core/currentop.js +++ b/jstests/core/currentop.js @@ -16,11 +16,20 @@ // Wait until the write appears in the currentOp output reporting that it is waiting for a lock. assert.soon( function() { - return db.currentOp({ - ns: coll.getFullName(), - "locks.Global": "w", - "waitingForLock": true, - }).inprog.length === 1; + const ops = db.currentOp({ + $and: [ + {"locks.Global": "w", waitingForLock: true}, + // Depending on whether CurOp::setNS_inlock() has been called, the "ns" field + // may either be the full collection name or the command namespace. + { + $or: [ + {ns: coll.getFullName()}, + {ns: db.$cmd.getFullName(), "command.insert": coll.getName()} + ] + } + ] + }); + return ops.inprog.length === 1; }, function() { return "Failed to find blocked insert in currentOp() output: " + tojson(db.currentOp()); |