Navigation

3.4 Changelog

3.4.2 Changelog

Sharding

  • SERVER-26562 Move CommitChunkMigration command implementation into a Catalog function and unit test it
  • SERVER-26785 rewrite addshard2.js to be able to unblacklist it from the last_stable suite
  • SERVER-26791 move/split/mergeChunk commands do a full metadata refresh on the shard
  • SERVER-26903 ShardingTest is failing non-retriable writes when the primary steps down because the stepdown suite turns the electionTimeoutMillis down from 10,000 ms to 5,000 ms
  • SERVER-27146 Enforce maxStalenessSeconds >= 90
  • SERVER-27258 A v3.4 config server can crash with a core dump if it gets an unsupported shard key from mongo S.
  • SERVER-27321 Rename ScopedChunkManager::getExisting to refreshAndGet
  • SERVER-27364 Remove DBConfig::setPrimary
  • SERVER-27366 Remove DBConfig::enableSharding
  • SERVER-27381 Remove DBConfig::dropDatabase
  • SERVER-27393 Balancer taking 100% CPU due to large number of dropped sharded collections
  • SERVER-27419 Move cluster ‘drop’ command to a separate file
  • SERVER-27428 MigrationChunkClonerSourceLegacy’s unit-tests do not wait for the onCommand handler thread to complete
  • SERVER-27460 RouterStageMerge::kill() can crash during mongos shutdown
  • SERVER-27466 move transitionToPrimaryHangBeforeInitializingConfigDatabase to before taking the global exclusive lock
  • SERVER-27473 Remove writes from DBConfig
  • SERVER-27480 Get rid of ConfigServer class
  • SERVER-27510 Compare only epochs instead of full chunk versions in CollectionMetadata::checkChunkIsValid()
  • SERVER-27526 Get rid of all non-metadata usages of DBConfig::isShardingEnabled
  • SERVER-27556 Cleanup sharding request processing code
  • SERVER-27613 Remove unused ‘chunkVersion’ field sent in splitChunk command
  • SERVER-27667 Get rid of the sharding Request class
  • SERVER-27726 Split ShardingCatalogManagerImpl into multiple .cpp files by category of operation
  • SERVER-27736 DBConfig should not store unsharded collections

Replication

  • SERVER-23759 shutting down a node while replication is initializing can crash
  • SERVER-25860 Flatten / optimize fixup_info
  • SERVER-26528 Add additional logging when sync source is changed or cleared
  • SERVER-26773 two_initsync.js should check that inserts succeed
  • SERVER-26945 master-slave ReplSource::resyncDrop should not assume database name obtained from listDatabases result exists locally
  • SERVER-26951 remove or improve replset9.js
  • SERVER-27046 race between CollectionCloner::_findCallback and CollectionCloner::_insertDocuments
  • SERVER-27050 Ensure upstream node doesn’t roll back after checking minvald
  • SERVER-27052 Add asynchronous operation support to DataReplicator
  • SERVER-27056 Don’t enforce data freshness for step-up command
  • SERVER-27079 DataReplicator should wait for last oplog fetcher to finish before starting next initial sync attempt
  • SERVER-27118 Default shutdown command’s ‘timeoutSecs’ argument to 10 seconds
  • SERVER-27123 Only update commit point via spanning tree
  • SERVER-27125 Arbiters in pv1 should vote no in elections if they can see a healthy primary of equal or greater priority to the candidate
  • SERVER-27154 replSetRequestVotes command should wait for durability
  • SERVER-27155 replSetRequestVotes records dryRun votes as real
  • SERVER-27157 replSetRequestVotes doesn’t synchronize between processing and recording request
  • SERVER-27216 Increase catchup timeout to 300 seconds in catchup.js
  • SERVER-27231 add failpoint to turn off re-evaluating sync sources, for jstests that manipulate chaining
  • SERVER-27282 Clean up and fix bugs in RS rollback error handling
  • SERVER-27295 always set slaveOk to true on remote commands in the old initial sync
  • SERVER-27301 converted OpObserver into an interface. ServiceContext should always return a valid OpObserver implementation.
  • SERVER-27323 Use stopOplogFetcher failpoint instead of rsSyncApplyStop failpoint in write_concern_after_stepdown_and_stepup.js
  • SERVER-27352 Fix stepdown command in double_rollback.js
  • SERVER-27365 reconfig_without_increased_queues.js should initiate node 2 of its replicaset with priority 0
  • SERVER-27397 Disable OplogFetcher sync source re-evaluation during initial sync
  • SERVER-27409 zbigMapReduce.js should use a write concern for inserts so it does not roll over its oplog
  • SERVER-27446 operation_latency_histogram.js fails in initial sync passthrough due to reads performed by the repl system
  • SERVER-27461 Retry connecting to shut down primary until failure in shutdown_primary.js
  • SERVER-27468 Do not run dynamic initial sync passthroughs on 3dot2 initial sync variant
  • SERVER-27523 geo_s2cursorlimitskip.js fails in initial sync passthrough due to reads performed by the repl system
  • SERVER-27544 shutdown_primary.js shouldn’t try to disable rsSyncStopApply failpoint on primary
  • SERVER-27582 lastVote is not properly initialized
  • SERVER-27583 SyncSourceFeedback should be shut down outside ReplicationCoordinatorExternalStateImpl lock
  • SERVER-27611 DatabaseCloner::shutdown() does not shut down CollectionCloner
  • SERVER-27624 SyncSourceFeedback should check for shutdown before setting _reporter
  • SERVER-27656 Ensure node 0 is not primary during reconfig in last_vote.js
  • SERVER-27657 last_vote.js should wait for reconfig to reach all nodes before continuing
  • SERVER-27677 CollectionBulkLoader::_releaseResources() should ensure there is a Client available
  • SERVER-27678 CollectionCloner should call _finishCallback at most once
  • SERVER-27680 Make bgsync check stopOplogFetcher failpoint before scheduling new OplogFetcher
  • SERVER-27712 Do not specify _id field in user_defined_roles_on_secondaries.js
  • SERVER-27741 fix race in DataReplicatorTest::DataReplicatorResetsOnCompletionCallbackFunctionPointerUponCompletion
  • SERVER-27775 fix race in collection_cloner_test CollectionClonerTest::CollectionClonerCannotBeRestartedAfterPreviousFailure

