Navigation

4.0 Changelog

4.0.21 Changelog

Security

  • SERVER-45803 mongodecrypt needs a ServiceContext
  • SERVER-45938 Allow matching O/OU/DC in client x509 cert if clusterMode:keyFile
  • SERVER-47733 SymmetricEncryptorWindows shouldn’t pad when update is called
  • SERVER-50463 Make PooledLDAPConnection::refresh take self-ownership

Sharding

SERVER-47616 Improve error when logical sessions cannot have more than one user authenticated on a single connection

Replication

  • SERVER-48518 Rollback via refetch (EMRC = false) can make readers to see the rolled back data even after the rollback node catches up to primary.
  • SERVER-48928 Allow primary-elect to complete drain mode even if it is stepping down unconditionally
  • SERVER-49986 Convert isMaster command to hello and add aliases
  • SERVER-49987 Rename response fields if “hello” is sent on mongod
  • SERVER-49988 Rename response fields if “hello” is sent on mongos
  • SERVER-49989 Add db.hello() shell helper
  • SERVER-49990 Alias setSlaveOk() and getSlaveOk() shell helpers
  • SERVER-49991 Alias printSlaveReplicationInfo() shell helper
  • SERVER-50607 Must hold mutex when calling _checkForShutdownAndConvertStatus_inlock
  • SERVER-50626 Race in read_concern_majority_getmore_secondaries.js
  • SERVER-50631 [v4.0] Ban rollback_after_disabling_majority_reads.js with –nojournal and MMAPv1
  • SERVER-50640 listCommands should return “isMaster” alias in addition to “hello” command name
  • SERVER-50747 Increase no-op interval in change_streams_update_lookup_shard_metadata_missing.js
  • SERVER-50963 rollback_via_refetch_anomaly.js fails on inMemory storage engine

Query

  • SERVER-18341 Matcher returns false positives in comparison predicates with MinKey/MaxKey
  • SERVER-35921 Index scan uses incorrect bounds for MinKey and MaxKey
  • SERVER-39392 Invariant in PlanStage::dispose always evaluates as true
  • SERVER-45233 Indexed inequalities to arrays return incorrect results
  • SERVER-50291 Add query knob to enumerate $or children in a different order
  • SERVER-51120 Find queries with MERGE_SORT incorrectly sort the results when the collation is specified

Aggregation

SERVER-40317 $facet execution has no limit on how much memory it can consume

Storage

SERVER-50915 [v4.0] fsyncLock must not take a stable checkpoint when majority read concern is off

Operations

SERVER-26726 Check number of arguments for createIndex() and throw error if more than two arguments

Build and Packaging

  • SERVER-46342 DEB installs of MDB do not issue systemctl daemon-reload on install
  • SERVER-47138 MSI installer produces incorrect config file
  • SERVER-50078 Compile bypass applied when it should not have

Internals

  • SERVER-15902 use signal handling stack via sigaltstack to improve behavior on stack overflow
  • SERVER-41872 PlanEnumerator AndAssignment::choices ordering not stable and is relevant to set of plans generated
  • SERVER-43233 Add ability to request only specific attribute(s) for the LDAP groups
  • SERVER-43973 jsTestName() should return a unique name for each thread in the parallel suite
  • SERVER-45202 Improve Command alias infrastructure
  • SERVER-47883 Newly-elected primaries do not wait for single-phase background index builds to complete before accepting writes
  • SERVER-48410 Signed integer overflow fix for datetime library
  • SERVER-48709 signing key generator thread on config server not waken up as expected
  • SERVER-49054 Server MSI should install Compass instead of Compass Community
  • SERVER-49352 4.0 does not build with python 3.8
  • SERVER-49786 Freeze DSI and Genny for non-master perf projects
  • SERVER-50180 Fix User lifetime management in AuthorizationManager::acquireUserForSessionRefresh
  • SERVER-50183 Copy _awaitPrimaryAppliedSurpassesRollbackApplied function from RollbackTest to RollbackTestDeluxe
  • SERVER-50216 Adjust sys-perf frequencies
  • SERVER-50736 Make OpenSSL explicitly accept SNIs presented in ClientHello
  • SERVER-50818 Coverity analysis defect 114987: Wrapper object use after free
  • SERVER-51106 Make the isMaster command a derived class of hello
  • TOOLS-2589 [v4.0] sslAllowInvalidHostnames bypass ssl/tls server certification validation entirely
  • WT-6421 Avoid parsing metadata checkpoint for clean files
  • WT-6559 Use the session id from the new session to determine statistics bucket
  • WT-6598 Add new API allowing changing dhandle hash bucket size

4.0.20 Changelog

Sharding

  • SERVER-40441 Arbiter nodes log error messages when try to create session collection or check if it exists
  • SERVER-44115 Exclude jstests/core/autocomplete.js from sharded jscore tests
  • SERVER-47799 AsyncRequestsSender should update replica set monitor in between retries for InterruptedAtShutdown
  • SERVER-48491 Add requires_document_locking tag to sessions_collection_reaping.js
  • SERVER-48674 Check if replication is enabled before checking if the node is an arbiter in LogicalSessionCacheImpl
  • SERVER-48926 Fix remaining sharding tests that incorrectly set votes to 0 on shard secondaries
  • SERVER-49233 Introduce a flag to toggle the logic for bumping collection’s major version during split

Replication

  • SERVER-37390 RollbackTestFixture doesn’t need to wait for a new primary if it didn’t shut down the current primary
  • SERVER-42004 localhost{1,2,3}.js tests should wait for a primary to be elected before shutting down the test
  • SERVER-45610 Some reads work while system is RECOVERING
  • SERVER-46897 REMOVED node may never send heartbeat to fetch newest config
  • SERVER-47849 Add more logging to shutdownTask
  • SERVER-48276 ReplSet Free Monitoring URLs inconsistent
  • SERVER-48967 Prevent replicated writes on empty namespaces on secondaries
  • SERVER-50039 Timing error in dbadmin.js test

Query

  • SERVER-47223 geoNear/$geoNear does not apply index hints
  • SERVER-48993 explodeForSort can produce incorrect query plan
  • SERVER-49527 recoverFromOplogAsStandalone does not relax index constraints

Storage

  • SERVER-43097 Improve log messaging when index builds get foregrounded because of startup recovery
  • SERVER-47694 fix multikey. again
  • SERVER-48453 Lazily initialize a record store’s auto incrementing counter on deletes
  • SERVER-48695 setAppliedThrough must set orderedCommit=false on the recovery unit
  • SERVER-49449 index_restart_secondary.js is not compatible with storage engines without support for persistence

Operations

  • SERVER-44051 getShardDistribution() does not report “Collection XYZ is not sharded” on dropped but previously sharded collections
  • SERVER-48244 Shell should not hard-code the allowed explain levels and let the server reject it instead

Build and Packaging

  • SERVER-42042 Warn or fail early on dynamic builds with toolchain compiler and tcmalloc
  • SERVER-46927 Clarify dependencies for release-related tasks
  • SERVER-48329 Adjust naming of action_type.h on either master or all stable branches
  • SERVER-48640 Update RHEL 6.2 AMI for package tests
  • SERVER-48659 Update SLES 12 AMI for package tests
  • SERVER-48681 Update Debian 8.1 AMI for package tests
  • SERVER-49925 Dynamic builders should not combine the mongodbtoolchain with tcmalloc
  • SERVER-50124 Pin lazy-object-proxy python module

Internals

  • SERVER-33229 Overload startParallelShell in auto_retry_on_network_error.js to connect after loading the auto_retry_on_network_error.js override
  • SERVER-36454 Upgrade ASIO
  • SERVER-37993 Upgrade asio to eed287d46c14310f0daf4ff19b0297917143723
  • SERVER-41600 IndexCatalog::refreshEntry should invalidate the index from the CollectionInfoCache
  • SERVER-42908 Add ErrorCodes to retryable errors to match drivers
  • SERVER-46758 setFCV can be interrupted before an FCV change is majority committed and rollback the FCV without running the setFCV server logic
  • SERVER-47930 Ubuntu 20.04 - ldap_authz_authn.js fails to load test certificate
  • SERVER-48032 Update references of community mailing-lists to MongoDB Developer Community Forums
  • SERVER-48107 Retry replSetStepDown in rollback_test.js
  • SERVER-48514 Separate testing ‘called’ and ‘successful’ fields for serverStatus election metrics
  • SERVER-48569 Add ConflictingOperationInProgress as acceptable error code to stepDown in validateCollectionsCallback
  • SERVER-48657 Use evergreen module to control signal processing in perf projects
  • SERVER-49007 Roundtrip registration id in metrics response in mock_http_server.py
  • SERVER-49071 Make ldap_fastest_host_selection.js tolerate missing LDAP servers in statistics
  • SERVER-49142 Validate correct field name in RoleName::parseFromBSON()
  • SERVER-49335 publish_packages should use barque API key
  • SERVER-49404 Enforce additional checks in $arrayToObject
  • WT-5242 Minimize checkpoints pinned during backup
  • WT-6118 Fix missing checkpoint in backup
  • WT-6141 Disable checkpoint deletion during backup

4.0.19 Changelog

Sharding

  • SERVER-37929 ShardRegistry in config servers can keep invalid entries after it rolls back until next reload
  • SERVER-39498 ShardRegistry reload inside onReplicationRollback can get stuck
  • SERVER-42862 Prevent shard refreshes in mergeChunks command from joining earlier refreshes
  • SERVER-45910 Router might target wrong shard on write operation for unsharded collection
  • SERVER-46487 The mongos routing for scatter/gather ops can have unbounded latency
  • SERVER-46942 State information can be leaked if server closes too quickly on network_interface_tl
  • SERVER-47436 Make shards validate shardKey in dataSize command
  • SERVER-47745 Make chunk query in ShardingCatalogManager compatible with chunks created in 3.4
  • SERVER-47913 Redact sharding messages in split chunk and distributed lock acquisition
  • SERVER-47999 balance_repl.js should ensure writes have replicated before attempting to read them from a secondary

Replication

  • SERVER-46195 Secondary in rollback_after_enabling_majority_reads.js goes into rollback before validate command
  • SERVER-47558 Revert SERVER-38356 on 4.0
  • SERVER-47613 Invariant in processReplSetRequestVotes
  • SERVER-47695 Write commands run by threads that can survive rollback can fail operationTime invariant in ServiceEntryPoint
  • SERVER-48276 ReplSet Free Monitoring URLs inconsistent
  • SERVER-48374 Pass in array for awaitReplication() in rollback_after_enabling_majority_reads.js

Query

  • SERVER-40805 Indicate the reason for replanning in the log file
  • SERVER-47209 change_streams_update_lookup_shard_metadata_missing.js should handle the node the change stream cursor was established on going through rollback
  • SERVER-47773 geoNear invariant on mongos
  • SERVER-47994 Fix for numerical overflow in GeoHash

Write Operations

SERVER-47233 WriteOp can be left in pending state, leading to erroneous NoProgressMade write error from mongos

Aggregation

SERVER-44689 Add serverStatus counter for each use of an aggregation stage in a user’s request

Storage

  • SERVER-46398 Suggest explicit dbpath when starting mongod on macOS and the default dbpath isn’t found
  • SERVER-46699 Report the oplog visibility timestamp in FTDC

Operations

SERVER-45295 Make sure that LDAP logs always contain context on AuthZN operation

Internals

  • SERVER-39241 Plan scoring incorrectly applies noFetchBonus bonus to all plans when no projection is provided
  • SERVER-42525 Single-node replica sets shouldn’t wait for electable caught up secondaries during shutdown
  • SERVER-43889 Distinguish between a retryable write and a transaction when failing a command
  • SERVER-45334 Service Name not respected in MSI Installer
  • SERVER-45367 When the Range Deleter is waiting for the open cursors, list these cursors in the logs.
  • SERVER-45508 Invariant failure in getFieldsWithStringBounds with descending point ranges
  • SERVER-46633 Windows TLS implementation may declare hostname mismatch on unrelated error
  • SERVER-46758 setFCV can be interrupted before an FCV change is majority committed and rollback the FCV without running the setFCV server logic
  • SERVER-47063 Upgrade static OpenSSL to 1.1.1e
  • SERVER-47071 CheckReplOplogs can fail to detect a mismatch
  • SERVER-47187 Add startup warning when SeIncreaseWorkingSetPrivilege not present
  • SERVER-47256 Update listed maintainer for repo package files
  • SERVER-47373 Improve handling of empty TLS packets
  • SERVER-47634 Make metric tests in stepup.js more robust
  • SERVER-47686 Upgrade static OpenSSL to 1.1.1g
  • SERVER-47765 4.0 Only: Make variables declared above DocumentSourceGraphLookup available within
  • SERVER-47798 Audit isMaster response validation for mongod and mongos
  • SERVER-48269 Fix rlp tests in 4.0

4.0.18 Changelog

Security

  • SERVER-46834 Use monotonic time in UserCacheInvalidator
  • SERVER-47113 LDAP connection pool acquisition state should own host list

Sharding

  • SERVER-29153 Make sure replica set nodes agree on which node is primary before doing writes in ShardingTest initialization
  • SERVER-44463 insertConfigDocumentsAsRetryableWrite() incorrectly calculates BSON array overhead
  • SERVER-45119 CollectionShardingState::getCurrentShardVersionIfKnown returns collection version instead of shard version
  • SERVER-46307 database_versioning_safe_secondary_reads.js should not set “votes: 0” on the shard secondaries

Replication

SERVER-33627 Initial syncer needs to handle exception

Query

SERVER-32903 Ambiguous field name error should be ignored during initial sync

Operations

  • SERVER-34199 “timing” section of serverStatus can have large impact on ftdc retention
  • SERVER-41117 Blacklist autocomplete.js from parallel testing
  • SERVER-44892 getShardDistribution should use $collStats agg stage instead of collStats command
  • SERVER-46024 Collect /proc/vmstat swap statistics in FTDC

Build and Packaging

  • SERVER-46983 Upload repobuilding packages to correct URL
  • SERVER-46996 all push/publish_packages tasks should run on small hosts

Internals

  • SERVER-30739 config_server_checks.js should assert if initial replSetConfig fails
  • SERVER-36467 continuous stepdown overrides should maintain parameters
  • SERVER-37148 Remove mr_shard_version.js and mr_during_migrate.js in favor of MR FSM test
  • SERVER-38119 Windows dump file naming does not account for dots in directory names
  • SERVER-42278 Log SockAddrs produced during LDAP connection establishment with manually derived sizes
  • SERVER-43763 Figure out if global LDAP synchronization can be disabled when libldap is built with OpenSSL.
  • SERVER-45050 Change Windows Kerberos client to use default credentials when no password is specified
  • SERVER-45156 SockAddr constructor should take sockaddr, not sockaddr_storage
  • SERVER-45867 Use latest version of signal processing
  • SERVER-46754 Use new repobuilder service
  • SERVER-46766 Teardown clusters after every perf run
  • SERVER-46851 Decrease the number of jobs in logical session cache tests
  • SERVER-46899 Fix tcmallocReleaseRate parameter in 4.0 and 3.6
  • SERVER-47080 Enable verbose logging for LDAP tests
  • SERVER-47114 Make ldapproxy.py use IOCP on Windows
  • WT-5119 Birthmark records can be read as normal updates if reads race with checkpoints
  • WT-5376 WT_UPDATE.type field can race with visibility checks when returning key/value pairs

4.0.17 Changelog

Sharding

  • SERVER-44598 Shards do not treat the IGNORED version as “intended sharded”
  • SERVER-45273 Remove the mongos version check in allow_partial_results.js and return_partial_shards_down.js
  • SERVER-45599 Backport the changes to CollectionShardingState done as part of SERVER-32198 to 4.0
  • SERVER-45770 Add to information contained in logfile about “moveChunk.to”
  • SERVER-46001 Move checkShardingIndex outside shardCollection’s read critical section on the primary shard
  • SERVER-46466 Race with findAndModify retryable write and session migration

Replication

  • SERVER-34768 Rollback can fail if run against a lagged node that catches up
  • SERVER-35050 Don’t abort collection clone due to negative document count
  • SERVER-35437 Wait for secondary state after stepdown command in multi_rs.js
  • SERVER-39112 Primary drain mode can be unnecessarily slow
  • SERVER-39495 Shard key is omitted from update and remove oplog entries with multi:true
  • SERVER-42219 Oplog buffer not always empty when primary exits drain mode
  • SERVER-43867 Work around unrecoverability of rollback via refetch in tests
  • SERVER-45178 Rollback via refetch can cause rollback to happen successfully w/o updating the rollback id.
  • SERVER-45493 temporarily disable failing assertion in election_candidate_and_participant_metrics.js
  • SERVER-45840 Blacklist tests that run emptycapped from replica_sets_kill_secondaries_jscore_passthrough
  • SERVER-46050 Use getLastAppliedOpTime rather than getHeartbeatAppliedOpTime for checking primary’s position
  • SERVER-46238 Race between commitTransaction and transaction expiration leads to invariant

Query

SERVER-45363 Issue with mongodb text indexes and weights when using wildcard specifier

Aggregation

SERVER-45418 DocumentSourceCursor batching memory accounting does not account for empty documents, leads to unbounded memory use for count-like aggregates

