Commit Graph

306 Commits

Author SHA1 Message Date
Misha Tyulenev
662632bf21 SERVER-29792 upgrade / downgrade replica set tests for causal consistncy 2017-10-10 18:02:42 -04:00
Maria van Keulen
9e8cce334f SERVER-30131 Ensure collections on local have UUIDs 2017-10-09 19:13:46 -04:00
Maria van Keulen
9eba349099 Revert "SERVER-30131 Ensure collections on local have UUIDs"
This reverts commit 84690cb878.
2017-10-09 14:49:16 -04:00
Maria van Keulen
84690cb878 SERVER-30131 Ensure collections on local have UUIDs 2017-10-09 13:28:52 -04:00
Esha Maharishi
6787c13d49 SERVER-30793 merge setFeatureCompatibilityVersion and _configsvrSetFeatureCompatibilityVersion 2017-10-09 10:24:55 -04:00
Louis Williams
17a18ae641 SERVER-31405 Remove redundant startup warning for incomplete upgrade/downgrade 2017-10-06 13:21:10 -04:00
Tess Avitabile
cb9f7cdcb7 SERVER-30731 Add expr support in MatchExpression outside of aggregation 2017-10-05 16:47:26 -04:00
Jonathan Reams
08896eec45 SERVER-31388 Fix race in listing collections in mixed_storage_version_replication.js 2017-10-05 15:47:51 -04:00
Justin Seyster
edc3dfce51 SERVER-31268 Make updates_in_heterogeneous_repl_set.js more robust.
The updates_in_heterogeneous_repl_set.js test wants to call stepUp()
on each of its replica set members to ensure that each one gets an
opportunity to handle inserts and updates. However, we found that the
stepUp()-triggered election was occasionally failing, because even
though a call to awaitReplication() ensured that all members were
caught up on their oplogs, some members were not aware that their
peers were caught up.

The new awaitNodesAgreeOnOpTime() function uses an assert.soon() to
wait until all the members are caught up on their peers' status, so
that the election always succeeds.
2017-10-04 19:37:10 -04:00
Louis Williams
8e53b1bef7 SERVER-31205 Forward-port test that confirms a new mongos cannot talk to an old mongod 2017-10-04 16:35:17 -04:00
Louis Williams
e035926812 SERVER-31209 Persist targetVersion in FCV document to indicate an upgrade/downgrade in progress. 2017-10-03 15:02:29 -04:00
Esha Maharishi
a7efca41eb SERVER-25623 addShard should fail if shard's binary version < the cluster's featureCompatibilityVersion
move add_invalid_shard.js to jstests/multiVersion since it starts a 'last-stable' mongod
2017-10-02 17:06:13 -04:00
Louis Williams
0309fa8091 Revert "SERVER-31209 Persist targetVersion in FCV document to indicate an upgrade/downgrade in progress."
This reverts commit b0b9986678.
2017-09-28 16:40:49 -04:00
Louis Williams
b0b9986678 SERVER-31209 Persist targetVersion in FCV document to indicate an upgrade/downgrade in progress. 2017-09-28 11:10:05 -04:00
Misha Tyulenev
eeee1e2b64 SERVER-30977 add clusterTime to standalone replica set 2017-09-27 23:23:46 -04:00
Esha Maharishi
62fe0f89e9 SERVER-30511 call checkUUIDsConsistentAcrossCluster() before shutting down a ShardingTest 2017-09-25 11:27:23 -04:00
Louis Williams
daefad8112 SERVER-31110 Startup warning for incomplete featureCompatibilityVersion upgrade/downgrade 2017-09-21 15:17:44 -04:00
Louis Williams
4725cefbcb Revert "SERVER-29428 Fail gracefully in mongod when featureCompatibilityVersion is incompatibile"
This reverts commit b35c6fc183.
2017-09-21 13:46:58 -04:00
Louis Williams
532ab35430 SERVER-30993 Always remove UUIDs when setting featureCompatibilityVersion to 3.4 2017-09-21 13:18:54 -04:00
Max Hirschhorn
0195f34a7a SERVER-30679 Integrate causallyConsistentReads into SessionOptions. 2017-09-20 14:15:00 -04:00
Louis Williams
b35c6fc183 SERVER-29428 Fail gracefully in mongod when featureCompatibilityVersion is incompatibile 2017-09-19 15:55:50 -04:00
Kaloian Manassiev
be0ade981b SERVER-30429 Fix broken lint 2017-09-15 18:24:55 -04:00
Louis Williams
ca0e39792d SERVER-30429 Multiversion upgrade/downgrade testing for UUIDs 2017-09-15 16:09:48 -04:00
Justin Seyster
390e5f47f0 SERVER-30705 Add $v field for update semantics in oplog updates.
With the new UpdateNodes class hierarchy, there are two code paths for
applying an update to a document that have slightly different
semantics. The order of fields in the resulting document can vary
depending on which code path is used to apply an update. A difference
in ordering between documents in a replica set is considered a
"mismatch," so we need to ensure that secondaries always apply updates
using the same update system that the primary uses.