Query

  • SERVER-24027 The planner does not consider reversing index scan direction in order to obtain a SORT_MERGE plan
  • SERVER-26734 indexStats action is not sufficient privileges for $indexStats operator
  • SERVER-27042 Fix and modernize currentop.js
  • SERVER-27438 Legacy query via mongos drops $comment
  • SERVER-27449 set_feature_compatibility_version.js should not give votes to replica set members expected to crash
  • SERVER-27465 rewrite killop.js using setYieldAllLocksHang failpoint
  • SERVER-27525 collation.js should use test-specific database
  • SERVER-27584 Add support for filter to listDatabases
  • SERVER-27649 Don’t error on serialization of $elemMatch with $regex

Write Operations

SERVER-24563 Secondary crash when inserting document into db with different case

Aggregation

  • SERVER-25535 Remove injectExpressionContext() methods from pipeline directory
  • SERVER-27288 DocumentSourceSkip and DocumentSourceMatch getNext() should release GetNextResult reference prior to subsequent underlying source getNext() call
  • SERVER-27304 Create setParameter to make all aggregations which require merging select the primary shard as the merger
  • SERVER-27307 DocumentSourceCursor should store namespace as NamespaceString
  • SERVER-27406 Reduce DocumentSourceCursor batch size from 16MB to 4MB
  • SERVER-27420 Aggregation should explicitly parse apart BSON Arrays
  • SERVER-27527 Remove explicit shardingEnabled check for databases in M/R and aggregation

Storage

  • SERVER-25286 Remove drop2.js dependency on count scan yield behavior
  • SERVER-27243 Upgrade to 3.4 ‘create collection’ fails in Backup
  • SERVER-27256 Run getMore test in sharded configuration in views_authz.js
  • SERVER-27418 [trivial] Enable noPassthrough/index_version_v2.js test for MongoRocks
  • SERVER-27512 queryable_mmapv1 can encounter larger blocks than the default page size
  • SERVER-27591 Need to abandonSnapshot after unlocking in TTLMonitor

WiredTiger

  • SERVER-26545 Remove fixed-size limitation on WiredTiger hazard pointers

Operations

  • SERVER-26960 Consider improving error message when attempting $natural sort on a view
  • SERVER-27289 Shell: mongo –host replSet/Host:Port no longer works
  • SERVER-27576 MongoDB 3.4 ‘mongo’ shell quit() not working

Build and Packaging

SERVER-27450 Add i386 architecture to repo config yaml for debian and ubuntu.

Tools

  • TOOLS-1553 PreProcessing is failling with “got invalid document size”
  • TOOLS-1569 mongo-replay crashes during playback
  • TOOLS-1576 nil pointer derereference when error occurs