Internals

  • SERVER-40014 System-Perf: Default is_patch expansion to false
  • SERVER-44325 Add polyfill for certificate chain verification
  • SERVER-44435 Allow x509 authorization to be selectively enabled based on the CA
  • SERVER-44853 MSI Should skip install MongoD service dialog when mongod is not selected to be installed
  • SERVER-45766 Remove “requires” from the server yaml
  • SERVER-46082 Use bin/analysis.py for performance projects
  • SERVER-46126 LDAP proxy and mongod startup race in ldap_insuffcient_access_rights.js
  • SERVER-46174 Free peer certificate in SSL_get0_verified_chain polyfill
  • SERVER-46365 getMore command before rs.initiate() can trip invariant
  • SERVER-46630 RemoveSaver writes GCM tag to incorrect file position
  • WT-5150 LAS sweep is not removing the entries that are no longer required
  • WT-5192 Don’t allow checkpoints to evict without a snapshot
  • WT-5263 Prepared updates written to the lookaside file are not always read as needed
  • WT-5395 Fix a bug in the read lock implementation when there is a lot of contention
  • WT-5587 Limit how many checkpoints are dropped by a subsequent checkpoint

4.0.16 Changelog

Sharding

  • SERVER-44103 clear_jumbo.js should wait for balancer to be on mode: full for more than one round
  • SERVER-44130 Flip order of assert.lte arguments in logical_time_metadata.js

Replication

  • SERVER-45758 Add sleep to TimeInactiveMicrosShouldBeSetUponUnstashAndStash in session_test
  • SERVER-45761 Use same clock for test and working code in session_test [v4.0]

Query

  • SERVER-44658 Add correct tags for noPassthrough/max_time_ms.js
  • SERVER-45279 GranularityRounder can get stuck in loop when rounding infinity

Storage

  • SERVER-38794 CollectionOptions can be lost in createCollection if a write conflict exception is thrown
  • SERVER-45289 Conditional jump or move depends on uninitialised value(s) in validate_adaptor.cpp

Build and Packaging

  • SERVER-45713 Run rhel7 push and publish tasks on large rhel70 distro
  • SERVER-45732 Filter flags from net-snmp-config invocation more aggressively

Internals

  • SERVER-40047 Test for blocking queue should not test for non-guaranteed condition
  • SERVER-42573 Only warn about readConcernMajority enabled in primary-secondary-arbiter configuration
  • SERVER-45486 Add information to debug index key count mismatch issue in ‘hashed_index_bad_keys_cleanup.js’
  • SERVER-45831 [4.0] Performance regression processing large aggregation commands

4.0.15 Changelog

Security

SERVER-45309 Ensure bind credentials live longer than LDAP operations

Sharding

  • SERVER-33597 Make allow_partial_results.js, return_partial_shards_down.js start shards as replica sets
  • SERVER-36865 make fsm workloads that extend kill_rooted_or.js more robust in the sharded concurrency suites, or blacklist them
  • SERVER-43195 Add namespace to ChunkManager ShardKeyNotFound failure in order to better diagnose failures.
  • SERVER-44341 Do not choose only first shard of all shards associated with a zone when pre-splitting during shard collection
  • SERVER-45100 Make the BatchWriteExecutor retry multi-writes only against unsuccessful shards

Replication

  • SERVER-35407 ReplicationCoordinatorExternalState and data replication must not be started after shutdown
  • SERVER-44061 Race while setting replication maintenance mode.
  • SERVER-44503 Race in replsets/auth2.js
  • SERVER-45396 fix the “me” field in isMaster responses when using splithorizon

Query

  • SERVER-42565 Aggregations and find commands sort missing fields differently
  • SERVER-45152 Negation of inequality on array can trip invariant

Aggregation

SERVER-44733 Change stream should throw ChangeStreamFatalError if a single shard cannot be targeted for updateLookup

Storage

  • SERVER-43910 include Client/OpCtx information in LockManager::dump() output
  • SERVER-44796 Adjust nojournal startup warning to be more compelling

Operations

SERVER-45290 Remove upstream metadata from v4.2’s third party library manifest

Build and Packaging

  • SERVER-44550 Remove mobile specific embedded commands
  • SERVER-45346 Ubuntu 18.04 package testing task fails to install openssl

Internals

  • SERVER-34844 Relax expectations in apply_batches_totalMillis
  • SERVER-37406 A stashed Locker should keep information about the owning transaction
  • SERVER-39131 Refactor storage engine lock file support
  • SERVER-43210 jstests/sharding/kill_sessions.js doesn’t wait for operation to be killed.
  • SERVER-43246 Add a log line for when a cursor is reaped due to logical session cleanup
  • SERVER-43349 Incorrect serialization for $elemMatch $not $ne
  • SERVER-44578 Remove unused db_raii and server_status libs from storage_wiredtiger_core’s LIBDEPS_PRIVATE
  • SERVER-44828 Correct logic to re-compute dependencies after absorbing a $sort into query layer
  • SERVER-45472 Ensure RoleGraph can serialize authentication restrictions to BSON
  • WT-4636 Fix strace in syscall test
  • WT-5042 Reduce configuration parsing overhead from checkpoints
  • WT-5106 Remove temporary files in clang-format script
  • WT-5112 Handling goto labels with multiple words in s_goto.py
  • WT-5120 Checkpoint hangs when reconciliation doesn’t release the eviction generation
  • WT-5125 Adding new stats for eviction target strategy
  • WT-5135 Change lookaside file inserts to use cursor.insert
  • WT-5169 WT_REF_LIMBO pages cannot support fast (leaf-page only) searches
  • WT-5196 Data mismatch failures with test/checkpoint after enabling LAS sweep
  • WT-5218 Improve eviction to differentiate between clean and dirty pages with WT_CACHE_EVICT_NOKEEP readgen
  • WT-5239 Fix syscall failure about metadata file open
  • WT-5247 Ensure that only idempotent modify operations are logged
  • WT-5277 Cursor key out-of-order detected in the lookaside file
  • WT-5297 syscall.py fail on mongodb-4.0

4.0.14 Changelog

Security

  • SERVER-28011 Support multiple KMIP hosts in the –kmipServerName parameter
  • SERVER-43090 Fix LDAP connection health tests with Okta
  • SERVER-43653 Upgrade static OpenSSL to 1.1.1d
  • SERVER-44320 Allow zoned sharding commands to be authorized via actiontypes

Sharding

  • SERVER-31083 Allow passing primary shard to “enableSharding” command for a new database
  • SERVER-42737 MongoDB stuck on update metadata
  • SERVER-42914 Implement random chunk selection policy for balancer for use in concurrency_*_with_balancer workloads
  • SERVER-44476 Include number of jumbo chunks remaining in output of removeShard

Replication

  • SERVER-41504 Track the number of ops during catchup in replSetStatus on primaries
  • SERVER-41505 Track the average number of catchup ops in serverStatus
  • SERVER-41506 Track metrics associated with a node calling an election
  • SERVER-41507 Track the time the new term oplog entry was written in replSetStatus on primaries
  • SERVER-41508 Track the time the new term oplog entry was majority committed in replSetStatus on primaries
  • SERVER-41512 Track metrics associated with a node voting in an election
  • SERVER-41513 Track the time the new term oplog entry was written by the primary and applied by secondary in replSetStatus on all nodes
  • SERVER-42534 Step down primary for less time in freeze_timeout.js and increase electionTimeoutMillis
  • SERVER-43239 numCatchUpOps in repSetGetStatus is incorrect
  • SERVER-43398 Fix race in replSetGetStatus_new_term_oplog_entry_fields.js
  • SERVER-43695 Add sleeps to session_test.cpp to account for discrepancy between curTimeMicros and Date_t clock sources [v4.0]
  • SERVER-43703 Race when disabling rsSyncApplyStop failpoint and stopping server
  • SERVER-43868 Session::TxnResources::release() can throw exceptions in destructors (4.0.x only)
  • SERVER-43879 OplogInterfaceLocal::next should return an owned BSON obj
  • SERVER-43972 initial_sync_capped_index.js should check SECONDARY state before running validate
  • SERVER-44005 Improve robustness of rollback_after_enabling_majority_reads.js
  • SERVER-44643 Use awaitSecondaryNodes in rollback_after_enabling_majority_reads.js instead of waitForState
  • SERVER-44675 server_status_metrics.js fails due to racy repl.buffer.count metric in serverStatus
  • SERVER-44788 Use awaitSecondaryNodes in seed_secondary_without_sessions_table.js instead of waitForState

Query

  • SERVER-32567 Replace queryoptimizer3.js with FSM test
  • SERVER-43699 Find $mod can result in UB
  • SERVER-44050 Arrays along ‘hashed’ index key path are not correctly rejected
  • SERVER-44269 Modernize max_time_ms.js
  • SERVER-44571 Documents involved in SERVER-44050 corruption scenario cannot be updated or deleted after upgrade

Aggregation

  • SERVER-38691 serverInfo not present in explain output for aggregation
  • SERVER-42756 $multiply operator may return with or w/o an error depending on whether pipeline optimisation is enabled
  • SERVER-43034 Special values handling is inconsistent in DoubleDoubleSummation
  • SERVER-43764 Add more testing for special values in DoubleDoubleSummation
  • SERVER-44174 $push and $addToSet should restrict memory usage
  • SERVER-44869 Add query knob to control memory limit for $push and $addToSet

Storage

  • SERVER-42312 Validate during rollback can cause count mismatch
  • SERVER-43322 Add tracking tools for measuring OplogStones performance
  • SERVER-43908 Modify IndexConsistency hash-map keys to avoid hitting an invariant on duplicate index keys in KeyString form for different indexes
  • SERVER-44188 [4.0] validate_tests should remove index entries by RecordId obtained from the cursor

Operations

SERVER-28604 Log when a cursor is reaped for exceeding the timeout

Build and Packaging

  • SERVER-37766 Platform Support: Remove Community zSeries From 4.0
  • SERVER-37772 Platform Support: Add Community & Enterprise RHEL 8 x64
  • SERVER-44392 Platform Support: Remove zSeries ubuntu 16.04
  • SERVER-44545 Remove builders for Embedded SDKs on Mobile Platforms
  • SERVER-44546 Remove mobile specific build and code artifacts
  • SERVER-44687 error: ‘operator delete’ is unavailable: introduced in macOS 10.12

Internals

  • SERVER-25025 Improve startup time when there are tens of thousands of collections/indexes on WiredTiger
  • SERVER-38002 Upgrade Pcre to at least 8.42
  • SERVER-39574 Support intermediate certificates in PEMKeyFile on Windows
  • SERVER-40218 Write out expansions in system_perf.yml with expansions.write
  • SERVER-40669 install_compass should not explicitly use python3
  • SERVER-40749 Include execution in generated task configuration file name
  • SERVER-42014 [4.0] repairDatabase should catch and report exceptions from repairCollections before re-opening the database
  • SERVER-42961 Fix Split Horizon testing on SLES
  • SERVER-43079 failpoint triggered by LogicalSessionCacheRefresh
  • SERVER-43085 Regenerate all testing certificates with SHA-256 instead of SHA-1
  • SERVER-43151 Error in aggregation assertion at value.cpp:1368
  • SERVER-43241 Fix Executor failures in ARS dtor during shutdown
  • SERVER-43319 Increase cursor timeout for ‘concurrency_simultaneous’ fixtures
  • SERVER-43576 DBClientRS does not propagate applicationName
  • SERVER-43577 Ensure ssl exceptions that terminate connections are logged.
  • SERVER-43741 scons.py should not swallow the underlying ImportError
  • SERVER-43771 Make v4.0’s ClockSource::waitForConditionUntil avoid conversion of Date_t::max() to system time
  • SERVER-43843 Skip validate during the rollback fuzzer “restartNode” command
  • SERVER-43900 Set max_hosts to 1 for stitch_support_lib_build_and_test and embedded_sdk_build_and_test task groups
  • SERVER-44006 Change Packaging License from AGPL to SSPL
  • SERVER-44009 Upload pip freeze output for sys-perf and microbenchmarks
  • SERVER-44064 Perform explicit cast on MessageCompressorManager parameter
  • SERVER-44140 Use signal processing without DSI
  • SERVER-44183 Failure to listen on an asio socket should be fatal
  • SERVER-44248 [4.0] Use tojson instead of JSON.stringify in disk/repair_collection_failure.js
  • SERVER-44312 Specify evergreen auth in performance tests for signal processing
  • SERVER-44319 Skip keyfile check in replica_sets/auth1.js on windows
  • SERVER-44567 Reimplement CommandState destructors for v4.0
  • SERVER-44568 Update the embedded version of the server’s timezone data file to tzdb-2019c
  • SERVER-44651 Update signal processing version
  • SERVER-44727 detect-changes should not be called via run-dsi
  • SERVER-44868 Initialsync logkeeper and logkeeper-short tests should pass snapshot id and dataset link respectively to dsi(sys-perf)
  • SERVER-44946 Reenable tests disabled in BACKPORT-4512
  • WT-4499 Fix prepared transactions for cursor key order check failure
  • WT-4520 Fix prepare transactions fallout during cursor navigation
  • WT-4537 Fix WiredTiger cursor prev/next traversal failure on prepare retry
  • WT-4617 Cursor next/prev returns PREPARE_CONFLICT only once
  • WT-4733 Change test/format to do longer-term repeatable read testing
  • WT-4844 Only log an informational message when a set read-timestamp is older than the oldest timestamp.
  • WT-4899 Fix bugs that could allow more than one birthmark in an update chain
  • WT-4940 Reconciliation should set prepared/uncommitted for each update
  • WT-4943 Fix a bug where uncommitted updates could be discarded
  • WT-4961 Checkpoints with cache overflow must keep history for reads
  • WT-5160 Stop requiring a checkpoint before calling rollback_to_stable
  • WT-5201 Migrate develop test format to mongodb-4.0 branch

4.0.13 Changelog

Security

SERVER-43751 Recompute compressor manager message parameters

Sharding

  • SERVER-10456 get cursor logic used to find docs to clone (in migration) is not same as in removeRange
  • SERVER-36159 Log whenever the gossiped config server opTime term changes
  • SERVER-36222 call to ReplSetTest.restart in shard_identity_rollback.js is racy
  • SERVER-36315 After stepdown the CSRS dist lock manager keeps trying to unlock locks
  • SERVER-41480 Increment collection major version on chunk splits/merges
  • SERVER-42793 Autosplit size tracker random initial value is too low

Replication

  • SERVER-34526 Remove the livenodes list from repl tests
  • SERVER-37173 rollbackViaRefetch should survive attempt to drop non-existent collection
  • SERVER-38356 Forbid dropping oplog when replset config is present
  • SERVER-38685 Startup warning if In-Memory SE is used and writeConcernMajorityJournalDefault is true
  • SERVER-39310 Check canServeReadsFor in getMores
  • SERVER-40009 Set/honour initial sync flag at the early stages of initial sync
  • SERVER-40954 Error message for UnrecoverableRollbackError in FCV 3.6 should recommend downgrading to 3.6
  • SERVER-41218 rollback_after_enabling_majority_reads.js test should ensure the correct primary before restarting other nodes [v4.0]
  • SERVER-41499 Track number of elections called for each reason in serverStatus
  • SERVER-41500 Track number of successful elections for each reason in serverStatus
  • SERVER-41501 Track the number of elections that require primary catchup in serverStatus
  • SERVER-41502 Track the number of times primary catchup concludes for each reason in serverStatus
  • SERVER-41503 Track the target opTime for catchup in replSetStatus on primaries
  • SERVER-41509 Track the number of attempted stepDowns in serverStatus
  • SERVER-41510 Track the number of failed stepDowns in serverStatus
  • SERVER-41511 Track the number of stepdowns caused by seeing a higher term in serverStatus
  • SERVER-41792 Starting replica set member standalone with recoverFromOplogAsStandalone as true should replay entries from oplog based on the checkpoint we start from.
  • SERVER-41918 CollectionBulkLoader does not anticipate exceptions from MultiIndexBlock
  • SERVER-42129 Modify test to account for the ephemeralForTest storage engine’s missing oplog after restart
  • SERVER-42155 Indicate term mismatches when readConcern times out
  • SERVER-42454 Wait for node to find appropriate sync source before disabling failpoint in do_not_advance_commit_point_beyond_last_applied_term.js
  • SERVER-42714 Log replication recovery oplog application completion at level 0
  • SERVER-42767 Improve logging in ReplSetTest.stopSet
  • SERVER-42910 Oplog query with higher timestamp but lower term than the sync source shouldn’t time out due to afterClusterTime
  • SERVER-43230 Fix race in catchup_takeover_two_nodes_ahead.js
  • SERVER-43245 Wait for node to be secondary on restart in seed_secondary_without_sessions_table.js

Query

  • SERVER-37690 countDocuments throws an error when matching 0 document
  • SERVER-40110 ClusterCursorManager::CursorEntry::isKillPending() should not call checkForInterrupt
  • SERVER-40382 Add a serverStatus metric to report plan cache memory consumption
  • SERVER-41863 Make sleep command check that server clock has advanced before returning
  • SERVER-42749 Ban server_status_with_timeout_cursors from transaction passthroughs
  • SERVER-43074 Do not use a global variable to encode ‘multikeyPath’ information when writing out catalog documents