When an update executes as part of the application of an oplog entry,
the update is now allowed to have a $v field, which allows it to
specify which semantics were used by the operation that we are
replicating by applying the entry.  When the primary uses the new
semantics (because it is a 3.6 mongod with featureCompatibilityVersion
set to 3.6), it includes {$v: 1} in the oplog's update document to
indicate that the secondary should apply with the newer 'UpdateNode'
semantics.

There are two other places where we need this behavior:
  1) In role_graph_update.cpp, where the handleOplogUpdate observer
  needs to update its in-memory BSON representation of a role to
  reflect an update in the admin database and
  2) in the applyOps command, which is used for testing how oplog
  entries get applied.

Both these code paths set the fromOplogApplication flag, which
replaces the old fromReplication flag, and they also gain behavior
that used to be exclusive to oplog applications from
replication. (Specifically, they skip update validation checks, which
should have already passed before the oplog entry was created.)
2017-09-14 12:14:54 -04:00
Justin Seyster
c5e038cb5e SERVER-30988 Fix misleading $jsonSchema error.
My original implementation of the $jsonSchema ban included a Status
error messaged that assumed the only reason to disallow $jsonSchema is
because of a featureCompatibilityVersion < 3.6. That assumption will
not be true, so this patch replaces that error with a generic
error. Code paths that include the $jsonSchema check because of the
featureCompatibilityVersion now rewrites this generic error with an
error that includes a link to the relevant documentation.

There is a ticket open to enable $jsonSchema in more places:
SERVER-30987.
2017-09-12 17:34:56 -04:00
Benety Goh
27b73dd061 SERVER-30371 added js tests for renaming a collection across databases 2017-09-05 20:21:26 -04:00
Justin Seyster
edfcb9cfbe SERVER-29592 Mark JSON Schema FCV tests as [requires_persistence].
This should fix the
json_schema_initial_sync_with_feature_compatibility failures in the
inMemory configurations.
2017-09-01 16:56:17 -04:00
Justin Seyster
ed619087e8 jseyster/json-schema-feature-compatibility-2
If a user updates a 3.4 node to 3.6 but keeps the feature
compatibility version at 3.4, it should remain possible to be in a
replica set with 3.4 nodes or even to downgrade back to 3.4. To that
end, we ensure that is not possible to create a collection validator
with a $jsonSchema expression unless the feature compatibility version
is 3.6. A $jsonSchema validator would not replicate correctly to a 3.4
node, and its existence in the database would prevent a downgrade to
3.4.
2017-08-31 15:44:35 -04:00
William Schultz
45d5958868 SERVER-29431 Add library for multi version initial sync tests 2017-08-23 17:19:47 -04:00
Misha Tyulenev
eacef2db99 SERVER-29987 pass afterClusterTime to all commands 2017-08-15 11:33:07 -04:00
Maria van Keulen
2de7b036fd SERVER-30500 do not assign UUIDs to system.indexes on collMod/upgrade 2017-08-09 10:22:00 -04:00
Maria van Keulen
b2ef59c4fa SERVER-29370 Update UUIDs when featureCompatibilityVersion is changed
This patch ensures collections have UUIDs when
featureCompatibilityVersion is 3.6 and collections do not have UUIDs
when featureCompatibilityVersion is 3.4 (or below).
2017-07-25 17:29:17 -04:00
Misha Tyulenev
42a1339774 SERVER-30038 rename $logicalTime to $clusterTime 2017-07-11 12:47:24 -04:00
Sara Golemon
3ee00dd0e8 SERVER-15194 Refactor base64::decode Implementation
Unrevert 4b222edf45 and
Fix random base64 generation in test helper