Internals

  • SERVER-24695 burn_in_tests.py should have a mechanism for blacklisting tests and suites similar to resmoke.py
  • SERVER-26308 Decrease number of jobs for sharding-related suites on Windows DEBUG and PPC variants
  • SERVER-26525 Factor out identical jstest checkLog functions and increase timeout
  • SERVER-26806 Randomly restart initial sync in the dynamic initial sync passthrough
  • SERVER-26860 add more unittests for compatible-first locking policy
  • SERVER-27126 Remove reference to mongodb-mongo-master Evergreen project in burn_in_tests.py script
  • SERVER-27175 Address slowness in Explain::getPlanSummary
  • SERVER-27208 Update microbenchmarks to use next mongo-perf release
  • SERVER-27232 Refresh and Setup timeouts in the ASIO connpool can prematurely time out an operation
  • SERVER-27306 Remove AutoGetCollection* methods that take std::string namespace
  • SERVER-27339 ReplSetTest shouldn’t inspect TestData directly
  • SERVER-27343 Reduce Frequency of sys-perf runs
  • SERVER-27350 Enable access control for microbenchmarks in Evergreen
  • SERVER-27370 MongoDB 3.4.0 with –rest segfaults if the route /isMaster is called
  • SERVER-27456 Microbenchmarks: Increase inMemorySizeGB and oplogSize
  • SERVER-27459 dbtest should set featureCompatibilityVersion to the most recent value during global initialization
  • SERVER-27568 mongo-perf: Release 2017-01
  • SERVER-27605 Reduce concurrency for jsCore_small_oplog_rs_resync_static, jsCore_small_oplog_rs_initsync and jsCore_small_oplog_rs_initsync_static
  • SERVER-27618 Make NetworkInterfaceASIO stress test less stressful
  • SERVER-27653 Blacklist Concurrency suite in burn_in_tests
  • SERVER-27754 Use requests instead of httplib2 in packager.py
  • TOOLS-1541 support exporting views
  • TOOLS-1549 –gssapiServiceName should not require –gssapiHostName in the tools
  • TOOLS-1559 TestCommandOpGetMoreLiveDB is failing after upgrade to 3.4 in evergreen
  • TOOLS-1579 Progress bar exceeding 100%
  • WT-283 Add a way to change persistent object settings
  • WT-2336 Add a test validating schema operations via file system call monitoring
  • WT-2402 Misaligned structure accesses lead to undefined behavior
  • WT-2670 Inefficient I/O when read full DB (poor readahead)
  • WT-2960 Inserting multi-megabyte values can cause pathological lookaside usage
  • WT-2969 Possible snapshot corruption during compaction
  • WT-3014 Add GCC/clang support for ELF symbol visibility.
  • WT-3021 Fixes needed for Java log cursor example, Java raw mode cursors, log cursors in raw mode
  • WT-3025 fix error path in log_force_sync
  • WT-3028 Workloads with all dirty pages could trigger diagnostic stuck check
  • WT-3030 Test failure indicating invalid key order during traversal
  • WT-3034 Add support for single-writer named snapshots.
  • WT-3037 Fix some outdated comments in logging
  • WT-3048 WiredTiger maximum size warning uses the wrong format.
  • WT-3051 Remove external __wt_hex symbol.
  • WT-3052 Improve search if an index hint is wrong
  • WT-3053 Review Python and Java calls to internal WiredTiger functions
  • WT-3054 Java PackTest, PackTest03 do not compile
  • WT-3055 Java AsyncTest faults
  • WT-3056 For cursors with projections, keys should be allowed
  • WT-3057 WiredTiger hazard pointers should use the WT_REF, not the WT_PAGE.
  • WT-3061 syscall test runs with checkpoint_sync=false and doesn’t acknowledge pwrite64
  • WT-3064 minor tree cleanups: .gitignore, NEWS misspelling
  • WT-3066 lint
  • WT-3068 Copy wtperf artifacts when running Jenkins tests
  • WT-3069 Fix build failures in LevelDB APIs
  • WT-3070 Fix search_near() for index cursor
  • WT-3071 Java: fix build with -Werror=sign-conversion
  • WT-3075 Document and enforce that WiredTiger now depends on Python 2.7
  • WT-3078 Fix a hang in the reconfiguration test.
  • WT-3084 Fix Coverity resource leak complaint.

3.4.1 Changelog

Security

SERVER-27194 Views should require both “viewOn” and “pipeline” to be specified if modifying view when auth is enabled