Storage

  • SERVER-41909 Add the ValidateCmd Genny workload to system_perf.yml
  • SERVER-42398 abortTransaction and commitTransaction commands should not acquire ticket irrespective of the prepared state.
  • SERVER-42441 renameCollectionForApplyOps should always rename the target out of the way if it exists
  • SERVER-42652 Fix issue with rename collection
  • SERVER-42709 Change error message about missing UUIDs on startup
  • SERVER-42915 New style repair’s catalog corrections are often false positives, aggressively marking repl nodes as corrupted

Operations

  • SERVER-42257 Add new shell startup banner
  • SERVER-43081 validate should report when an index’s ‘multikeyPaths’ are set but the ‘multikey’ flag is false
  • SERVER-43350 The server crashes when trying to join collections ($ lookup with pipeline).

Build and Packaging

  • SERVER-42911 Rebuild mongodb by building.md and failed to build due to ModuleNotFoundError: No module named ‘Cheetah’ with MSVC on windows
  • SERVER-44114 Don’t use scons cache on Ubuntu 18.04 s390x

Internals

  • SERVER-37837 Possible for TransactionParticipant to never get cleaned up if no write happened
  • SERVER-38141 Incorrect usage of MONGO_CONFIG_HAS_SSL_SET_ECDH_AUTO prevents enabling of elliptic curve auto negotiation
  • SERVER-38493 Allow queryable storage engine to reuse connections between mongod and HTTP server
  • SERVER-39777 step down nodes with a high freeze timeout before validating them on shutdown
  • SERVER-41099 Fix incorrect error propagation from shards for explain command
  • SERVER-41102 Join threads in transport_layer_asio_test
  • SERVER-41248 Ensure ReplicaSetMonitor initializes its random state with truly random data
  • SERVER-41261 Use the oplog entry after the common point to calculate rollbackTimeLimitSecs
  • SERVER-41802 generate_resmoke_tasks doesn’t apply max_sub_suites option
  • SERVER-41939 Connect to fastest LDAP server first
  • SERVER-41990 Burn_in should not average hook times for unique hooks
  • SERVER-42075 Add DSI module to perf.yml
  • SERVER-42107 LDAP conn pool should not block on the network in isHealthy() implementation
  • SERVER-42178 Disable Split Horizon HOSTALIAS testing on SLES
  • SERVER-42216 Ensure pin_getmore_cursor.js waits for server to finish killing cursor
  • SERVER-42476 Improve free monitoring tests
  • SERVER-42618 Disable legacy SCons cache pruning for all build variants
  • SERVER-42706 Test seeding secondary without sessions or transactions table
  • SERVER-42814 Remove informational message on overflow file size quota
  • SERVER-42866 Trigger a logical session cache refresh on all shards in the ShardedCluster test fixture before running test
  • SERVER-42953 ttl_repl_secondary_disabled.js should prevent elections
  • SERVER-43022 Allow compile to be run independently on rhel 62
  • SERVER-43186 Limit the number of tests added to a generated suite
  • SERVER-43200 Make auth/mongoURIAuth.js robust to slow commands
  • SERVER-43240 Add DSI and mongo-perf modules to MMAP build variants in v4.0 mongo
  • SERVER-43582 Do not attempt to authenticate ReplicaSet Monitor
  • SERVER-43634 Report different errors for missing scons and fail to import scons
  • WT-4502 Assertion checking hazard pointers on page discard is too strong
  • WT-4792 Add stat to track pages queued for eviction after LRU sorting
  • WT-4840 WT_CURSOR.modify must require explicit, snapshot-isolation transaction
  • WT-4869 Stop adding cache pressure when eviction is falling behind
  • WT-4881 Soften the restrictions on re-entering reconciliation
  • WT-4882 Improve checkpoint performance when there are large metadata pages
  • WT-4892 Improve statistics about forced eviction
  • WT-4893 Fix a race between internal page child-page eviction checks and cursors in the tree
  • WT-4895 Fix debug eviction mode so it chooses skew more randomly
  • WT-4898 Don’t allow the eviction server to reconcile if it’s busy
  • WT-4920 Add statistics tracking when eviction server is waiting for page transitions
  • WT-4956 Handle the case where 4 billion updates are made to a page without eviction
  • WT-4957 Revert part of a change about when pages are queued for urgent eviction
  • WT-5050 Assertion failure during urgent eviction of metadata page
  • WT-5074 Fix “make check” on exotic architectures

4.0.12 Changelog

Security

SERVER-41587 Improve SECBUFFER_EXTRA handling

Sharding

SERVER-36394 mongos should reset chunk size tracking information when autosplit = false or splitvector returns too few split points

Replication

SERVER-42467 initial_sync_test_fixture_test assumes wiredTiger

Query

SERVER-41829 findAndModify ignores filter expressions that are not objects

Operations

SERVER-41152 A space in the authenticationMechanisms string should produce at least a warning message

Build and Packaging

Internals

  • SERVER-35114 Make it possible to adjust the period of active jobs in the PeriodicRunner
  • SERVER-38395 Python global logger is polluted when importing certain resmokelib modules
  • SERVER-39348 Cleanly release sessions in TLASIO unittest
  • SERVER-39928 Stop testing PyMongo with Python 2.6 in drivers-nightly
  • SERVER-39936 Use PeriodicRunner handles to simplify shutdown ordering
  • SERVER-40899 Disallow chaining in change_stream_update_lookup_read_concern.js
  • SERVER-42061 Validate decrypted payload in ESE
  • WT-4878 Disable random dhandle selection and fine tune eviction target calculations
  • WT-4913 Fix the Windows CRC32 on blocks that aren’t 8B aligned and/or multiples of 8B

4.0.11 Changelog

Security

Sharding

  • SERVER-26531 jumbo flag in chunk can be cleared when the shard that owns it donates a chunk
  • SERVER-36004 SessionUpdateTracker should ignore no-op entries for pre/post image oplogs
  • SERVER-36443 Long-running queries should not cause a build-up of unused ChunkManager objects
  • SERVER-36469 shard_kill_and_pooling isn’t querying the shard it’s supposed to
  • SERVER-38457 Actually fix race condition in retryable writes test
  • SERVER-39756 Sharding a very large collection can result in a long stall of writes against this collection
  • SERVER-40346 Write shardCollection initial chunks with BatchWriter
  • SERVER-40535 Possibility to get a non-existent key if using ReadConcern level:local when reading signing keys in ReplicaSet
  • SERVER-41575 secondary_shard_versioning.js should not set the shard secondaries votes to 0
  • SERVER-41859 logical_time_metadata.js shouldn’t assume lastApplied opTime equals $clusterTime
  • SERVER-41866 Reverse mutex acquisition order in CatalogCache::_scheduleDatabaseRefresh
  • SERVER-41867 CatalogCache::_scheduleDatabaseRefresh/_scheduleCollectionRefresh can try to grab _mutex it already owns
  • SERVER-41869 Reverse mutex acquisition order in CatalogCache::_scheduleCollectionRefresh
  • SERVER-42024 shards_and_config_return_last_committed_optime.js shouldn’t assume opTime in response equals opTime in metadata

Replication

  • SERVER-37065 Report ismaster:false in isMaster command response immediately upon learning of a new term
  • SERVER-38659 Race condition in IsMasterIsFalseDuringStepdown unittest
  • SERVER-40248 OplogEntry’s getOperationToApply() returns incorrect field for updates
  • SERVER-40336 ReplicationCoordinatorImpl::_random isn’t robust to replica set members being started at the same time
  • SERVER-41036 Make ReadWriteAbility::_canAcceptNonLocalWrites AtomicWord<bool> to prevent torn reads.
  • SERVER-41342 read_committed_stale_history.js must perform continuous writes to ensure majority commit point propagates to secondary
  • SERVER-41497 Create IDL types for ElectionMetrics, ElectionCandidateMetrics and ElectionParticipant Metrics
  • SERVER-41498 Create ReplicationMetrics class
  • SERVER-42055 Only acquire a collection IX lock to write the lastVote document

Query

  • SERVER-40134 Distinct command against a view can return incorrect results when the distinct path is multikey
  • SERVER-40869 $subtract with date can cause undefined behavior
  • SERVER-41065 Make agg evaluate() thread safe by passing ‘Variables’ as a parameter
  • SERVER-42079 all non-primary-started index builds should be labeled backgroundSecondary

Aggregation

  • SERVER-40383 dateFromParts does not overflow correctly if isoWeek smaller than 1
  • SERVER-41785 Improve robustness of change_streams_resume_same_clustertime_different_uuid.js
  • SERVER-42232 Adding a new shard renders all preceding resume tokens invalid

Storage

  • SERVER-41351 Improve error message from failure to obtain lock for storage stats collection
  • SERVER-41533 Remove unnecessary IndexConsistency::_classMutex
  • SERVER-41534 Reuse KeyString in RecordStoreValidateAdaptor
  • SERVER-41535 Use vector instead of map for IndexConsistency::_indexesInfo
  • SERVER-41536 Use vector instead of map for IndexConsistency hash buckets
  • SERVER-41537 Use 64K hash buckets instead of 4M for index validation
  • SERVER-41538 Remove indirection through indexNumber in IndexConsistency
  • SERVER-41539 Cache key ordering in IndexInfo
  • SERVER-41540 Fix _indexNsResultsMap usage
  • SERVER-41541 Put a KeyString in IndexInfo for the RecordStoreValidateAdaptor

WiredTiger

  • SERVER-41913 Avoid in-place modify operations for logged collections

Operations

  • SERVER-36099 FTDC for mongos is unworkably large for large installations
  • SERVER-41632 db.collection.getShardDistribution() shows NaN

Build and Packaging

  • SERVER-36043 systemd unit for mongod starts before multi.user target
  • SERVER-39465 Update master android builds to r19 NDK
  • SERVER-40133 Create Markdown description of vendored third party libraries
  • SERVER-40563 Our init scripts check /proc/[pid]/stat should validate that (${procname}) is the process’ command name.
  • SERVER-41039 Android and java multiarch builders cannot import yaml during config expansion
  • SERVER-41302 Lift restriction on publishing embedded SDKs from the 4.2 branch
  • SERVER-41424 scons should fail early if invoked with wrong Python interpreter
  • SERVER-41443 Update Enterprise License
  • SERVER-41568 Update third party inclusions for June 6th 2019
  • SERVER-42233 Bump Windows package dependencies

Internals

  • SERVER-26626 In external_auth_WT JSTests, ensure that Saslauthd has fully started before continuing test
  • SERVER-33589 Create an initial sync fuzzer suite
  • SERVER-35067 Blacklist explain2.js from retryable writes jscore stepdown suite
  • SERVER-37984 Upgrade yaml-cpp >= 0.6.0
  • SERVER-39480 Log network failure status in DBClientConnection
  • SERVER-39642 Decrement egress counter when scoped connection not returned to the pool
  • SERVER-40052 Shutdown in mongos can trigger BatchWriteOp invariant
  • SERVER-40156 Initial implementation of Split Horizon
  • SERVER-40295 Add details to stage_builder.cpp invariant message
  • SERVER-40643 Add tests for replSetConfig and replSetInitiate with Split Horizon
  • SERVER-40645 Add tests for SNI/TLS behavior of Split Horizon
  • SERVER-40738 Don’t try to upload evergreen tarball when doing Android mobile builds
  • SERVER-40923 Remove npm test command from “run jstestfuzz” Evergreen function
  • SERVER-40924 Add Evergreen task to sanity check fuzzer can parse JavaScript tests
  • SERVER-41004 killSessions command can return CursorNotFound error for successful kill
  • SERVER-41013 Make lock_stats.js test more resilient against unset stats
  • SERVER-41016 Calculate deltas for updates to large documents
  • SERVER-41047 errnoWithDescription always returns “Unknown error” on Linux
  • SERVER-41062 Always return TransactionTooLarge rather than BSONObjectTooLarge when transaction is too large to fit in a single applyOps
  • SERVER-41075 Remove ‘mongo/repl/replication_coordinator.h’ from op-context inclusion path
  • SERVER-41096 ContinuousStepdown thread and resmoke runner do not synchronize properly on the “stepdown permitted file” and “stepping down file”
  • SERVER-41131 Add StrongWeakFinishLine
  • SERVER-41148 FTDC is calling boost::filesystem without passing an error_code parameter
  • SERVER-41164 Change Stream pipeline regex matches wrong oplog docs when using ‘|’ pipe in db name
  • SERVER-41169 Most powercycle testing for Linux was removed from Evergreen
  • SERVER-41184 Add metrics to indicate the amount of sharded updates done with only _id in query
  • SERVER-41349 Add a log statement for slow dns resolution
  • SERVER-41361 Do not read at lastApplied while already holding the PBWM lock on secondaries
  • SERVER-41401 patch_files.txt doesn’t distinguish between enterprise and community files
  • SERVER-41432 Create failpoint which when enabled makes $expr evaluate to false rather than an error when an invalid expression is encountered
  • SERVER-41442 Fix second race in umask.js
  • SERVER-41546 SysV init scripts should verify PIDfile exists instead of failing
  • SERVER-41680 Propagate ${branch_name} Evergreen expansion to fuzzer invocation
  • SERVER-41702 Copy Collection NamespaceString before yielding locks in AutoGetCollectionForRead
  • SERVER-41753 Fix indexc.js to not depend on the clock always moving forward
  • SERVER-41789 sys-perf: Use bootstrap.overrides in bootstrap.yml config file
  • SERVER-41828 Ensure LDAP conn pool prefers ldap servers listed first
  • SERVER-41833 Update README license text
  • SERVER-41862 Make generated file for split resmoke tasks optional
  • SERVER-41897 Use assert.sameMembers to compare two sets in jstests/ssl/libs/ssl_x509_role_auth.js
  • SERVER-41967 Symlink /data to Z instead of C
  • SERVER-42002 JSTests for regex characters in db/coll names should abide by system differences
  • SERVER-42195 Stepdown suites fail with Python exception when run with –repeat >1
  • SERVER-42228 LoggerRuntimeConfigError exceptions can lead to background dbhash thread running until Evergreen task times out
  • WT-4477 Add eviction debug mode and extra checks
  • WT-4690 Make sure eviction does not split during checkpoints
  • WT-4706 Add a statistic to track the lookaside table size
  • WT-4712 Add debug log op record for non-logged tables
  • WT-4723 Restructure the reconciliation code
  • WT-4760 Checkpoint should not read past a stable update
  • WT-4776 Modify operations should be equivalent to updates
  • WT-4803 Implement file_max configuration for Cache Overflow mechanism
  • WT-4817 heap-buffer-overflow failure in timestamp_abort
  • WT-4823 Add check for uninitialised lookaside resources
  • WT-4827 Apply commit timestamps when a truncated page is read
  • WT-4848 Fix perf regression when calculating differences

4.0.10 Changelog

Security

  • SERVER-38217 Consider recording failed attempts to kill cursors in the audit log
  • SERVER-39864 Move principal name extraction to error handler in SASL Start
  • SERVER-40226 Upgrade static OpenSSL to 1.1.1b
  • SERVER-40393 Disable SSL_MODE_RELEASE_BUFFERS in ASIO
  • SERVER-40817 Handle createIndexes on roles collection in RoleGraphUpdate

Sharding

  • SERVER-36355 Improve error message when shard key not present in all documents
  • SERVER-36457 mongos_rs_shard_failure_tolerance.js test should assert that the movePrimary command succeeds
  • SERVER-39420 Remove in-memory boolean to indicate config.server.sessions collection set up
  • SERVER-40318 Condition variable wait in NamespaceSerializer::lock is not exception safe
  • SERVER-40346 Write shardCollection initial chunks with BatchWriter

Replication

  • SERVER-35636 Renaming collection for applyOps needs to check completeness of target namespace
  • SERVER-39221 Test rollback after enableMajorityReadConcern upgrade/downgrade
  • SERVER-39672 ReadConcern level in multi-statement transactions defaults to “snapshot”
  • SERVER-39831 Never update commit point beyond last applied if learned from sync source
  • SERVER-40068 Unblacklist kill_sessions_kills_transaction.js from replica_sets_jscore_passthrough.yml
  • SERVER-40329 Log all transactions at TXN verbosity levels >= 1
  • SERVER-40335 Don’t wait for election handoff in ReplSetTest.stopSet()
  • SERVER-40628 Initial sync could fail under replsetprio1.js settings
  • SERVER-40788 Improve logging around replication catchup
  • SERVER-40839 Add tests for empty unprepared transactions
  • SERVER-40855 run_check_repl_dbhash_background.js with majority read concern false must allow for a missing majority op time
  • SERVER-40976 rollback_after_enabling_majority_reads.js should not run on mmapv1
  • SERVER-41006 Make replbatchlimitbytes configurable
  • SERVER-41081 do_not_advance_commit_point_beyond_last_applied_term.js must wait for Node E to reach stopReplProducerOnDocument failpoint

Query

SERVER-40618 Remove removec.js from causally consistent jscore passthrough

Storage

  • SERVER-30356 Improve error reporting for validation
  • SERVER-32709 Mobile SE: Index creation takes a long time
  • SERVER-40786 Improve error message in IndexCatalog::dropAllIndexes()
  • SERVER-41213 Unique background index builds may produce inconsistent keys