The good news is that the changes to base64::decode()
did exactly what they were intended to do.
The bad news is that data_generators.js was producing
invalid base64 sequences when (length % 4) == 1.
2017-07-07 11:42:28 -04:00
Nathan Myers
c63465a42e SERVER-29405 delay deleting orphaned shard chunks
When deleting the donor range after migrating a chunk off of a shard,
the range deleter will schedule the deletion at some time in the future,
according to a server parameter orphanCleanupDelaySecs, which defaults
to 900, or 15 minutes.  It does not delay range deletions preparatory to
migrating a range in, and does not put off deleting the donor range if
the moveChunk command has set the option _waitForDelete.

The file jstests/sharding/write_commands_sharding_state.js had CR (0x0D)
line endings, which made the patch fail lint.  The substantive changes
in the file were to add "_waitForDelete" options to the moveChunk
commands.
2017-06-30 15:50:39 -04:00
Esha Maharishi
6dd8ca2e84 SERVER-29759 on _configsvrSetFeatureCompatibilityVersion=3.6, generate and persist UUIDs for existing sharded collections 2017-06-26 17:33:28 -04:00
Jack Mulrow
063f30fab5 SERVER-27722 write tests for upgrade/downgrade scenario for logical clock 2017-06-23 13:45:50 -04:00
Tess Avitabile
19fb2eca83 SERVER-29798 Ensure 3.4 secondary replicates featureCompatibilityVersion document in set_feature_compatibility_version.js 2017-06-22 17:13:51 -04:00
Benety Goh
615183c51b SERVER-29277 removed dropDatabase from list of ops to use in workload for mixed_storage_version_replication.js 2017-06-22 15:54:06 -04:00
Benety Goh
769afdf13a SERVER-29277 fix mixed_storage_version_replication.js to always pass string to Mongo.getDB() 2017-06-22 14:44:36 -04:00
Tess Avitabile
67500efdc1 SERVER-29350 Bump featureCompatibilityVersion to 3.6 2017-06-09 15:05:04 -04:00
Robert Guo
7b112f71fe SERVER-27549 Better check for when a server has shut down 2017-05-30 14:51:48 -04:00
Robert Guo
df10adbfe5 SERVER-27549 Print message on intentional server crash. 2017-05-23 15:18:12 -04:00
Benety Goh
bcf3d946e6 SERVER-28100 moved common test code for all 3 tags.js tests into a test library under replsets/libs/ 2017-05-16 15:15:33 -04:00
Spencer T Brody
765d5393f6 SERVER-28487 call awaitNodesAgreeOnPrimary in upgradePrimary helper in multi_rs.js 2017-05-04 17:46:39 -04:00
Siyuan Zhou
4680351e3f SERVER-26848 Exit catchup mode when not syncing more data.
This reverts commit c08590a6ac.
2017-04-20 22:36:43 -04:00
Robert Guo
c08590a6ac Revert "SERVER-26848 Exit catchup mode when not syncing more data."
This reverts commit d0c851e2f4.
2017-04-20 10:58:57 -04:00
Benety Goh
53907c0094 SERVER-28815 multi_rs.js steps down primary without {force: true} 2017-04-19 18:51:56 -04:00
Siyuan Zhou
d0c851e2f4 SERVER-26848 Exit catchup mode when not syncing more data. 2017-04-19 18:11:10 -04:00
Mathias Stearn
4cefd9e258 SERVER-28622 Make readmode_compatibility.js work without explicit --storageEngine
This makes `resmoke.py --suite=multiversion` work locally with no extra flags.
2017-04-12 08:57:12 -04:00