Sharding

  • SERVER-22657 Add invariants and write unit-tests for the legacy migration chunk cloner
  • SERVER-26832 Add tests for shell commands
  • SERVER-26849 Should join balancer thread on shutdown
  • SERVER-27071 ensure config.version doc cannot replicate to secondaries in config_version_rollback.js
  • SERVER-27078 Race in ShardRegistry initialization causes it to not update the config server connection string
  • SERVER-27102 force a ShardRegistry reload in the beginning of addShard to ensure a removed shard’s ReplicaSetMonitor has been detached
  • SERVER-27215 Some invariants in MigrationChunkClonerSourceLegacy are not applicable to broadcast multi-update and multi-delete

Replication

  • SERVER-27024 Write additional test for new replSetStepDown behavior
  • SERVER-27092 blacklist apply_ops1.js from dynamic initial sync passthroughs
  • SERVER-27110 clear OplogBuffer at the end of initial sync
  • SERVER-27117 set writeConcernMajorityJournalDefault to false in nojournal, inmem, and ephemeralForTest variants
  • SERVER-27124 Disallow readConcern:majority reads on pv0
  • SERVER-27164 Deadlock during oplog application when implicitly creating multiple collections on the same DB
  • SERVER-27176 Improve performance of command writeConcern parsing
  • SERVER-27196 add timeouts to stepdown_needs_electable_secondary.js
  • SERVER-27206 blacklist tests involving MapReduce from initial sync dynamic passthroughs
  • SERVER-27214 Disallow chaining in stepdown_needs_electable_secondary.js and stepdown_needs_majority.js

Query

  • SERVER-27197 Code BSON type should not be compared using a collation-aware string comparator
  • SERVER-27200 Comparison of the scope object in a BSON element of type CodeWScope should not respect the collation
  • SERVER-27207 Find on view with sort through mongos may incorrectly return empty result set
  • SERVER-27300 Disallow indexing of BSONType::Symbol with a non-simple collation

Aggregation

  • SERVER-27201 $graphLookup triggers null pointer dereference
  • SERVER-27213 Two $match stages combine incorrectly, yielding incorrect results.

Storage

  • SERVER-27203 Queryable WT incorrectly read config string
  • SERVER-27217 Allow nopreallocj to be specified in YAML config file
  • SERVER-27246 Running applyOps with an op on a nonexistent database using mmapv1 will crash mongod

WiredTiger

  • SERVER-26870 Sometimes collection data file is not removed even though collection is dropped
  • SERVER-27218 Startup warning recommending the use of XFS isn’t displayed properly in Mongo Shell

Operations

  • SERVER-27210 3.4.0 mongo shell unable to connect using MongoURI with “ssl=true”
  • SERVER-27271 rolesInfo command raises System.InvalidOperationException : Duplicate element name ‘roles’.

Build and Packaging

  • SERVER-17368 Create windows SSL zip file with OpenSSL files
  • SERVER-27130 Switch mongo-rocks to v3.4 branch for 3.4
  • SERVER-27241 Cannot write pid file to /var/run/mongodb/mongod.pid: No such file or directory
  • SERVER-27377 Dynamic builds should use –no-as-needed for executables, not just libraries

Tools

  • TOOLS-1498 Stats collection has large playback performance impact
  • TOOLS-1501 Add option to set capture buffer size to avoid packet loss
  • TOOLS-1502 Playback file contains full reply payload
  • TOOLS-1516 mongoreplay: out of bounds error in “shortenreply” during record
  • TOOLS-1535 Add test for restoring a collection with a default collation
  • TOOLS-1561 nil pointer dereference in mongoreplay when error on new playback file creation

Internals

  • SERVER-20447 Add concurrency workload that tests distributed lock code
  • SERVER-26445 resmoke.py’s LoggerPipe threads can stop consuming output from their pipes for long periods
  • SERVER-26940 Network Interface ASIO Integration Test stress test opens too many connections on windows
  • SERVER-26981 Update mongo-perf
  • SERVER-27141 Update perf.yml, system-perf.yml, and longevity.yml on 3.4 branch
  • SERVER-27145 Shard name from a single node mongod not used as shard index in getSerializedCluster concurrency suite file cluster.js
  • SERVER-27171 Add operator<<(bool) to StringBuilderImpl
  • SERVER-27202 Mark sys-perf cluster idle after regression runs
  • SERVER-27223 Make Command::parseNs() more efficient
  • SERVER-27240 ConnectBG must not close() while the background thread is active
  • SERVER-27275 Longevity uploads compiled mongod archive to different url than sys-perf
  • SERVER-27358 Socket::connect expects _timeout field to be in milliseconds
  • SERVER-27363 Typo in packaging script
  • SERVER-27388 Handle exceeded time limit in NI connection hook
  • TOOLS-1541 support exporting views
  • TOOLS-1558 use mongodb 3.4 “current” tests in master