Operations

  • SERVER-34621 Log if client attempts renegotiation
  • SERVER-38625 Improve shell error handling when Atlas user has not configured IP Whitelisting
  • SERVER-38867 “show collections” no longer lists system.* collections
  • SERVER-39820 Add the client IP address to the successful authentication log message
  • SERVER-40112 db.disableFreeMonitoring() returns “not master” on secondary even after rs.slaveOk()
  • SERVER-40423 Misleading error message when ‘count’ is run as the first command in a transaction
  • SERVER-40866 Use JSON.stringify() to serialize string in tojson()

Build and Packaging

  • SERVER-37765 Platform Support: Remove Ubuntu 14.04
  • SERVER-39025 Windows MSI unattended installation missing mongod.exe with ADDLOCAL
  • SERVER-40242 Update banner inclusions for vendored tools
  • SERVER-40491 Update Debian 8 image for package test
  • SERVER-41038 The results of git describe for MONGO_VERSION vary by git version

Internals

  • SERVER-39869 System-Performance: Enable authentication in all tasks
  • SERVER-40166 Force BG clock now == Date_t::lastNow
  • SERVER-40246 Create evergreen task for cursor manager sys perf workload
  • SERVER-40344 Upgrade ASAN builders to Ubuntu 18.04
  • SERVER-40514 Race between BufferedHandler.close() and BufferedHandler.flush() leads to resmoke.py hanging with –log=buildlogger
  • SERVER-40553 Filter unauthorized views in listCollections
  • SERVER-40654 Do not override timeouts for generated tasks on PPC
  • SERVER-40704 Have better task timeouts when dynamically setting the minimum
  • SERVER-40720 Improve watchdog fuse test reliability
  • SERVER-40758 Increase the amount of memory available for logical_session_cache_replication* tasks
  • SERVER-40840 Disable tools testing in ssl_cert_password.js
  • SERVER-40889 free_monitoring tests should use a virtualenv
  • SERVER-40922 Add npm install command to “run jstestfuzz” Evergreen function
  • SERVER-40932 Increase timeout for shutting down the ServiceExecutor
  • SERVER-41088 Propagate Evergreen order field to Cedar for system perf
  • SERVER-41103 Fix fuzzer task invocations
  • TOOLS-2068 mongodump oplog delay
  • TOOLS-2290 mongorestore should not treat % in collection names as URL escape character
  • WT-4352 Resolve birthmarks during eviction in more cases
  • WT-4631 Always clear the read timestamp for transactions
  • WT-4687 Querying all_committed shouldn’t get timestamp zero
  • WT-4693 WT_CONNECTION::reconfigure should not require quiescence when downgraded
  • WT-4750 Sweep can remove active lookaside records when files are closed and re-opened
  • WT-4759 Save a copy when an old overflow value is discarded
  • WT-4768 Inconsistent data with lookaside eviction followed by sweep
  • WT-4769 Don’t discard active history for empty pages
  • WT-4794 Mark lookaside history resolved in all paths
  • WT-4796 Enhance diagnostics that track ref state transitions

4.0.9 Changelog

Security

SERVER-38945 SSL performance regression

Sharding

SERVER-40333 Only clone collection options once for each shard on shard collection

Replication

  • SERVER-39278 Wait for rollback to finish before ending session in transient_txn_error_labels_with_write_concern.js
  • SERVER-39672 ReadConcern level in multi-statement transactions defaults to “snapshot”
  • SERVER-40039 Increase assert.soon timeout in initial_sync_invalid_index_spec.js
  • SERVER-40298 Track transaction size on 4.0

Query

Storage

  • SERVER-16571 Use Actual Memory Constraint vs. Total System Memory When They Differ
  • SERVER-39026 Use correct type for retrieving WiredTiger statistics
  • SERVER-39654 Storage statistics not logged for a slow transaction
  • SERVER-40390 Blacklist skip_repairing_fcv.js from running on mmapv1 on 4.0

Operations

  • SERVER-40131 Incorrect format string in Windows stacktrace generator.
  • SERVER-40259 Include third party notices for ASIO and variant

Build and Packaging

SERVER-36622 Package tests fail for newer Ubuntu

Internals

  • SERVER-34260 Ability to reuse a single TCP connection from mongod to the LDAP server
  • SERVER-38239 Define and Implement getOperationStatistics of storage interface
  • SERVER-38240 Extend OpDebug object to support storage statistics
  • SERVER-38243 Test session storage statistics are part of slow operation report
  • SERVER-38649 Add AlarmScheduler and AlarmRunner for general purpose alarms
  • SERVER-38984 Attach IDs to users
  • SERVER-39061 Fix the wt_operation_stats test to wait for the operation log to appear
  • SERVER-39178 Negotiate SCRAM mechanism in MongoURI::connect()
  • SERVER-39361 Synchronise collecting storage engine stats with shutdown
  • SERVER-39488 Test does not see the storage statistics in the profiled output .
  • SERVER-39764 Negation of $in with embedded array can incorrectly plan from the cache, triggering invariant
  • SERVER-39869 System-Performance: Enable authentication in all tasks
  • SERVER-39934 CurOp::completeAndLogOperation should not hang waiting for global lock
  • SERVER-40341 Thread SSL connection mode through ConnectionPool interface
  • WT-4324 Ensure checkpoints rewrite pages with data in the future
  • WT-4554 Enhance WT salvage to handle the case of corrupted WiredTiger.turtle
  • WT-4619 Coverity 111398: leaked memory

4.0.8 Changelog

Security

SERVER-39217 TLS intermediate CA certificate not working with macOS and 4.0.5

Sharding

SERVER-35219 Regain MongoDB balancer performance with sessions

Replication

Query

SERVER-39903 notablescan parameter should be ignored for internally used namespaces

Storage

SERVER-40024 Rename collection on a secondary can set the collection minimumVisibleSnapshot timestamp backwards in time after a background index build’s ghost commit cluster time timestamp

Operations

SERVER-37722 Quiet mode does not suppress connection end events

Build and Packaging

SERVER-35628 Failed runtime links to do not result in failed tests for android emulators

Tools

TOOLS-2229 Mongofiles deletes chunks of existing file when failing to put_id with existing _id

Internals

  • SERVER-34286 noPassthrough/currentop_query.js is failing on Amazon Linux 2
  • SERVER-36750 blacklist memory.js on ppc64le in memory variants
  • SERVER-37389 Give different messages for different connection failure reasons
  • SERVER-38644 Guard against ephemeral files disappearing during umask test
  • SERVER-39580 [4.0] Skip repairing the FCV document if the major version is too low
  • SERVER-40154 change_streams_resume_at_same_clustertime.js should not assume change order
  • SERVER-40233 Increase transactionLifetimeLimitSeconds from 3 to 24 hours
  • SERVER-40305 Add diagnostic logging to max_time_ms.js

4.0.7 Changelog

Security

  • SERVER-36606 Remove size limits on BSON audit events
  • SERVER-39202 Improve deterministic calculation of key container names
  • SERVER-39571 mongod cannot verify certificates from the CNG provider

Sharding

  • SERVER-36901 sh.status() “Last reported error:” is actually 5th Latest error message
  • SERVER-36958 Parts of the _configsvrShardCollection command do not retry on network errors
  • SERVER-37591 MigrationSourceManager is not exception safe before startClone completes
  • SERVER-38192 Ignore duplicate key error from refreshLogicalSessionCacheNow
  • SERVER-38205 Optimize splitVector for the jumbo-chunk case
  • SERVER-38387 agg_out.js concurrency workload always fails to shard the output collection
  • SERVER-39203 failcommand_ignores_internal.js fails against mongod 3.6
  • SERVER-39847 Migrating session info can trigger fassert when destination shard has transaction history truncated by oplog
  • SERVER-40010 Shard secondaries with 4.0 binary and 3.6 FCV are calling _flushDatabaseCacheUpdates

Replication

  • SERVER-35663 Replication recovery does not update the logical clock
  • SERVER-37179 Wait for specified write concern whenever commitTransaction returns a NoSuchTransaction error
  • SERVER-37274 commands_that_accept_wc tests can give secondaries priority zero
  • SERVER-37569 prohibit MapReduce on sessions with txnNumbers
  • SERVER-37846 writeConcern can be satisfied with an arbiter if the write was committed
  • SERVER-38297 Killing session on a secondary currently applying prepare oplog entry can fassert
  • SERVER-38354 Allow shutdown error when reading last applied optime on startup
  • SERVER-38722 CollectionCloner should handle QueryPlanKilled on collection drop
  • SERVER-39215 Fix aggregation_currentop.js such that we don’t compare timestamps generated from 2 different sources (mozjs & server).
  • SERVER-39286 server_write_concern_metrics.js must use requires_journaling tag
  • SERVER-39490 opWriteConcernCounters can cause undefined behavior due to overflow
  • SERVER-39641 Blacklist max_time_ms.js from read concern linearizable passthrough

Query

  • SERVER-13779 Allow $not to be applied to $regex (currently only /regex/ syntax is allowed)
  • SERVER-36910 Reduce severity or remove log message for PlanExecutor::DEAD error during find
  • SERVER-38764 External sorter should use 64-bit integers for file offsets
  • SERVER-39210 Add debug logging to change_streams/shell_helper.js
  • SERVER-39472 Backport changes to apply_ops_concurrent_non_atomic.js to account for HMAC key inserts in 3.6 and 4.0.
  • SERVER-39650 Ensure internal options cannot be specified in a raw aggregate command sent to mongos
  • SERVER-39771 TextMatchExpression crashes instead of serializing in some cases

Aggregation

  • SERVER-31098 Wrong ns in system.profile for aggregation query
  • SERVER-35740 Report high-water-mark resume token with each (possibly empty) change stream batch
  • SERVER-38408 Return postBatchResumeToken from all mongoD change streams
  • SERVER-38410 Allow ARM to consume postBatchResumeToken for merging
  • SERVER-38411 Propagate postBatchResumeToken through mongoS to client
  • SERVER-38412 Allow resuming from a high-water-mark resume token
  • SERVER-38413 Always set an initial postBatchResumeToken
  • SERVER-38414 Upgrade/Downgrade testing for change stream high water mark
  • SERVER-38942 Improve robustness of postBatchResumeToken integration tests
  • SERVER-38975 Single-collection high water marks omit UUID on shards where the collection does not exist
  • SERVER-39166 $graphLookup should force a pipeline to split in sharded cluster
  • SERVER-39322 Backport timelib fix for incorrect snprintf invocation with static buffer
  • SERVER-39394 Views collation check should traverse through nested $lookup pipelines
  • SERVER-39410 Re-enable batching in DSCursor for change stream cursors
  • SERVER-39487 Aggregation operator $sqrt output for NumberDecimal is the same as $exp
  • SERVER-39612 Validate fields in $geoNear
  • SERVER-40094 Do not prematurely reject resume attempt in DSShardCheckResumability

JavaScript

SERVER-39481 Remove unused C++ injected JS constructors

Storage

  • SERVER-17010 Reduce file handle usage in File based Sorter
  • SERVER-35449 Return the oldest read timestamp used by any open transaction
  • SERVER-35732 Hyphenated database names do not work with dbStats.fsUsedSize / TotalSize
  • SERVER-38555 cappedTruncateAfter must not set oldest timestamp during startup recovery when enableMajorityReadConcern=false
  • SERVER-38745 MigrationDestinationManager assigns incorrect timestamps while building multiple indexes
  • SERVER-38801 Cope with large BSON blobs in queryable’s listDirectory call.
  • SERVER-38833 A failure to timestamp a storage transaction requires restarting the transaction
  • SERVER-39106 GlobalLock acquisition should throw when ticket acquisition times out if there is a max lock timeout and no deadline
  • SERVER-39259 Mobile SE: Adjust SQLite Pragmas for Improved Performance
  • SERVER-39719 Ensure that a node performing an initial sync from a secondary with a in-progress index build creates the index before initial sync is done
  • SERVER-39723 Change listIndexes command behavior to show in-progress index builds
  • SERVER-39773 decrease number of updates in rollback_wt_cache_full.js
  • SERVER-39871 Make catalog_raii_test more resistant to clock issues on Windows
  • SERVER-39922 Fix lock stats suboperation tests for mobile

Operations

  • SERVER-34422 Expose metrics on idle versus active client threads
  • SERVER-37155 Improve the LDAP server logging
  • SERVER-38038 mongo shell should be linked with ErrorExtraInfo derivatives
  • SERVER-38530 Add getResumeToken shell helper
  • SERVER-39093 Cannot use TLS with readPreference={mode: “secondary”} without specifying –ssl to mongo shell

Build and Packaging

  • SERVER-33958 When using thin archives the –cache=nolinked mode should push thin archives to the cache
  • SERVER-35356 Add release process builder for embedded SDKs
  • SERVER-35737 install_compass fails on MacOS
  • SERVER-39354 Remove SCons cache pruning from prior branches
  • SERVER-39483 Stripped binaries and .debug files should not be cached

Tools

  • TOOLS-2030 mongodump does not dump system.js collections
  • TOOLS-2109 Build Tools with Go 1.11
  • TOOLS-2166 mongoimport –uri logs incorrect connected hosts

Internals

  • SERVER-35138 service_state_machine.cpp should log a backtrace if there’s an uncaught exception
  • SERVER-35551 Mongobridge nodes don’t remember their network partition configuration after a restart
  • SERVER-36231 Mongos write path doesn’t look for retryable write concern errors
  • SERVER-37183 BSONElement::safeNumberLong is not safe
  • SERVER-37382 printShardingStatus.js races with ShardingUptimeReporter thread
  • SERVER-37620 Improve watchdog_test reliability
  • SERVER-38319 DBClientRS should propagate URI options through all paths
  • SERVER-38538 Improve thread safety of PeriodicRunnerImpl
  • SERVER-38674 –ssl=off builds emit a scons warning
  • SERVER-38697 Powercycle kill by PID might try to kill the wrong process
  • SERVER-38725 Maven central release automation cannot close sonatype repository (401 unauthorized)
  • SERVER-38746 Provide reason for transaction abort
  • SERVER-38748 Background indexes created through applyOps should run on the command thread
  • SERVER-38789 Accept connection failure on Windows in ssl_alert_reporting.js
  • SERVER-38816 Use generate.tasks for required tasks over target runtime
  • SERVER-38837 Make periodic_runner_impl_test more lenient in OnePausableJobResumesCorrectly
  • SERVER-38933 currentOp is not resilient to drop shard
  • SERVER-38954 Increase query execution time for the test case in max_time_ms.js that expects it to hit the time limit
  • SERVER-39009 Make bulldlogger credentials location configurable via environment variable
  • SERVER-39014 Incorrect error reported while re-installing with the Windows MSI
  • SERVER-39019 $elemMatch $ne serialization is incorrect, doesn’t roundtrip
  • SERVER-39031 Make SCons default –jobs to CPU count
  • SERVER-39056 Further refine readWriteAnyDatabase
  • SERVER-39058 Synchronize user set modification in AuthorizationSession with Client
  • SERVER-39127 Use generate.tasks for already converted tasks on all variants
  • SERVER-39128 Avoid double-authentication during connect from mongo shell
  • SERVER-39138 New test suites do not handle excludes properly when dividing suites
  • SERVER-39212 waitForSecondaries in background dbhash check must wait for lastApplied to reach clusterTime when enableMajorityReadConcern=false
  • SERVER-39232 Allow commands that do not require auth to refresh sessions
  • SERVER-39284 Better handle timeouts for generated tasks with repeated execution
  • SERVER-39303 Coverity analysis defect 105263: Dereference after null check
  • SERVER-39386 Specifically use the version of the android NDK that we want to use
  • SERVER-39421 Fix opCtx and baton waits
  • SERVER-39564 burn_in_tests.py doesn’t run tests in the configuration for *_gen Evergreen tasks
  • SERVER-39590 improve port_options.js logfile polling
  • SERVER-39686 Clean up cloud_nightly project file
  • SERVER-39746 System-Performance: Write project in runtime.yml
  • SERVER-39779 Don’t override timeouts if not all test have history
  • SERVER-39822 Improve watchdog_test.exe test reliability
  • SERVER-39823 Free Monitoring may ignore re-register requests on secondaries
  • SERVER-39830 Race in PeriodicRunnerImpl between start() and stop()
  • SERVER-39900 change_streams_resume_at_same_clustertime.js should not assume same that multi-update across shards are performed at the same clusterTime
  • SERVER-39946 Handle splitting tasks with only filtered test history
  • SERVER-40034 Set setup_group_can_fail_task to true for compile-related task groups
  • SERVER-40076 Tag JavaScript tests with the reason they’re unable to run in Atlas
  • SERVER-40195 Pin all Gradle dependencies
  • TOOLS-1906 Ignore mongorestore error “x509 certificate routines:X509_STORE_add_cert:cert already in hash table”
  • TOOLS-2158 mongodump failing on Windows with “error opening system CA store: Access is denied.”
  • TOOLS-2167 Add CGO flags for building on Windows
  • TOOLS-2168 Add CGO flags for building on MacOS
  • TOOLS-2210 Build with tools with Address Space Layout Randomised (ASLR) flags enabled
  • WT-4447 Add prototype implementation allowing limiting of IO per subsystem
  • WT-4483 Improve caching of small updates to large values
  • WT-4518 Give applications a chance to handle panic before API panic returns
  • WT-4522 Update WiredTiger copyrights to 2019
  • WT-4528 Retry Windows functions on access denied
  • WT-4532 Fix null pointer access to WT_DATA_HANDLE in __wt_page_in_func
  • WT-4547 Consolidate capacity and block manager bytes written
  • WT-4562 Coverity: possible divide by zero conn_capacity:434
  • WT-4576 Coverity warning in conn_capacity.c
  • WT-4615 Sync backup file before returning backup cursor

