- Release Notes >
- Release Notes for MongoDB 4.0 >
- 4.0 Changelog
4.0 Changelog¶
On this page
- 4.0.21 Changelog
- 4.0.20 Changelog
- 4.0.19 Changelog
- 4.0.18 Changelog
- 4.0.17 Changelog
- 4.0.16 Changelog
- 4.0.15 Changelog
- 4.0.14 Changelog
- 4.0.13 Changelog
- 4.0.12 Changelog
- 4.0.11 Changelog
- 4.0.10 Changelog
- 4.0.9 Changelog
- 4.0.8 Changelog
- 4.0.7 Changelog
- 4.0.6 Changelog
- 4.0.5 Changelog
- 4.0.4 Changelog
- 4.0.3 Changelog
- 4.0.2 Changelog
- 4.0.1 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¶
- SERVER-42173 Add Ubuntu 14.04 to v4.0
- SERVER-42603 Recent service file change may cause cyclic dependencies
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¶
- SERVER-41069 Ability to disable authorization via x509 extensions
- SERVER-41441 Upgrade static OpenSSL to 1.1.1c
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¶
- SERVER-38949 Incorrect index bounds for {$ne: [“String”]} query
- SERVER-40391 Remove low value explain2.js test
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¶
- SERVER-37255 replSetReconfig with concurrent election can trigger invariant
- SERVER-38994 Step down on SIGTERM
- SERVER-40194 Revert SERVER-33248 on 4.0
- SERVER-40355 rs.config that contains an _id greater than the number of nodes will crash
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¶
- SERVER-29908 Libraries db/s/sharding and db/query/query are directly cyclic
- SERVER-33911 Allow overriding global link model for specific targets
- SERVER-33912 Remove –disable-warnings-as-errors from embedded builds
- SERVER-34007 Relicense Embedded SDK Builds
- SERVER-35078 Build embedded SDK with bitcode
- SERVER-35184 Enable link-time-optimization for embedded SDK builders
- SERVER-36884 Update curator version on stable branches
- SERVER-36943 Build embedded targets with -Wl,-object_path_lto
- SERVER-37138 Revert to always building with bitcode
- SERVER-37157 Create unified darwin builder for embedded
- SERVER-37251 Revert to stable channel for Android NDK setup
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¶
- SERVER-34393 Embedded transport layer should not depend on mongo internal code
- SERVER-36686 Upgrade embedded C driver to 1.12.0
- SERVER-36733 Rename embedded target SCons aliases
- SERVER-36766 Add import/export macros for embedded SDK APIs
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¶
- SERVER-33000 Platform Support: add Ubuntu 18.04
- SERVER-33996 Don’t apply self signing until after bundling the SDK.
- SERVER-35600 Add support for armv7-k
- SERVER-35901 Add toolchain path to lint task
- SERVER-36039 Support LibreSSL 2.7 on FreeBSD
- SERVER-36082 Don’t link getShardMap command into embedded
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