4.0.6 Changelog

Security

  • SERVER-37565 mongod continuously restarting after upgrade to 4.0.2
  • SERVER-38293 Make listDatabases understand collection privileges

Sharding

  • SERVER-9043 Link flushRouterConfig on the config server and shards
  • SERVER-31156 Admin command to update the chunk metadata for only one collection
  • SERVER-36863 query_config.js assumes that config.mongos is always present
  • SERVER-38050 The range deleter doesn’t validate it is still operating on the same collection after the deletion loop
  • SERVER-38062 Add assert.commandWorked() to commands in read_pref_cmd.js
  • SERVER-38196 Coverity analysis defect 105128: Unchecked return value
  • SERVER-38472 A config server can return early for a shardCollection command even if the shard hasn’t finished its own shardCollection command
  • SERVER-38641 clone_catalog_data.js should call awaitLastOpCommitted on CSRS before calling _cloneCatalogData directly against shard
  • SERVER-38751 _migrateClone and _transferMods incorrectly labeled as idempotent in MigrationDestinationManager
  • SERVER-39030 Wrong info logged by splitVector
  • SERVER-39180 Wrong initial chunk owner shard can be selected when sharding non-empty collection with pre-created zones
  • SERVER-39234 Sharding an empty collection in mixed-shard version configurations may leave all chunks on the primary shard

Replication

  • SERVER-32146 Log slow oplog entry application
  • SERVER-34943 failCommand failpoint should ignore commands from replica set members
  • SERVER-35608 Invariant that term from lastAppliedOptime is never greater than our current term
  • SERVER-37189 transactions.currentActive has a value of -1
  • SERVER-37910 Create new serverStatus metric for number of operations applied on a secondary that’s incremented at batch boundaries
  • SERVER-37915 Replication doesn’t update opsCounterRepl command on secondaries
  • SERVER-38052 ReplBatcher thread must handle exceptions
  • SERVER-38059 Transactions write conflicts tests should clean up any transactions on failure
  • SERVER-38200 Fix ./jstests/replsets/initial_sync_oplog_hole.js to prevent using stale heartbeat info in the test.
  • SERVER-38476 Increase timeout for clean_shutdown_oplog_state.js, again
  • SERVER-38647 backup_restore_rolling.js can fail due to stepdown
  • SERVER-38740 Remove wait for drop to have pending X lock in abort_transaction_thread_does_not_block_on_locks.js
  • SERVER-38998 Create serverStatus metrics for readConcern and writeConcern
  • SERVER-39142 ServerWriteConcernMetrics must lock _mutex before modifying members
  • SERVER-39267 Guard opWriteConcernCounters behind flag

Query

  • SERVER-35455 QueryPlannerAccess should hold owned pointers by unique_ptr rather than raw pointer
  • SERVER-38275 Handle explains without namespaces
  • SERVER-38601 Add regression test for memory leak during planning

Write Operations

SERVER-37284 ndeleted:0 is logged/profiled when the number of deleted documents is not known

Aggregation

SERVER-39109 mongod crash: Invariant failure !_exec src/mongo/db/pipeline/document_source_cursor.cpp 295

Storage

  • SERVER-37484 Only alter table logging settings on startup and not collection creation
  • SERVER-37911 CreateIndex via applyOps should notify opObserver in the WUOW of index commit
  • SERVER-38434 queryableBackupMode and wiredTigerEngineConfigString flags are incompatible
  • SERVER-38498 decrease number of updates in rollback_wt_cache_full.js
  • SERVER-38779 Build a mechanism to periodically cleanup old sessions from session cache
  • SERVER-38869 Log more information in run_check_repl_dbhash_background.js
  • SERVER-38928 background dbhash test hook incorrectly relies on a primary’s lastApplied being >= its secondary’s lastApplied

Operations

  • SERVER-33469 Make syslog log lines consistent with mongod log lines
  • SERVER-38983 Differentiate UserNotFound from AuthenticationFailure in audit log

Build and Packaging

  • SERVER-35936 MongoDB Community Windows installer fails to install Compass
  • SERVER-37775 Platform Support: Add Community RHEL7 (zSeries)
  • SERVER-37777 Platform Support: Add Community SLES12 (zSeries)
  • SERVER-37778 Platform Support: Add Community & Enterprise Ubuntu 18.04 (zSeries)
  • SERVER-38416 Upgrade static OpenSSL to 1.1.1a
  • SERVER-38726 Add stable toolchain variables files
  • SERVER-39176 Repo config for RHEL7 s390x is missing

Internals

  • SERVER-31755 Raise intermediate $lookup document size to 100MB, and make it configurable
  • SERVER-34394 Server Option to Explicitly Prevent SNMP Usage
  • SERVER-35393 Go Driver Unit Tests receive error code 9001 when doing a large insert many
  • SERVER-35620 downloaded file integrity: use shasum instead of python script
  • SERVER-36740 Sometimes crashes on windows don’t provide a backtrace
  • SERVER-36774 Allow shell assertion functions to take objects for the ‘message’ argument
  • SERVER-36817 replSetFreeze command run by stepdown thread may fail when server is already primary
  • SERVER-37078 Use awaitSecondaryNodes() instead of waitForState() to confirm a node is a secondary in repair_invalidates_replica_set_nodes.js
  • SERVER-37143 Retry on Interrupted errors in the background DB hash hook
  • SERVER-37240 Enable dbhash background thread for enableMajorityReadConcern:false variant
  • SERVER-37241 Add testing to verify proper expiration of sessions in the sessions collection
  • SERVER-37359 Update the test lifecycle script to use the new Evergreen test stats endpoint
  • SERVER-37428 Sys-perf: linux builds using enterprise bits
  • SERVER-37490 Increase the ConnectTimeout for powercycle
  • SERVER-37562 Reduce all IX locks to IS locks in SessionsCollectionRS
  • SERVER-38109 Update generate_resmoke_suite.py to use cached history endpoint
  • SERVER-38110 Generate resmoke config YAML for a sub-suite
  • SERVER-38112 Add “generate resmoke sub-suites” in etc/evergreen.yml
  • SERVER-38113 Generate evergreen config for generated sub-suites
  • SERVER-38114 Update evergreen.yml to use generate tasks for already split tasks
  • SERVER-38115 Consolidate setting of resmoke.py –job to a python script
  • SERVER-38177 Repair with bind_ip results in a null pointer dereference
  • SERVER-38182 run_check_repl_dbhash_background aborts all transactions after an error even if they’ve already successfully committed
  • SERVER-38415 checkLog.containsWithCount does not reset count before each loop of assert.soon
  • SERVER-38445 Date_t and Duration addition can overflow
  • SERVER-38509 Handle degraded mode for test history in generate_resmoke_suites
  • SERVER-38616 LDAPArrayIterator behaves incorrectly when initialized with an empty array
  • SERVER-38639 Install psutil module in “run tests” in etc/evergreen.yml [v4.0]
  • SERVER-38710 Support dependencies when generating evergreen tasks
  • SERVER-38748 Background indexes created through applyOps should run on the command thread
  • SERVER-38818 Better handle dependencies between generated tasks
  • SERVER-38887 Mongo.getDBs() does not correctly inspect privileges
  • SERVER-38946 Properly handle new excludes in generated tests
  • SERVER-38990 Exclude tests that require mmapv1 for s390x variants
  • SERVER-39013 Add gdb pretty printers for absl::flat_hash_map/set
  • WT-4192 Remove WiredTiger raw compression support
  • WT-4280 Add debugging to know which session has a hazard pointer
  • WT-4319 Improvements to csuite tests
  • WT-4331 Further extend max wait time for test_bug019.py
  • WT-4383 Update session statistics to reflect the operation statistics.
  • WT-4384 Add documentation about session statistics cursor
  • WT-4393 Document cursor behaviour for read committed isolation
  • WT-4410 Split ‘unit-test’ task to reduce Evergreen Ubuntu build variant runtime
  • WT-4417 Make os_cache_max and os_cache_dirty_max reconfigurable
  • WT-4421 Add a way to calculate modify operations
  • WT-4430 Fix race between prepare and page instantiate with fast truncate
  • WT-4434 Modify zstd compression level from 3 to 6
  • WT-4438 Use more accurate statistics for cursor cache totals
  • WT-4442 Add the ability to duplicate a backup cursor
  • WT-4454 Auto-generate Evergreen configuration when adding new ‘make check’ or csuite tests
  • WT-4455 test_wt4156_metadata_salvage with HAVE_ATTACH fails on zSeries
  • WT-4457 Add a maximum of dirty system buffers for the logging subsystem
  • WT-4463 Reduce runtime for csuite handle locks testing
  • WT-4464 In debug output row-store internal page keys may not format correctly
  • WT-4469 Coverity #105148: redundant test
  • WT-4470 Minimize testing that requires TESTUTIL_ENABLE_LONG_TESTS
  • WT-4479 Remove schema lock wait assertion from the test
  • WT-4480 Fix duplicate backup cursor and archiving check
  • WT-4481 Evergreen script cleanups
  • WT-4482 lint

4.0.5 Changelog

Security

  • SERVER-35212 URI connection does not default to admin database when no authSource is specified
  • SERVER-37687 Capture libldap ErrorString in bind failure

Sharding

  • SERVER-30714 Handle step down error in ReplicationCoordinatorExternalStateImpl::_shardingOnTransitionToPrimaryHook
  • SERVER-36349 Handle the ShardingOperationFailedStatus in the OperationShardingState destructor when the OperationContext is not created in a ServiceEntryPoint
  • SERVER-36965 Ensure setUp writes in safe_secondary_reads_single_migration_suspend_range_deletion.js get propagated to the shard secondary
  • SERVER-36966 Sharded map reduce may fail to clean up temporary output collection
  • SERVER-37051 ShardServerCatalogCacheLoader does not check the internal term after reading from the task queue
  • SERVER-37080 Implement tuneable batch size for chunk migrations
  • SERVER-37339 Sharding state is set to initialized on Grid before sharding components are fully initialized
  • SERVER-37354 Make _shardsvrShardCollection re-entrant
  • SERVER-37511 Logical session reaper and refresh threads should set up sessions collection immediately
  • SERVER-37616 Implement tuneable batch size for the rangedeleter
  • SERVER-37624 Sessions never expire when you change value of localLogicalSessionTimeoutMinutes
  • SERVER-37902 recovering_slaveok.js should assert all writes it makes succeed
  • SERVER-37918 Fast initial split algorithm produces corrupted routing info if passed unsorted zones list
  • SERVER-37932 Remove erroneous part of coll_epoch_test1.js that attempts to test something that shouldn’t work, but due to a bug in the test, the test passes
  • SERVER-38371 Session catalog migration will skip later sessions if a different earlier session encounters new transaction
  • SERVER-38392 Remove assertion that we can’t shard a non-empty collection associated with tags

Replication

  • SERVER-37317 Make sleepmillis more conservative in slow transaction logging unit tests
  • SERVER-37500 Blacklist geo_s2ordering from replica_sets_kill_primary_jscore_passthrough suite
  • SERVER-37557 Add startup warning about enableMajorityReadConcern and usage of arbiters
  • SERVER-37676 Implicit collection creation is allowed in aborted transactions
  • SERVER-37935 Remove read concern “majority” overrides for change streams test suites
  • SERVER-38024 initial_sync_oplog_hole test should be tagged as requiring document locking

Query

  • SERVER-36115 invalidated_cursors.js FSM workload should ensure killOp is sent to same node as currentOp
  • SERVER-37385 Change max_time_ms.js to tolerate ‘Interrupted’ error codes
  • SERVER-37838 stepDown during a getMore followed by an OP_KILL_CURSORS can crash the server
  • SERVER-38070 Infinite loop in aggregation expression
  • SERVER-38164 $or pushdown optimization does not correctly handle $not within an $elemMatch

Aggregation

  • SERVER-37027 [4.0 only] Adapt change stream resume token when a stream detects FCV changes
  • SERVER-37182 Different values when referencing whole object vs. a field of that object after $arrayToObject
  • SERVER-37200 $match stage following $listSessions not working against mongos
  • SERVER-37750 Optimized $sample stage does not yield
  • SERVER-37779 mongos does not correctly enforce that a change stream must be the first stage
  • SERVER-38223 change_fcv_during_change_stream.js requires majority read concern
  • SERVER-38332 change_fcv_during_change_stream.js requires transactions

Storage

  • SERVER-29825 Do not allow rename from unreplicated to replicated DB or vice-versa
  • SERVER-36873 ReplicationCoordinatorExternalStateImpl::shutdown() must not hold _threadMutex while waiting for _taskExecutor
  • SERVER-36968 Rebuild interrupted indexes before checking AuthZN index presence
  • SERVER-37313 FTDC collection blocked during foreground index build on secondary
  • SERVER-37408 Add afterClusterTime to initial sync collection scans
  • SERVER-37524 In-Memory Storage Engine With Storage Watchdog Crashes The Server
  • SERVER-37784 Repairing the size storer should not fassert
  • SERVER-37796 Always salvage WiredTiger metadata regardless of error code when starting with repair
  • SERVER-37862 Reduce update ops in initial_sync_wt_cache_full.js
  • SERVER-37930 Add test coverage for createIndexes inside nested applyOps
  • SERVER-37931 lock_stats_suboperation_logs.js should ignore noise lock stats

Operations

  • SERVER-35485 Mongo Shell does not accept compressors connection string argument
  • SERVER-36262 mongo shell: allow users to show dbs (on <4.0 versions of the server) without the listDatabases privilege
  • SERVER-36272 Shell assertion failure with certain characters in the password
  • SERVER-36977 Initial mongod.log is created using umask vs mode 600

Build and Packaging

  • SERVER-35972 Run push tasks more often
  • SERVER-37598 Add a canary builder for GCC 8
  • SERVER-38049 embedded-android pom.xml should declare slf4j dependency as optional
  • SERVER-38078 WT SCons configure checks for fallocate and sync_file_range are broken
  • SERVER-38421 Requirement on cryptography should reflect what is in the toolchain
  • SERVER-38581 Create “is_release” compile expansion

Tools

  • TOOLS-1709 Set build version and git revision using -ldflags
  • TOOLS-2149 Configure build outside Evergreen

Internals

  • SERVER-34770 Retry on JavaScript execution interruptions in stepdown suites
  • SERVER-35062 Add TPCC to Sys Perf Configuration
  • SERVER-35250 save dbtest debug symbols in debug_symbols tar
  • SERVER-35768 gssapiServiceName URL parameter does not work
  • SERVER-35832 Correct flaws in Dagger evergreen config
  • SERVER-36060 Make unit tests build cleanly on clang-6
  • SERVER-36437 The dbstats command should lock the database in MODE_IS instead of MODE_S
  • SERVER-36626 Draw wait-for graph from left to right
  • SERVER-36805 Run tpcc on 3 node replset
  • SERVER-36998 compile_dbtest task isn’t running against large distro on Enterprise Windows 2008R2 builder
  • SERVER-37472 Improve behavior if user downgrades to 4.0 binary without setting FCV to 4.0
  • SERVER-37526 IDLify listDatabases command
  • SERVER-37527 Broken logic in ServerMechanismBase class.
  • SERVER-37551 Add {authorizedDatabases:bool} param to {listDatabases} command.
  • SERVER-37628 Fix mongo_uri_test:InvalidTestCase construction
  • SERVER-37678 Update linter to enforce SSPL in header files
  • SERVER-37717 Race between Baton::notify() and Waitable::wait()
  • SERVER-37854 Coverity analysis defect 105094: Uninitialized scalar field
  • SERVER-37877 Enable sys-perf testing of auditing on v4.0
  • SERVER-37913 coll_epoch_test1.js does not wait for the config server to replicate after dropping collections.
  • SERVER-37941 specifying –bind_ip localhost results in error “address already in use” when IPv6 alias exists
  • SERVER-38055 Mongod servers started through the shell do not respect TestData.enableMajorityReadConcern
  • SERVER-38066 Shell utils should open files in binary mode
  • SERVER-38098 MongoDB’s yaml-cpp is rejected by latest MSVC
  • SERVER-38111 Implement max_sub_suites in generate_resmoke_suite.py
  • SERVER-38116 Update fuzzer tasks to use generate.tasks
  • SERVER-38159 Blacklist umask nopassthrough test on mmapv1
  • SERVER-38178 Buffer Overflow in data_builder.h when using terminated StringDatas
  • SERVER-38281 TLS info message isn’t captured into system log
  • SERVER-38303 Temporarily handle ipv6 failures due to s390x machine without ipv6 enabled
  • SERVER-38306 change ‘multipath’ to ‘multiversion’ in evergreen_gen_fuzzer_test
  • SERVER-38312 Unable to run jstestfuzz* tasks on variants with long names
  • SERVER-38452 Automate Maven Central releases for MongoDB embedded
  • TOOLS-1566 Should not include “ssl” tag for Linux 64 build
  • TOOLS-1742 import cycle between util and testutil
  • TOOLS-1996 Allow building tools from inside an ordinary GOPATH
  • TOOLS-2155 Set version/git-commit via ldflags in Evergreen and Server Evergreen
  • TOOLS-2157 Update server vendoring
  • WT-3756 Adjust pre-allocated file amount downward if we’re not using them quickly enough
  • WT-4043 Take locks while dumping the cache to avoid crashes
  • WT-4159 Improve log preallocation algorithm
  • WT-4298 Fix workgen to retry on WT_ROLLBACK and clear ops after warmup
  • WT-4343 Unlock when sleeping to allow other log threads to make progress
  • WT-4345 Set corruption and return salvage on facing a missing log file
  • WT-4371 Workgen improvements to create a MongoDB-like workload
  • WT-4372 For throughput testing, create a standard metric to measure latency smoothness
  • WT-4376 Fix a bug where table index open can race
  • WT-4378 Create new auto functions and cursor for session level statistics
  • WT-4381 Reset session statistics as on WT_SESSION::reset()
  • WT-4385 Prepare-conflict during a cursor scan can return the wrong key
  • WT-4392 A large lint change
  • WT-4394 Reduce Evergreen Ubuntu build variant runtime by splitting up ‘make check’ tests
  • WT-4395 Seg fault walking corrupted log with log cursor
  • WT-4396 When retrying after prepare-conflict, cursor unable to find a valid update
  • WT-4399 Fix compression with workgen’s wtperf emulation
  • WT-4400 Fix workgen use of PRIxxx macros, needed for old C++ compilers
  • WT-4401 workgen: wtperf emulation: sample_interval broken with integer values
  • WT-4402 Add rollback support and monitor JSON output in wtperf
  • WT-4403 Add statistic tracking accumulated dirty cache
  • WT-4405 Fix cursor next and prev for prepared transactions
  • WT-4409 Fix workgen throttling
  • WT-4411 Added connection statistic for current total of cached cursors
  • WT-4412 wtperf coverity fixes
  • WT-4418 Don’t keep key/value memory buffers allocated for cached cursors
  • WT-4419 big-endian machines incorrectly configure little-endian crc32c support
  • WT-4422 Don’t queue clean pages for urgent eviction
  • WT-4427 Make WiredTiger timestamps always on and 8 bytes
  • WT-4440 Force a copy of the stable timestamp for clarity

4.0.4 Changelog

Security

SERVER-37135 TLSVersionCounts needs to track and report TLS 1.3

Sharding

  • SERVER-29160 Sharding commonly uses write concern timeouts of 15 seconds and these are timing out in migration related operations and causing BFs
  • SERVER-31563 Reevaluate not_allowed_on_sharded_collection_cmd.js testing
  • SERVER-31892 moveChunk with waitForDelete doesn’t wait for majority write concern
  • SERVER-35323 sessionId matching ignores userId part of the lsid
  • SERVER-35763 lastWriteDate field can get out of sync between repl set nodes during migration
  • SERVER-36831 LogicalSessionCache on mongos does not correctly report active operations
  • SERVER-36850 Add a replication passthrough suite to detect errors in LogicalSessionsCache
  • SERVER-36959 _shardServerShardCollection should use afterOpTime when counting chunks on the config server
  • SERVER-37142 invariant failure during movePrimary during cleanup
  • SERVER-37330 Add sharded passthrough suites to detect errors in LogicalSessionCache
  • SERVER-37430 Destroy sharding task executors and AsyncRequestSenders after the PeriodicRunner is destroyed in mongod shutdown
  • SERVER-37496 The balancer shouldn’t register a shutdown task after the process is multithreaded
  • SERVER-37578 Assert that a zone is associated with a shard before sharding the collection
  • SERVER-37657 Report the offending oplog entries if a batch contains non-increasing transaction numbers
  • SERVER-37918 Fast initial split algorithm produces corrupted routing info if passed unsorted zones list

Replication

  • SERVER-20845 re-add replSetReconfig to auditing suite
  • SERVER-36978 TaskRunner must ensure Client is initialized for thread before running tasks
  • SERVER-36979 Aborting a transaction must abort WUOW before releasing locks.
  • SERVER-37118 Coverity analysis defect 105000: Arguments in wrong order
  • SERVER-37227 Reintroduce enableMajorityReadConcern:false server parameter
  • SERVER-37514 Snapshot readConcern without atClusterTime should always be speculative

Query

  • SERVER-37058 Update with numeric field names inside an array can cause validation to fail
  • SERVER-37132 Negation of $in with regex can incorrectly plan from the cache, leading to missing query results

JavaScript

  • SERVER-30773 bsonWoCompare and bsonBinaryEqual should work with bsonelement types
  • SERVER-37126 Invoke runSafely for all external implscope methods

Storage

  • SERVER-26854 LockStats for sub-operations should not include time for previous sub ops
  • SERVER-36534 Don’t acquire locks on oplog when writing oplog entries
  • SERVER-36883 support non-doc-locking storage engines in SERVER-36534
  • SERVER-37055 IndexBuildBlock::fail() should grab a lock
  • SERVER-37394 Invariant failure deadline != Date_t::max() or Invariant failure date.isFormattable()
  • SERVER-37618 Capture all the logs in lock_stats_suboperation_logs.js
  • SERVER-37662 Include backupCursor state in output of serverStatus
  • SERVER-37749 replSetResizeOplog command does not validate argument

Build and Packaging

  • SERVER-37067 Upgrade static OpenSSL to 1.1.0i
  • SERVER-37158 Set compatibility_version field for darwin SDK shared libraries
  • SERVER-37402 Improve mobile licensing text
  • SERVER-37407 Harmonize embedded tarball name and unpacked directory names
  • SERVER-37488 Install BCSymbolsMap into darwin embedded frameworks
  • SERVER-37584 Build failure on case-sensitive macOS file system: CommonHmac.h
  • SERVER-37596 Add debug info packages to mobile SDK builds
  • SERVER-37640 no member named ‘SSLCopyRequestedPeerNameLength’ in the global namespace
  • SERVER-37651 Update license files for MongoDB Community Edition
  • SERVER-37691 Compile WatchOS builds with -fapplication-extension flag
  • SERVER-37754 Duplicate license headers in IDL files
  • SERVER-37785 Rename bundle identifier in frameworks to adhere to bundle naming rules
  • SERVER-37852 Publish mobile artifacts on release builds

Tools

  • TOOLS-2069 mongoreplay does not support SCRAM-SHA-256
  • TOOLS-2102 Mongorestore does not check for errors decoding the oplog.bson file
  • TOOLS-2131 mongorestore hang in replaying oplog with –archive and –oplogReplay option

Internals

  • SERVER-18985 setParameter should log at level 0
  • SERVER-31570 Adjust mongobridge port allocations for easier debugging
  • SERVER-33470 Log archival message, even if successful, in hook_test_archival.py
  • SERVER-34986 CIDR Block That is Exempt from maxConns
  • SERVER-35570 Improve robustness of backup_restore.js around dropping test database
  • SERVER-35818 provide a stdx::variant
  • SERVER-35861 Remove call to dashboard_gen.py in perf.yml
  • SERVER-36250 Add support for optionally logging specific negotiated TLS versions
  • SERVER-36420 SecTrustCopyAnchorCertificates is not safe to use after a fork
  • SERVER-36451 ContinuousStepdown with killing nodes can hang due to not being able to start the primary
  • SERVER-36705 Add CocoaPod for embedded darwin frameworks
  • SERVER-36721 list_local_sessions.js cannot run concurrently with refreshLogicalSessionCacheNow
  • SERVER-36756 Log the githash of the 10gen/jstestfuzz repository when the fuzzer’s self-tests fail
  • SERVER-36885 Make ASIO remember IOCP state when transiently out of resources
  • SERVER-36964 Prevent secondaries in SessionsCollectionRS from attempting to set up the sessions collection.
  • SERVER-36986 list_local_sessions.js expects non-existent session to exist when running concurrently with LogicalSessionsCache refresh
  • SERVER-36988 awaitdata_getmore_cmd.js times out when run concurrently with the LogicalSessionCache refresh suite
  • SERVER-37064 Wrap “mongod_flags” onto multiple lines for readability
  • SERVER-37081 Catch asio::system_errors when resolving GenericSocket
  • SERVER-37083 Improve Window secure allocator
  • SERVER-37228 Escape double quotes in hang analyzer’s waitsfor graph
  • SERVER-37334 Strip .jar and .aar of unnecessary shared objects
  • SERVER-37353 Handle $slice value of LLONG_MIN gracefully
  • SERVER-37391 plan_cache_index_create.js should wait for index build start, rather than just createIndexes command start
  • SERVER-37393 Fix destructor race in ReplicaSetMonitorManager
  • SERVER-37410 Add standalone passthrough suites to detect errors in LogicalSessionCache
  • SERVER-37411 Fix bundle identifiers in embedded Info.plist
  • SERVER-37424 Sys-perf: change v4.0 branch batch time to once a week
  • SERVER-37425 Longevity tests – increase batch time to once a year
  • SERVER-37464 Reduce threadCount and iterations in secondary_reads.js workload
  • SERVER-37467 Have collect_resource_info.py recover from transient errors.
  • SERVER-37477 Disable TIG daily cron for update_test_lifecycle
  • SERVER-37495 Change Android minimum API level to 21
  • SERVER-37513 Pass along JNA exceptions from MongoEmbeddedCAPI.create
  • SERVER-37561 Server startupWarnings show spurious empty lines
  • SERVER-37563 Get rid of getGlobalAuthorizationManager and unnecessary references to the authorization_manager_global library
  • SERVER-37583 Changes to etc/cloud_nightly.yml
  • SERVER-37599 Log exit code of shell-spawned processes
  • SERVER-37683 Change embedded iOS min version to 11.0 in CocoaPod podspec
  • SERVER-37684 Change embedded iOS min version to 11.0 in evergreen builders
  • SERVER-37685 ensure free monitoring queue preserves FIFO on messages with same deadline
  • SERVER-37701 Make SessionUpdateTracker include the uid portion of LogicalSessionId when tracking
  • SERVER-37744 Fix license path in mongoc_embedded podspec
  • SERVER-37755 Invalid .plist for mongoc and bson .frameworks
  • SERVER-37813 Switch Android publishing from Bintray to Artifactory
  • SERVER-37832 Fix Windows/OSX ssl_options_test unittests on v4.0
  • WT-3898 Keep prepared updates in lookaside until they are read
  • WT-3995 Enhance timestamp abort to accept more number of threads
  • WT-4149 Log recovery and salvage should handle removal or truncation of log files
  • WT-4164 Ensure test/format configures a reasonably sized cache
  • WT-4214 Simplify timestamp handling for timestamp abort test
  • WT-4217 Enhance commit and rollback to re-read prepared updates
  • WT-4220 Enable long running prepared support
  • WT-4224 Add statistics for prepared transactions
  • WT-4293 WT_CURSOR.remove can lose a cursor position
  • WT-4297 Enhance steady throughput workload
  • WT-4314 Don’t access unmapped pages when evicting a tree
  • WT-4315 In rollback_to_stable, only check timestamp order if enforced
  • WT-4322 Enable direct I/O based crash test in make check
  • WT-4323 Fix race between setting transaction read_timestamp and updating global pinned timestamp
  • WT-4328 Use an internal session handle for schema operations in a txn
  • WT-4330 Change the wt utility to not use stdout if the -f option to the dump or printlog commands is specified
  • WT-4333 WiredTiger cursor cache doesn’t handle all possible locked handle states
  • WT-4335 Don’t fail rollback_to_stable due to sweep activity
  • WT-4337 Coverity #1395811 Time of check time of use
  • WT-4338 New WT_TXN_TS_XXX flags break #undef HAVE_TIMESTAMPS build
  • WT-4339 Revert part of a previous commit that simplified handle locking
  • WT-4340 The cursor caching layer can incorrectly release too many handle locks
  • WT-4341 Support million collection testing in Evergeen
  • WT-4342 Set session max on all configuration strings in timestamp_abort test
  • WT-4346 Remove prepared updates from lookaside on reading the page.
  • WT-4347 Limit the threads spawned by timestamp_abort with default config
  • WT-4348 Create all tables before spawning threads in random_directio test
  • WT-4351 Ensure resolving prepared transactions use updates from itself
  • WT-4355 Fail to find prepared updates during transaction rollback
  • WT-4358 Enhance the handle-lock stress test program
  • WT-4374 Fix a bug where a page could transition from WT_REF_LIMBO incorrectly
  • WT-4387 Fix ordering of referenced shared libraries in workgen
  • WT-4389 Update wtperf runner script to accept multiple arguments

4.0.3 Changelog

Security

  • SERVER-35418 Allow specifying CAs for incoming and outgoing connections separately
  • SERVER-36456 MongoD does not support kerberos on Windows
  • SERVER-36827 Warning about “No SSL certificate validation can be performed” is misleading

Sharding

  • SERVER-30841 Lower the amount of metadata refresh logging
  • SERVER-34500 Use causal consistency in database_versioning_upgrade_downgrade.js test when reading from secondary after setFCV
  • SERVER-35222 Crash on the config server at expired session cleanup
  • SERVER-35755 CollectionLock acquisition in shard_filtering_metadata_refresh.cpp can cause server to terminate on stepdown
  • SERVER-35773 MetadataManager directly calls into the CatalogCache
  • SERVER-36054 Get rid of ScopedCollectionMetadata’s operator bool
  • SERVER-36116 Get rid of CollectionShardingState::resetAll
  • SERVER-36130 Migration status reports verify connection strings – but those can change
  • SERVER-36164 Decouple ScopedCollectionMetadata from MetadataManager
  • SERVER-36332 CursorNotFound error in GetMore on a secondary with sessions
  • SERVER-36433 NamespaceSerializer lock should be used during drop database
  • SERVER-36634 Change FCV check to check for CommandNotFound in _shardsvrShardCollection and write to config after creating collections on non-primary shards
  • SERVER-37050 wait for replication in session_collection_auto_healing

Replication

  • SERVER-35616 Oplog query on initial syncing node can cause segmentation fault
  • SERVER-35793 Write concurrency test to verify server-wide transactions metrics tracking
  • SERVER-35821 readConcern:snapshot transactions need a read timestamp <= WT’s all_committed point
  • SERVER-36127 use w:majority instead of w:2 in apply_batch_only_goes_forward.js
  • SERVER-36470 Prevent change_stream_failover.js to elect a new primary which is the same as old primary after old primary steps down.
  • SERVER-36503 Skip dry-run election during election handoff
  • SERVER-36539 Test that DBClientCursor sends getMore for exhaust cursor if moreToCome is not set
  • SERVER-36565 Killing a session with a transaction can cause the thread to throw WriteConflictError
  • SERVER-36746 A failed step down attempt shouldn’t unconditionally reset LeaderMode to kMaster
  • SERVER-36846 TransactionsMetrics unit test should sleep a bit when trying to assert elapsed time > 0
  • SERVER-36975 Fix race condition in read_concern_snapshot_catalog_invalidation.js
  • SERVER-36982 Reintroduce enableMajorityReadConcern:false server parameter
  • SERVER-36985 Test single replica set transactions immediately after a rollbackViaRefetch
  • SERVER-37010 Prevent unexpected elections in initial_sync4.js and initial_sync_rename_collection*.js
  • SERVER-37048 Hold global intent lock whenever accessing the oplog collection pointer
  • SERVER-37105 Make it clear from the stack trace whether a command is running in a transaction
  • SERVER-37147 sessions_collection_auto_healing.js should use 2 node replica set
  • SERVER-37152 Increase write concern timeouts for writes expected to succeed in tags.js

Query

  • SERVER-13946 Consider putting skip stages below fetch stages
  • SERVER-36212 getMore should not enforce that session id matches until FCV is 4.0
  • SERVER-36299 Implement support for exhaust cursors with OP_MSG in DBClientCursor
  • SERVER-36435 Increase maxTimeMS timeout in awaitdata_getmore_cmd.js
  • SERVER-36453 Fix race condition in aggregation_cursor_invalidations.js
  • SERVER-36944 applyOps does not permit unknown field names when creating a v:1 index
  • SERVER-36951 applyOps should work with a createIndexes command without a UUID

Aggregation

SERVER-36993 mongod crash: Invariant failure indexedOr src/mongo/db/query/index_tag.cpp 237

Storage

  • SERVER-34577 read_after_optime.js fails on mongoe
  • SERVER-34606 Test (and possibly fix) behavior around majority commit point and oplog truncation
  • SERVER-35657 Do not delay journal flushes when operations are waiting for oplog visibility
  • SERVER-35780 renameCollection across databases incorrectly timestamps metadata for secondary index builds
  • SERVER-36400 Explicitly destroy the client on exiting the run body of each BackgroundJob
  • SERVER-36531 Lock acquisition may throw despite presence of UninterruptibleLockGuard when WT tickets are exhausted
  • SERVER-36879 write regression test for stuck cache issue during rollback
  • SERVER-36961 createIndexes command should check if index already exists with weak lock
  • SERVER-36969 initial_sync_wt_cache_full.js takes too long to complete on slow hosts
  • SERVER-37002 dropping a collection with long index names via rename fails under MMAPv1
  • SERVER-37121 Retry timestamping secondary background index builds

WiredTiger

  • SERVER-19815 Make repair more robust with the WiredTiger storage engine

Operations

  • SERVER-27588 Warning to disable defrag of transparent_hugepages when thp is disabled
  • SERVER-33606 mongo shell startSession() should fail if the server doesn’t support logical sessions
  • SERVER-34864 String-valued fields should not participate in schema change detection in ftdc
  • SERVER-35989 Mongo shell needs a countDocuments function

Build and Packaging

Tools

  • SERVER-30997 mongo cli –password is masked, but not when using mongodb:// connection string
  • TOOLS-2035 mongofiles_write_concern_mongos.js fails on server unstable

Internals

  • SERVER-28990 when started with –repair mongod should not try to bind to a port
  • SERVER-33908 Add pre and post invocation background activity hooks to CAPI implementation
  • SERVER-33978 References to sudo in evergreen.yml should use ${set_sudo}
  • SERVER-34120 scoped connection not being returned to the pool
  • SERVER-34711 Enable burn_in_tests to understand Evergreen task selectors
  • SERVER-34798 Replace subclasses of ServiceContext with decorations and flexible initialization code
  • SERVER-35216 Expose ReplicaSetManager refresh period to the mongo shell
  • SERVER-35233 Powercycle remote collection validation does not skip views
  • SERVER-35284 C++ “death test” unit tests should fork before constructing the test fixture, not after.
  • SERVER-35517 Add failpoint mechanism to the mongo shell
  • SERVER-35585 Make PeriodicRunner jobs be pausable/resumable
  • SERVER-35629 Use WiredTiger salvage API for repairing metadata files
  • SERVER-35630 Missing or corrupt data files should cause MongoDB to exit with an error message to run repair
  • SERVER-35696 Provide a way to restore idents known by WiredTiger, but unknown to the _mdb_catalog
  • SERVER-35731 Prevent a repaired node from re-joining a replica set
  • SERVER-35782 Repair should move aside unsalvageable data files and create empty ones in their place
  • SERVER-35784 Fix ambiguously named test fixture in commands_test.cpp
  • SERVER-35800 resmoke.py should retry getting a build_id and test_id from logkeeper
  • SERVER-35985 sessions_test and sharding_catalog_manager_test don’t destroy all Clients before destroying the ServiceContext
  • SERVER-36019 Create script to collect resource utilization of Android application
  • SERVER-36069 Vendor mongoebench-compatible JSON config files from mongodb/mongo-perf into src/third_party
  • SERVER-36076 Create new resmoke.py test suite for running mongoebench on a desktop
  • SERVER-36077 Create new resmoke.py test suite for running mongoebench on an Android device
  • SERVER-36078 Integrate adb resource monitor into mongoebench test suite for Android
  • SERVER-36084 Remove sharding runtime from embedded
  • SERVER-36162 Powercycle - ensure internal crash command has been executed on the remote host
  • SERVER-36169 Resmoke: bare raise outside except in the stepdown hook
  • SERVER-36258 Perform construction of ServiceContext after execution of mongo initializers, not during
  • SERVER-36347 Make parse_zone_info.js handle new error message from ServiceContext refactor
  • SERVER-36351 ServiceContextMongoDTest doesn’t persist TempDir correctly
  • SERVER-36474 Cannot initiate a replica set if free monitoring is disabled at command-line
  • SERVER-36621 A call to log() in capi_test.cpp does not print to stdout
  • SERVER-36691 Only recover orphaned collection idents when starting with repair, not after an unclean shutdown
  • SERVER-36702 SCons to be able to install binaries as darwin framework
  • SERVER-36703 SCons to be able to link against darwin frameworks
  • SERVER-36704 Embedded to support logical sessions the same way as standalone mongod
  • SERVER-36722 Add remote maven repository for embedded AAR/JAR
  • SERVER-36725 periodic_runner_impl_test should manually call tearDown
  • SERVER-36732 Wait for all secondaries to be up and electable in election handoff jstests
  • SERVER-36747 Add a small time delay to “jstests/ssl/ssl_client_certificate_warning_suppression.js”
  • SERVER-36749 Remove race in Service Executor Adaptive shutdown
  • SERVER-36757 Generate and extract mongoebench-compatible JSON config files to consistent locations
  • SERVER-36761 Add requires_replication tag to disk/repair_invalidates_replica_set_config.js
  • SERVER-36768 Orphaned collection recovery should allow recovered collections to be renamed
  • SERVER-36783 Run the secondary_reads_passthrough task of enterprise-rhel-62-64-bit-inmem on rhel62-large
  • SERVER-36836 v4.0 fsm workload “yield_group.js” should accept “InternalError” as a possible outcome of the group command
  • SERVER-36842 Core dump not generated after invariant failure in powercycle hosts
  • SERVER-36869 fsm capped collection checks should only make 1 query for assertions
  • SERVER-36897 OplogReader.hasNext can return false -> true, confusing checkOplogs
  • SERVER-36906 Connection state now allowed to be kConnectionStateUnknown
  • SERVER-36919 Add server setParameter tlsWithholdClientCertificate (bool)
  • SERVER-36942 Differentiate invalid hostname from invalid certificate
  • SERVER-36947 Enable test commands for perf micro benchmarks
  • SERVER-36980 Remove old aggregation fuzzer from evergreen
  • SERVER-36987 ChunkVersion::minorVersion truncates to 16 bit
  • SERVER-37013 mongoebench-compatible JSON config files attempt to read from views without using “find” command
  • SERVER-37041 Update eval blacklists on older branches to account for differences in tests across branches
  • SERVER-37042 Handle exceptions from cursor.next in ReplSetTest
  • SERVER-37071 Blacklist set7.js and max_doc_size.js from retryable_writes_jscore_stepdown_passthrough
  • SERVER-37127 Update baseline comparison for sys-perf
  • SERVER-37149 Remove deadlock in ScheduleBeforeStartupTest
  • SERVER-37156 benchRun should wait for the worker threads it spawns to exit
  • SERVER-37170 mongos fails to start with error ‘DuplicateKey SetWiredTigerCustomizationHooks’ on dynamic builds
  • SERVER-37216 Android Multiarch builder can’t publish to mavenLocal
  • SERVER-37256 Add missing index_access_methods dependency to storage_wiredtiger_recovery_unit_test
  • TOOLS-1989 Switch evergreen intensive testing to match server priority buildversions
  • TOOLS-2050 oplog_rename_test fails on Windows due to access violation error
  • TOOLS-2099 Tools jstests failing on replica set shutdown
  • WT-3735 Add a workgen workload that generates a lot of page splits
  • WT-3736 Add statistics to measure contention on lookaside cursor
  • WT-3879 Disallow checkpoint from evicting metadata pages
  • WT-3894 Timestamp queue implementation and statistics improvements
  • WT-4090 Low priority reads
  • WT-4104 Fix test/format failure during comparing data content with berkeley db
  • WT-4119 Avoid restarts updating / removing during a column store scan
  • WT-4131 Rename lookaside to cache overflow
  • WT-4144 Fix rollback_to_stable with lookaside history
  • WT-4154 Surface the oldest read timestamp
  • WT-4156 Add new wiredtiger_salvage top level API
  • WT-4176 Expose a WT_SESSION.query_timestamp method
  • WT-4177 Backup cursor open should force a log file switch
  • WT-4185 Don’t remove all lookaside entries when reading a page
  • WT-4211 Add automated test for long running prepared transactions
  • WT-4212 Update lookaside schema to handle prepared transactions
  • WT-4216 Use separate counters for page_swap yield and sleep
  • WT-4218 Change eviction to evict prepared updates
  • WT-4225 Automate a backup test that simulates volume snapshot via dd
  • WT-4231 Fix ctags index of functions with attributes
  • WT-4233 Change log corruption errors to warnings and truncate log
  • WT-4239 Don’t allow checkpoints to perform insert-splits in the tree
  • WT-4241 GNU-stack section should never be conditionally compiled out
  • WT-4243 Fix lookaside sweep to not remove required entries
  • WT-4246 Change transaction update list to support indirect references
  • WT-4248 Fix checkpoints in schema_abort for slow machines
  • WT-4249 Attempt to discard dirty page during verify operation
  • WT-4251 Prepared updates cannot be discarded
  • WT-4252 Btree debug functions can leak scratch buffers on error.
  • WT-4253 Btree debug function to do blind reads doesn’t handle row-store internal pages
  • WT-4256 Loosen check during rollback_to_stable
  • WT-4257 Don’t assume timestamps from lookaside are aligned in memory
  • WT-4259 Restore ref to the previous state rather than MEM when eviction fails
  • WT-4261 Test salvage of out-of-sync metadata/turtle files
  • WT-4262 Lock deleted children in eviction of internal pages
  • WT-4263 Use the right tree when copying a key for a lookaside write
  • WT-4264 Compaction can race with page modifications
  • WT-4267 fixed-length column store operations can corrupt data
  • WT-4268 Random abort should wait until record files exist before starting timer
  • WT-4270 Add an operation field to know where threads hang
  • WT-4272 Increase startup timeout to 30 seconds for slow I/O systems
  • WT-4274 Fix memory leak in wt4156_metadata_salvage test
  • WT-4277 Make truncate in column stores more efficient
  • WT-4281 Shorten runtime of Python test suite
  • WT-4282 Don’t transition pages from limbo to mem unless required
  • WT-4283 Restore WT_ERROR and use a corrupt flag
  • WT-4284 Print a verbose message in recovery on error too
  • WT-4285 Fix wt4156_metadata_salvage Coverity/lint complaints
  • WT-4286 Column store should skip end-of-table checks if there’s an exact match
  • WT-4288 Don’t let return value of closing conn overwrite WT_TRY_SALVAGE
  • WT-4289 Update WT_DATA_CORRUPTION to WT_TRY_SALVAGE in test_txn19.py
  • WT-4291 Fix test_txn19.py error detection by looking for WT_ERROR
  • WT-4292 Add call to testutil_cleanup to avoid memory leak
  • WT-4300 Setting the update timestamp can overwrite the WT_REF.addr field
  • WT-4301 WT_CURSOR.reserve operations can leak memory when committed
  • WT-4305 Add a gating variable for long running prepare support
  • WT-4306 Fix mode if metadata pages need eviction
  • WT-4308 Insert split during sync should not free blocks
  • WT-4321 Disable the random direct I/O test
  • WT-4325 Add a WiredTiger-local version of the qsort(3) call

4.0.2 Changelog

Sharding

  • SERVER-14394 Create initial hashed shard key chunks directly on shards
  • SERVER-25333 Clean up MigrationDestinationManager
  • SERVER-27725 Use batch insert when migrating chunks
  • SERVER-33417 Replace custom majority write catchup with Replication-designed write concern method in the Migration Destination Manager
  • SERVER-35092 ShardServerCatalogCacheLoader should have a timeout waiting for read concern
  • SERVER-35238 Drop the collection after removing the partially written chunks for mapReduce in mongos_manual_intervention_actions.js
  • SERVER-35441 drop/dropDatabase does not cleanup config.tags
  • SERVER-35658 session migration is too sensitive to replica set primary elections
  • SERVER-35676 numInitialChunks Argument is Not Validated
  • SERVER-35720 Allow zones to be created on non-existent collection
  • SERVER-35722 Create internal _shardsvrShardCollection command that runs on the primary shard
  • SERVER-35723 Make the collection critical section into a RAII class
  • SERVER-35794 Read zone information for a collection during internal shardCollection command
  • SERVER-35849 Remove dependency of the write commands on sharding_runtime_d
  • SERVER-36031 Move logic to create initial chunks and update metadata during shard collection to the primary shard
  • SERVER-36071 Check shardsvrShardCollection response status
  • SERVER-36092 Create internal command to create collection on new shard with existing uuid
  • SERVER-36102 Create initial chunks on appropriate shards for zoned sharding
  • SERVER-36322 NamespaceSerializer lock should be used for dropCollection
  • SERVER-36463 Bypass validation of a dummy signatures for isMaster on the unauthenticated connections
  • SERVER-36550 Blacklist drop_sharded_db_tags_cleanup.js in sharding_last_stable_mongos_and_mixed_shards suite
  • SERVER-36849 Disable new shard collection path on v4.0

Replication

  • SERVER-32148 make NamespaceNotFound an acceptable error for emptyCapped and convertToCapped
  • SERVER-32907 Turn heartbeat log verbosity back down in tests
  • SERVER-33243 Improve logging when a node changes its sync source
  • SERVER-33248 Allow choosing a sync source that we are up to date with if it has a higher lastOpCommitted
  • SERVER-35058 Don’t only rely on heartbeat to signal secondary positions in stepdown command
  • SERVER-35126 Create TxnStats class and store it on the Session
  • SERVER-35129 Create a ServerTransactionsMetrics class and store it as a decoration on the ServiceContext
  • SERVER-35146 Track total number of started transactions
  • SERVER-35147 Track total number of committed and aborted transactions in ServerTransactionsMetrics
  • SERVER-35149 Track total number of open transactions in ServerTransactionsMetrics
  • SERVER-35151 Track total number of active and inactive transactions in ServerTransactionsMetrics
  • SERVER-35168 Track information about last client to run a transaction operation on session
  • SERVER-35173 Add autocommit value to transaction sub-document of currentOp
  • SERVER-35174 Add readConcern and readTimestamp to transaction sub-document of currentOp
  • SERVER-35239 AwaitData cursor must handle getMore from client with higher lastKnownCommittedOpTime
  • SERVER-35246 Ignore NamespaceNotFound errors when running collMod during checkReplicaSet in replsettest.js
  • SERVER-35292 Add total number of started transactions to serverStatus
  • SERVER-35293 Add counts of active and inactive transactions to serverStatus
  • SERVER-35294 Add total number of open transactions to serverStatus
  • SERVER-35295 Add total number of committed and aborted transactions to serverStatus
  • SERVER-35300 Track total transaction duration in TxnStats
  • SERVER-35302 Add startWallClockTime to the transaction sub-document of currentOp
  • SERVER-35305 Add timeOpenMicros to the transaction sub-document of currentOp
  • SERVER-35308 Track total active time of transaction in SingleTransactionStats
  • SERVER-35310 Add timeActiveMicros and timeInactiveMicros to transaction sub-document of currentOp
  • SERVER-35388 Improve misleading error messages for aggregation stages banned in transactions
  • SERVER-35428 Add the ability to add two OpDebug objects together
  • SERVER-35432 Add a method for printing out information about a slow transaction
  • SERVER-35433 Log slow transactions when they finish
  • SERVER-35434 Track aggregate OpDebug stats in SingleTransactionStats
  • SERVER-35442 stepdown global lock acqusition should use wait time, not freeze time
  • SERVER-35450 Add information about last client to run transaction operation to currentOp for inactive transactions
  • SERVER-35492 Rename TxnStats to SingleTransactionStats
  • SERVER-35623 Send a replSetStepUp command to an eligible candidate on stepdown
  • SERVER-35624 Enable election handoff by default and update affected tests
  • SERVER-35695 Enable transactions on inMemory storage engine with a command line flag
  • SERVER-35742 Update ServerTransactionsMetrics for failed commits
  • SERVER-35754 Avoid network errors in stopSet() in catchup_takeover_one_high_priority.js
  • SERVER-35766 Replication commands sent in candidate’s new term can interrupt concurrent vote request
  • SERVER-35770 Running a multi-statement transaction when all WiredTiger write tickets are exhausted may lead to deadlock
  • SERVER-35951 Under PV1, ReplicationCoordinatorImpl::processReplSetFreeze for a single node RS should start an election instead of auto-winning.
  • SERVER-35962 buildindexes_false_with_system_indexes.js restarts nodes and should be tagged [requires_persistence]
  • SERVER-36128 ReplicationCoordinatorImpl::fillIsMasterForReplSet should return isMaster:false while in shutdown
  • SERVER-36225 Do not hold replication mutex when calling getMinValid
  • SERVER-36234 Fix ./jstests/replsets/initial_sync_drop_collection.js to prevent using stale heartbeat info in the test.
  • SERVER-36327 Use stepUp command instead of priorities as a way to designate primary nodes in tags.js
  • SERVER-36331 Kill running op when a transaction expires
  • SERVER-36461 Add ‘transaction’ identifier to slow transaction log output
  • SERVER-36592 Blacklist snapshot_read_kill_op_only.js workload from backup_restore.js lib
  • SERVER-36664 Use awaitReplication in read_committed_with_catalog_changes.js instead of getLastError
  • SERVER-36685 Reverse order of TransactionParticipant (Session in 4.0) and Client locks

Query

  • SERVER-26387 Replace noPassthrough/indexbg2.js with test that uses failpoints
  • SERVER-34846 Covered index with collated field returns incorrect result when collation not involved in match or sort
  • SERVER-36239 MatchExpression parser query rule

Aggregation

  • SERVER-36070 Aggregation with $out results in error when Auditing is enabled
  • SERVER-36123 Reject $out with mode: “replaceCollection” if the output collection is sharded
  • SERVER-36715 Pushing $sort stage to query system can leave pipeline in an unstitched state

JavaScript

SERVER-35986 Stop running eval command in parallel suite on older branches

Storage

  • SERVER-32994 Create a script to rebuild unique indexes in right format after a downgrade
  • SERVER-33740 Add Evergreen task for running powercycle against mobile storage engine
  • SERVER-35367 Hold locks in fewer callers of waitForAllEarlierOplogWritesToBeVisible()
  • SERVER-35386 Wait for the secondary’s majority commit point to advance before pausing batch application in secondary_reads_timestamp_visibility.js
  • SERVER-35473 Mobile SE: Fix writeConflictRetry loop with map-reduce jstests
  • SERVER-35845 Add tag to noPassthrough/indexbg2.js
  • SERVER-36005 IndexCatalogEntryImpl::_catalogIsReady is unsafe to unconditionally call.
  • SERVER-36062 Mobile SE: Stop running parallel and concurrent suites on mobile variants
  • SERVER-36238 replica set startup fails in wt_cache_full.js, initial_sync_wt_cache_full.js, recovery_wt_cache_full.js when journaling is disabled
  • SERVER-36397 Embedded Server SDK Should Return Error When TTL Index Creation is Attempted

WiredTiger

  • SERVER-28734 Recover WiredTiger data files when lacking metadata, but have _mdb_catalog data

Operations

  • SERVER-34664 Commands that are unsupported in a transaction should error
  • SERVER-35180 Safeguard from setting operation session info values while in a direct client
  • SERVER-35617 Unpleasant db.enableFreeMonitoring “not master” error on newly launched mongod
  • SERVER-36294 Sum of currentActive and currentInactive not equal to currentOpen transactions
  • SERVER-36479 Log redaction does not show planSummary when slow queries are logged

Build and Packaging

Internals

  • SERVER-32281 Thread pool task executor ignores errors returned from startCommand()
  • SERVER-33695 Include the loop name in the before and after recovery files in powertest.py
  • SERVER-34258 Error from mount_drives.sh on Windows
  • SERVER-34558 Add SSL_version to client metadata logging
  • SERVER-35003 Consider making the balancer threshold to always be 1
  • SERVER-35025 Tests depending on exact times removeShard is called are invalid
  • SERVER-35037 Create new concurrency suite that runs consecutive operations inside of a single transaction
  • SERVER-35056 Flush ready callbacks on NetworkInterfaceTL shutdown
  • SERVER-35100 Do not log a Python stack trace when a hook dynamic test fails
  • SERVER-35110 Log locations in set_feature_compatibility_version.js where fatal assertions/other errors are expected
  • SERVER-35215 Future::onError<ErrorCodes::Error>() to let you register a handler for a single code.
  • SERVER-35234 makePromiseFuture<T>() to create a bound Promise and Future
  • SERVER-35244 Dropping config db in 4.0.0-rc0 fails while it passes in 3.7.9 and earlier
  • SERVER-35537 Create version of benchRun() which can be used with embedded
  • SERVER-35559 Update transaction retry functions to not call abort after commit
  • SERVER-35592 Create Java bindings for the Embedded CAPI
  • SERVER-35654 rollback_transaction_table.js fails even in WT runs
  • SERVER-35661 Add 5 second syncdelay to rollback shutdown fuzzers
  • SERVER-35684 Remove promise.getFuture()
  • SERVER-35706 Fix race in ctor for LogicalSessionCacheImpl
  • SERVER-35775 Unhelpful Message String in db.getFreeMonitoringStatus()
  • SERVER-35919 Ensure all tests that “use transactions” perform collection drops with w:majority
  • SERVER-35946 Powercycle kill_mongod function should ensure the service is not in a running state
  • SERVER-36001 Add requires_document_locking tag to noPassthrough/indexbg2.js
  • SERVER-36067 Upload artifacts from running install-mobile-test target in Evergreen to S3
  • SERVER-36069 Vendor mongoebench-compatible JSON config files from mongodb/mongo-perf into src/third_party
  • SERVER-36073 Save stats from BenchRunner::finish() to a JSON file in mongoebench
  • SERVER-36129 Concurrency stepdown suites should wait for replication of workload setups before starting stepdown thread
  • SERVER-36191 Cleanup logic for converting BSONElement to strings
  • SERVER-36245 Create a multi-arch android variant
  • SERVER-36274 Re-enable –ycsb-throughput-analysis in sys-perf
  • SERVER-36301 build WT with HAVE_NO_CRC32_HARDWARE on RHEL 6.7 s390x
  • SERVER-36399 Fill in tasks for Cloud nightly tests
  • SERVER-36406 db._authOrThrow should prioritize user specified authenticationMechanism instead of server’s mechanisms
  • SERVER-36448 Disable election handoff in suites that use the ContinuousStepdown hook
  • SERVER-36462 Add atlas user to runtime_secret.yml
  • SERVER-36466 Secure shutdown conditions for SpecificPool
  • SERVER-36623 Do not rebuild indexes before repairing databases
  • WT-3276 Add recover=salvage to recover from a corrupted log file
  • WT-3856 Create a test that runs recovery to different points of time with schema operations
  • WT-3943 Include full error message when a python test asserts
  • WT-3955 Add verbose option to log more messages on error returns
  • WT-3963 Add a schema intensive abort testing
  • WT-3968 Use compression ratio to tune page sizes
  • WT-4010 Simplify test/format timestamp handling.
  • WT-4026 Add implementation for existing file extension configuration API
  • WT-4134 Rework assertion that we don’t discard required history
  • WT-4147 Log recovery should not ignore corruption outside of log records in a log file
  • WT-4160 Restore performance when timestamps are not in use
  • WT-4168 Update upgrading documentation for 3.1.0 release
  • WT-4169 Fix wt verify dump-pages failure
  • WT-4171 Enabling tree walk timing stress causes excessive slowdown
  • WT-4172 Add diagnostic hazard pointer checks in more places before freeing refs
  • WT-4174 Do not access the lookaside file in rollback_to_stable when running with in_memory=true
  • WT-4178 Fixes for wt_btree_immediately_durable needed for in-memory
  • WT-4179 Expose WiredTiger crc32c functions
  • WT-4182 Use conservative approach for log checksum errors
  • WT-4183 Extend verbose option to log more messages on error returns
  • WT-4186 Log recovery should detect and report corruption within log records
  • WT-4187 Coverity: unused value complaints
  • WT-4188 Coverity: unchecked return value complaints
  • WT-4189 Potential infinite loop in __async_flush_wait().
  • WT-4191 Fix Coverity static analysis errors
  • WT-4193 test/format snapshot-isolation search mismatch
  • WT-4194 Improve fairness of eviction with multiple tables
  • WT-4195 When encountering an illegal value, log the value that failed
  • WT-4196 Make log corruption checking work regardless of the machine byte order
  • WT-4198 Some supported MongoDB architectures don’t support crc32 hardware
  • WT-4199 Fix an incorrect report of log corruption
  • WT-4201 Fix Coverity static analysis issues
  • WT-4206 Fix error handling in cursor close routines
  • WT-4207 Coverity #1394567: null pointer dereference
  • WT-4208 tree walks can be interrupted by locked internal pages
  • WT-4210 schema abort child process failing prematurely
  • WT-4213 Rename lock statistics that have redundant or misleading text
  • WT-4215 Allow recovery of backup without salvage
  • WT-4226 test/format LSM configurations can misconfigure prepare and timestamps
  • WT-4229 Lint
  • WT-4234 Remove documentation mention of legacy tool statlog.py
  • WT-4235 Fix workgen tracking of table state across workloads
  • WT-4242 New log file extension Python test failure

4.0.1 Changelog

Security

  • SERVER-35125 null pointer read access violation in SSLHandshakeManager::doServerHandshake
  • SERVER-36027 Enterprise build does not recognize the –redactClientLogData flag

Sharding

  • SERVER-33237 Optimize the Range Deleter speed
  • SERVER-33697 Provide sanity check on number of cached sessions
  • SERVER-34897 Introduce parameter to control whether MongoS should automatically retry failed find commands
  • SERVER-35609 Create initial chunk on primaryShard if only writing one chunk
  • SERVER-35632 Blacklist lagged_config_secondary.js and all_config_servers_blackholed_from_mongos.js from RHEL 6.7 s390x variants
  • SERVER-35691 Make all code paths returning StaleConfig error go through the StaleConfigInfo serializer
  • SERVER-35711 Remove unused anonymous function getPersistedMaxDbVersion() from shard server catalog cache loader
  • SERVER-35745 _getNextSessionMods doesn’t include oplogReplay flag to query new oplog created during migration
  • SERVER-35938 NamespaceSerializer lock should be used for database as well as collection during createCollection
  • SERVER-35997 Await replication on config server after shardCollection in safe secondary reads tests
  • SERVER-36041 Increase the size of changelog and actionlog
  • SERVER-36075 Add comment to shard_identity_rollback.js explaining why we set the FCV to 4.0 on the shardsvr
  • SERVER-36132 Invariant that chunk migration is actually reflected in the metadata after successful commit
  • SERVER-36232 Refresh after chunk migration commit may not see the committed metadata

Replication

  • SERVER-32088 ChangeStream resumeAfter does not work on sharded collections if not all shards have chunks for the collection
  • SERVER-34414 Creating a role with buildsIndexes:false node hits an fassert
  • SERVER-34758 replSetGetStatus can deadlock with initialSyncer
  • SERVER-35124 Stepdown suites with MMAP V1 often fail due to flushing mmaps taking long time
  • SERVER-35200 Speed up failure detection in the OplogFetcher during steady state replication
  • SERVER-35388 Improve misleading error messages for aggregation stages banned in transactions
  • SERVER-35488 ReplSetTest.waitForState() should ensure node has finished closing connections
  • SERVER-35571 Wait until all nodes become stable before checkOplogs
  • SERVER-35991 Turn off chaining in set_feature_compatibility_version.js
  • SERVER-35992 Secondary should have no vote in SecondaryReadsTest

Query

  • SERVER-34789 Using resume token from an ‘invalidate’ notification with ‘resumeAfter’ should error
  • SERVER-34933 pcre verb support
  • SERVER-35693 Parsing of $in takes quadratic time due to O(n^2) boost::flat_set constructor
  • SERVER-35751 Make kill_own_ops.js more robust
  • SERVER-35851 Consider checking whether the array passed to $in is already sorted before calling std::sort
  • SERVER-35929 Possible use-after-free when reloading the view catalog due to an invalidation

Aggregation

  • SERVER-35028 Add change stream notifications for collection drop and rename
  • SERVER-35029 Add change stream notification for database drop
  • SERVER-35084 change_stream_enforce_max_time_ms_on_mongos.js expects getMore to schedule follow-up getMores
  • SERVER-35634 view_catalog_cycle_lookup.js should not always assert that finds on views will succeed
  • SERVER-35961 Remove uninitialized count variable in MapReduce command

Catalog

SERVER-35563 The UUIDCatalog onCreateCollection observer should atomically unregister and re-register catalog entries

Storage

  • SERVER-32509 Mobile SE: Implement error reporting for unsupported startup options
  • SERVER-32997 Mobile SE: Design and implement multi-reader or single-writer concurrency
  • SERVER-33605 Mobile SE: Disable capped collections
  • SERVER-33651 Mobile SE: Use full synchronous mode for SQLite writes
  • SERVER-34002 readConcern_snapshot.js should wait for writes to be majority-committed on secondaries before reading
  • SERVER-34113 Remove all support for snapshot reads outside of multi-document transactions
  • SERVER-34129 Don’t hold database or collection locks during oplog truncation
  • SERVER-34579 Do not populate indexDetails for mobile storage engine
  • SERVER-34713 Progressively declining dropDatabase performance
  • SERVER-35085 repair can cause spurious NamespaceNotFound errors with concurrent initial sync operations
  • SERVER-35317 restartCatalog problematically discards minVisibleSnapshot data
  • SERVER-35398 Mobile SE: Remove code for capped collection
  • SERVER-35671 DatabaseHolderImpl::closeAll can leave catalog in an incomplete state
  • SERVER-35704 Tag readConcern_snapshot.js with ‘uses_transactions’
  • SERVER-35789 check for index catalog isready mismatch for multi-doc txns
  • SERVER-35859 Disable rocksdb buildvariant
  • SERVER-35994 Reduce CPU load in secondary_reads_unique_indexes.js test
  • SERVER-36006 multiInitialSyncApply should consider setting a read timestamp of kNoTimestamp
  • SERVER-36025 RestartCatalogCommand can attempt to reinitialize oplog pointers on standalones
  • SERVER-36167 Add pretty printer for WT flags members

GridFS

SERVER-35361 filemd5 command fails to safely clean up PlanExecutor after manual yield

Operations

  • SERVER-27264 With net.ssl.allowConnectionsWithoutCertificates: true, allow disabling no client certificate log warnings
  • SERVER-32064 A logical session id should be included in all command requests from the mongo shell
  • SERVER-34160 Mongo client run buffered command when terminated.
  • SERVER-35758 Mongo shell prompt errors when running transactions after overriding “db”
  • SERVER-35903 Free monitoring doesn’t allow disabling from the shell without enabling it first
  • SERVER-36010 Change log messages for Windows stacktraces to use error() or severe() rather than log()
  • SERVER-36088 Replica set connection strings trigger access violation on 4.0 shell + Windows

Build and Packaging

Tools

  • TOOLS-2058 mongoreplay does not show OP_MSG commands
  • TOOLS-2062 Support zlib compression in mongoreplay
  • TOOLS-2075 mongoreplay always replays to secondary

Internals

  • SERVER-33817 Powercycle test using kill mongod
  • SERVER-34563 Connect via SRV record fails if the returned record resides in subdomain
  • SERVER-34793 Add call to BF suggestion server on failed task completion
  • SERVER-34810 Session cache refresh can erroneously kill cursors that are still in use
  • SERVER-34956 big_object1.js is not resilient to unexpected stepdowns
  • SERVER-34984 Update major_version_upgrade.js test to call setFCV to the latest FCV
  • SERVER-34996 Save console_output & console_screenshot from aws_ec2.py as artifacts in evergreen.yml
  • SERVER-35101 Handle differently a badly formed bindIp argument
  • SERVER-35165 Disable and re-enable update_test_lifecycle Evergreen task on the 4.0 branch
  • SERVER-35188 Typo in ServiceLiason* types
  • SERVER-35263 Add FSM workloads for testing atomicity and isolation of updates inside a transaction across multiple collections and databases
  • SERVER-35312 Update system_perf.yml and perf.yml to compare to 3.6.5 baseline for master and 4.0
  • SERVER-35313 CleanupConcurrencyWorkloads resmoke hook needs to handle the balancer
  • SERVER-35383 Increase electionTimeoutMillis for the ContinuousStepdown hook used in stepdown suites
  • SERVER-35389 Remove dead code from old FSM suite
  • SERVER-35506 The Powercycle wait_for_mongod_shutdown function should ensure the mongod process is no longer running
  • SERVER-35523 FSMWorkloadTestCase erroneously sets TestData.sameDB=true and TestData.sameCollection=true
  • SERVER-35550 Bridge should not block listener while making outbound connections
  • SERVER-35578 Switch package tests to new package testing VPC
  • SERVER-35588 powertest.py should call replSetReconfigure command only after successful replSetGetConfig
  • SERVER-35627 Repair should re-create missing collection data files from the existing metadata
  • SERVER-35664 Run the android embedded tests on api24 system images
  • SERVER-35668 Avoid moving concurrency tests to small instances on arm64
  • SERVER-35675 find_by_uuid_and_rename.js should not fail from QueryPlanKilled when yielding during a collection rename
  • SERVER-35692 Add support to an optional re-registration bool in metrics response
  • SERVER-35702 Stop running the agg and update fuzzer on macOS
  • SERVER-35724 Remote EC2 hosts which are not accessible via ssh should fail with system error
  • SERVER-35727 make the embedded sdk compile task in to a multi-task task group.
  • SERVER-35834 Fix compile errors in dns_name_test on Microsoft compilers
  • SERVER-35850 Update filename suffix to v4.0-latest for nightly builds
  • SERVER-35858 Error in call BF Suggestion service
  • SERVER-35908 Shutdown service entry point in mongoed before shutting down embedded
  • SERVER-35990 Update evergreen_task_timeout.py REQUIRED_BUILD_VARIANTS list
  • SERVER-35993 read_concern_uninitiated_set restarts nodes so must not allow ephemeral storage
  • SERVER-36055 Mobile SE: Compact returns wrong error code on mobile
  • SERVER-36144 want to add an empty cloud_nightly.yml file
  • TOOLS-1991 Build tools with Go 1.10.1
  • WT-3839 Document the undefined behavior when a range truncate overlaps with inserts
  • WT-3917 Enhance WT_CURSOR::reserve documentation around commit visibility
  • WT-4024 Fix a race between split and next/prev
  • WT-4048 Generalize timing_stress_for_test split functionality
  • WT-4067 Enhance LSM to not pin as much history in cache
  • WT-4101 Don’t abort the eviction server during session verify when oldest_timestamp is held back
  • WT-4111 Improve checkpoint scrubbing algorithm
  • WT-4125 Ensure that subsequent checkpoints with stable timestamp don’t read too much
  • WT-4133 Coverity 1393445, 1393446 Dereference before null check
  • WT-4136 Add a new timing stress flag that yields during tree search
  • WT-4138 Add an option to timeout waiting for space in the cache
  • WT-4139 rename the cursor restart statistic to match implementation
  • WT-4140 Cursor walk limits quick eviction page selection unnecessarily.
  • WT-4141 Enhance checkpoint with timestamps to unblock eviction sooner
  • WT-4143 Use WiredTiger.turtle.set if it exists but WiredTiger.turtle does not
  • WT-4145 Only include the checkpoint timestamp during checkpoints
  • WT-4146 Coverity 1393639, unused variable
  • WT-4152 Save return value for later comparison in transaction code
  • WT-4163 Lint