4.0 Changelog
On this page
- 4.0.28 Changelog
- 4.0.27 Changelog
- 4.0.26 Changelog
- 4.0.25 Changelog
- 4.0.24 Changelog
- 4.0.23 Changelog
- 4.0.22 Changelog
- 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.28 Changelog
Security
SERVER-57727 Race conditions in x509_invalid.js
Sharding
- SERVER-53335 Queries, updates, and deletes with non-"simple" collations may miss documents when using hashed sharding
- SERVER-54064 Sessions on arbiters accumulate and cannot be cleared out
- SERVER-55648 Mongos doesn't return top-level batch-write error in case of shutdown
- SERVER-59929 Unexpected slower update/insert operation base of splitchunk and moveChunk
- SERVER-60654 Backport the autoSplitVector logic to v4.0
- SERVER-62065 Upgrade path from 3.6 to 4.0 can leave chunk entries without history on the shards
Replication
SERVER-56096 Invariant failure in ReplicationRecoveryImpl::recoverFromOplog
Aggregation
- SERVER-44484 Changestream with updateLookup uasserts on updates from before collection was sharded
- SERVER-59613 $range expression should return an error if it exceeds memory limit
Storage
SERVER-45953 Exempt oplog readers from acquiring read tickets
Internals
- SERVER-40486 Remove Test Lifecycle code
- SERVER-53726 Platform Support: Remove RHEL6 zSeries
- SERVER-53728 Platform Support: Remove SLES12 zSeries
- SERVER-56326 Add a round() method to the Decimal128 class
- SERVER-58104 config.system.sessions collection can end up with invalid chunks if it is dropped and re-sharded with a shard key other than _id
- SERVER-58192 Use more unique_ptrs in QueryPlannerAnalysis::analyzeSort()
- SERVER-59120 Create unit tests for commitChunksMerge
- SERVER-59191 SPIKE: git.get_project fails to clone
- SERVER-59725 Remove push task from extra RHEL 6.2 variants
- SERVER-59804 Using a separate branch for YCSB in system_perf.yml
- SERVER-59874 Delete stats.js on the 4.0 branch.
- SERVER-59887 Reduce the change_stream_shard_failover.js test flakiness
- SERVER-60290 Update Windows external auth test distribution
- SERVER-60344 Action plan on lagging setFCV replicas breaking tests
- SERVER-60588 $multiply incorrectly throws an error in some cases in the classic engine
- SERVER-60670 Use a separate branch instead of a specific commit for TPCC
- SERVER-60671 Remove dagger
- SERVER-60934 Increase RSM verbosity in the test change_stream_shard_failover.js
- SERVER-60961 Add exclude tags to old branches not generating multiversion_exclude_tags.yml
- SERVER-60971 Remove calls to BF suggestion service
- SERVER-61152 Fix lint on 4.0 branch
- SERVER-61530 Provide large distro option for split tasks on SSL Amazon Linux on 4.0
- SERVER-61559 Remove jepsen_register_linearizableRead from 4.0 branch.
- SERVER-61791 Pin pymongo
- SERVER-62164 Remove several obsoleted build variants across all stable branches
- WT-6568 Fix split generation use
- WT-6926 Update WiredTiger source code to include 2021 copyright notices
- WT-7065 Add check for WT_DHANDLE_DEAD to assertion
- WT-7135 Additional checks to detect when writing corrupted metadata
- WT-7437 Upgrade documentation to doxygen 1.8.17
- WT-7871 Remove comment that is no longer true
- WT-7874 Remove two other stale comments
4.0.27 Changelog
Sharding
SERVER-40170 Increase the default timeout for unit-tests which schedule work through NetworkTestEnv::launchAsync
Replication
- SERVER-34938 Secondary slowdown or hang due to content pinned in cache by single oplog batch
- SERVER-36263 Bypassing operation validation in applyOps should require special privilege
Query
SERVER-58127 Fix benchRun() memory leak for parsing benchRun() args under exception
Storage
SERVER-40712 Clarify the behaviour of db.dropDatabase and the dropDatabase command
Build and Packaging
SERVER-54729 MongoDB Enterprise Debian/Ubuntu packages should depend on libsasl2-modules and libsasl2-modules-gssapi-mit
Internals
- SERVER-53726 Platform Support: Remove RHEL6 zSeries
- SERVER-53728 Platform Support: Remove SLES12 zSeries
- SERVER-55649 Sharding messages being logged for non-sharded clusters
- SERVER-56516 Fix undefined behaviour in parsing code for $slice projectional operator
- SERVER-57642 Invariant Failure on src/mongo/db/query/plan_yield_policy.cpp 75 | Aborting
- SERVER-57798 Direct user to MongoDB Compass download page when failing to install MongoDB Compass due to a connection issue using ./install_compass
- SERVER-57983 Integer overflow for $range in Classic Engine
- SERVER-58283 Add a new versioning file to set MONGO_VERSION and MONGO_GIT_HASH
- SERVER-58402 Increase timeout of shutdown command in shutdown_primary.js
- SERVER-59055 Pin oauthlib == 3.1.0 in 4.0 branch
- SERVER-59074 Do not acquire storage tickets just to set/wait on oplog visibility
- SERVER-59197 Delete fam image entries when the corresponding session documents are deleted
- SERVER-59242 update to snmp 5.9.1
- SERVER-59262 Remove burn_in_tests tasks from storeFindAndModifyImagesInSideCollection build variants
- SERVER-59414 Retry curator setup in powercycle on older branches
- SERVER-59504 Fix formatting in network_test_env.h on v4.0
4.0.26 Changelog
Security
SERVER-56240 Turn on checkpointing for the keystore Data Store
Sharding
- SERVER-48648 Return updated ShardVersion in _configsvrCommitChunkMerge to avoid blind metadata refresh
- SERVER-48653 Return updated ShardVersion in _configsvrCommitChunkSplit to avoid blind metadata refresh
- SERVER-56654 Do not use the collection distributed lock for chunk splits
- SERVER-56779 Do not use the collection distributed lock for chunk merges
- SERVER-56786 There are three routing info refreshes and two chunk scans on the mergeChunks path
- SERVER-58109 The new '_configsvrMergeChunks' path is more expensive than the old one
Replication
- SERVER-44316 Log message in InitialSyncer for setting begin applying timestamp is incorrect
- SERVER-55465 Fix Invariant upon failed request for a vote from the current primary in the election dry-run of catchup takeover
- SERVER-56054 Change minThreads value for replication writer thread pool to 0
Query
SERVER-58127 Fix benchRun() memory leak for parsing benchRun() args under exception
Aggregation
SERVER-41741 Improve robustness of change_streams_shell_helper_resume_token.js
Build and Packaging
- SERVER-50568 Platform Support: Remove Ubuntu18.04 zSeries from 5.0
- SERVER-54729 MongoDB Enterprise Debian/Ubuntu packages should depend on libsasl2-modules and libsasl2-modules-gssapi-mit
Internals
- SERVER-40590 Delete KeyedExecutor
- SERVER-53643 Startup can see old version of featureCompatibilityVersion document
- SERVER-53726 Platform Support: Remove RHEL6 zSeries
- SERVER-53728 Platform Support: Remove SLES12 zSeries
- SERVER-55119 Create startup warning indicating that X.509 certificates without SANs are deprecated
- SERVER-55649 Sharding messages being logged for non-sharded clusters
- SERVER-56307 The chunk migration "convergence algorithm" is very primitive
- SERVER-56452 Self anchor in PooledLDAPConnection::setup's callback
- SERVER-56501 Add op counters for legacy op codes (OP_QUERY, OP_INSERT, etc.)
- SERVER-56516 Fix undefined behaviour in parsing code for $slice projectional operator
- SERVER-57053 Rewriting $nor with a $text predicate to $not is invalid
- SERVER-57057 Reduce routing info refreshes on the mergeChunks path
- SERVER-57064 Log create index and dropIndex(es) on mongos
- SERVER-57145 Invariant failure at OCSPManager::requestStatus
- SERVER-57157 assert serverStatus command works in getBinVersion() jstest helper
- SERVER-57275 Update kmip_server.py to be more verbose
- SERVER-57328 Make ReplsetTest.upgradeSet() tolerant of reelections
- SERVER-57330 Update perf yaml configs for perf and sys-perf to use perf.send
- SERVER-57454 Chunk donor propagates NotMaster error from recipient back to MigrationManager making it to believe donor is not primary
- SERVER-57497 store_retryable_find_and_modify_images_in_side_collection.js should account for a later clustertime in retried findAndModify responses
- SERVER-57564 Increase system timeout duration to >2 hours to allow fio to copy over all files
- SERVER-57691 [4.0 only] Return early in TxnResources if not in WUOW
- SERVER-57798 Direct user to MongoDB Compass download page when failing to install MongoDB Compass due to a connection issue using ./install_compass
- SERVER-57897 Add readPrefMode option to benchRun find/findOne ops
- SERVER-57954 Update TPC-C version in sys-perf.yml
- SERVER-58118 Spammy logging when RSM is refreshing all hosts
- SERVER-58191 [Migrate Protocol] Allow delete_during_migrate.js to tolerate chunk migration failures due to timeout in catchup phase in slow variants.
- SERVER-58248 Fix error code when checking if FeatureCompatibilityVersion is majority-committed
- SERVER-58283 Add a new versioning file to set MONGO_VERSION and MONGO_GIT_HASH
- SERVER-58313 Fix package test failure caused by SERVER-55460 backport to v4.2 and v4.0
4.0.25 Changelog
Sharding
- SERVER-40293 change_stream.js removal test should do an unordered check on the change stream
- SERVER-47699 Change yield type used by range deleter from YIELD_MANUAL to YIELD_AUTO
- SERVER-56515 Chunk merge doesn't consider the
incrementChunkMajorVersionOnChunkSplits
parameter - SERVER-57009 Additional debugging information in case of crash during FCV change
- SERVER-57055 delete_during_migrate.js is consistently failing in test suites with Code Coverage enabled
- SERVER-57102 Fixing invariants on ShardServerCatalogCacheLoader to consider different terms
Write Operations
SERVER-38909 Permit empty update modifiers, treating as a no-op rather than an error
Build and Packaging
- SERVER-54057 Mongodb-org-server el8 package has dependency on python2
- SERVER-54386 mongodb 3.6.22 install fails if systemctl daemon is not running
- SERVER-55460 Fix RPM packaging and testing for SLES 12
Internals
- SERVER-37125 Powercycle should ignore a process reference if it no longer exists
- SERVER-38811 TCP_KEEPINTVL should be 1 second
- SERVER-43617 Add metrics on the mongos to indicate the number of shards targeted for the commands (find, aggregate, etc)
- SERVER-45153 Ignore metrics temp files in FTDCFileManager
- SERVER-47509 resmoke accepts multiple "mongodSetParameters" options but only uses the last one
- SERVER-48636 Increase assertEventDoesNotWakeCursor getMore timeout in only_wake_getmore_for_relevant_changes.js
- SERVER-48890 allow $addFields with empty document and have it be a no-op
- SERVER-51465 Update package tests after compass installer update
- SERVER-52610 Verify installation prefix is added to correct location in the RPM
- SERVER-52833 Capped collections can contain too many documents after replication recovery
- SERVER-53726 Platform Support: Remove RHEL6 zSeries
- SERVER-53728 Platform Support: Remove SLES12 zSeries
- SERVER-55019 install_compass does not run on all supported platforms
- SERVER-56164 All performance projects use the master DSI branch
- SERVER-56217 PoolForHost::_maxInUse is init to <int>::max and cannot be changed, and when connections are maxed DBConnectionPool::get() always throws
- SERVER-56361 Better FTDC diagnostics of RSM, including server-side isMaster handling
- SERVER-56371 Upgrade timelib to 2021.06
- SERVER-56373 [RRFaM] When writing FaM images to txn table, write oplog entries with
needsRetryImage
- SERVER-56374 [RRFaM] Have update path write to config.image_collection
- SERVER-56375 [RRFaM] Have delete path write to config.transactions
- SERVER-56376 [RRFaM] Add jstest that exercises both retryable FaM behaviors
- SERVER-56489 New pass-through test with random hello server-side delays
- SERVER-56563 [RRFaM] Forge noop image oplog entries for chunk migration
- SERVER-56668 Create config.image_collection when setting FCV to 4.0 on primary
- SERVER-56713 [RRFaM] Avoid creating images while in initial sync
- SERVER-56795 Changes from SERVER-53274 were unintentionally reverted
- SERVER-56819 $indexOfCP returns incorrect result when searching for empty string inside empty string with non-zero start index (classic execution engine only)
- SERVER-56854 Provide the ability for RSM requests to timeout and mark the server as failed
- SERVER-57015 [RRFaM] Writing to the image collection must be in an UnreplicatedWriteBlock
- SERVER-57044 [v4.0] Add jstest that changing the FCV will disable new retryable findAndModify format even if storeFindAndModifyImagesInSideCollection=true
- SERVER-57172 Do json.send before DSI post_run
- SERVER-57173 Write invalidated image for retryable findAndModify when secondaries apply operations earlier than minValid
- SERVER-57356 Better logging around failed chunk migration
4.0.24 Changelog
Replication
- SERVER-49187 Make ReplSetTest .stepUp() robust to election failures.
- SERVER-50049 assert.soonNoExcept() should not access TestData.traceExceptions for non-resmoke tests.
- SERVER-51163 Mark nodes returning InvalidReplicaSetConfig in heartbeats as down
- SERVER-53666 curSecondary in rollback test fixture not guaranteed to be in SECONDARY state after restart
- SERVER-54708 Rollback test fixture only ensures sync source's lastApplied > rollback node's lastApplied if both emrc=false and inMemory
Query
- SERVER-36926 Undefined behavior from signed overflow in cursor manager, can result in mongos invariant failure
- SERVER-50073 Error message when creating a mixed hashed/not hashed index does not state the problem
- SERVER-54710 Large number of $or clauses can create profiling entry exceeding max BSON size, causing the query to fail when it should not
Operations
SERVER-54770 Add /proc/meminfo MemAvailable to FTDC
Build and Packaging
- SERVER-54031 errorcodes.py doesn't check embedded C++ code in Python scripts
- SERVER-54255 Update RHEL 7 AMI for package testing
Internals
- SERVER-5722 Support a 'sort' field in ops array for JS Benchmarking Harness
- SERVER-35649 Nodes removed due to isSelf failure should re-attempt to find themselves
- SERVER-43847 Make ReplSetTest's stepUp function resilient to slow machines
- SERVER-44132 DataBuilder move assignment computes size incorrectly
- SERVER-45836 Provide more LDAP details (like server IP) at default log level
- SERVER-47030 Fix date_time_support code to not produce exceptions
- SERVER-48910 Do not consider keystore.metadata as a keystore on <= 4.0
- SERVER-52953 $geoNear does not always match coordinate given to 'near' when maxDistance is set to 0
- SERVER-53566 Investigate and reproduce "opCtx != nullptr && _opCtx == nullptr" invariant
- SERVER-53612 StepDown hangs until timeout if all nodes are caught up but none is immediately electable
- SERVER-53831 Force SpiderMonkey to garbage collect in ReplSetTest.checkOplogs
- SERVER-53992 Remove calls to detect-outliers from performance tasks
- SERVER-54136 Make the authenticate command respect enforceUserClusterSeparation
- SERVER-54139 Remove CURL share support from HTTP curl client
- SERVER-55189 Call awaitReplication() before returning from syncFrom() in rslib.js
- SERVER-55395 4.0.23 does not build with gcc 10
- WT-4296 Add aggressive mode to sweep server
- WT-4614 Trigger sweep immediately to reclaim space after a table drop
- WT-6309 Add support for start/stop arguments to wt printlog command
- WT-6430 Move WT_CONN_SERVER flags into their own field
- WT-7026 Atomically read and set ref->addr in case of race
- WT-7028 Sweep thread shouldn't lock during checkpoint gathering handles
- WT-7104 Redact user data from printlog output
4.0.23 Changelog
Sharding
- SERVER-50305 ARS::next() does not respect OperationContext deadline
- SERVER-53274 The force-write of the
history
field to all chunks on FCV upgrade from 3.6 to 4.0 is unnecessary
Replication
- SERVER-52744 rollback node's lastApplied > sync source's lastApplied in rollback_after_enabling_majority_reads.js
- SERVER-53345 Excuse arbiter_new_hostname.js from multiversion tests
- SERVER-53459 rollback_all_op_types.js should ensure sync source's lastApplied > rollback node's lastApplied
- SERVER-53609 lastCommittedTransaction section causes frequent schema changes that limit FTDC retention
Query
- SERVER-40361 Reduce memory footprint of plan cache entries
- SERVER-47869 Add diagnostic logging to ClusterCursorManager
Storage
- SERVER-46876 During the eviction pressure, we should quit the compact operation instead of crashing the process
- SERVER-52950 recoverOplogAsStandalone mode must not start oplog truncater thread
Operations
SERVER-54074 [v4.0] Log start and end of changes to table log settings
Internals
- SERVER-43904 When stepping down, step up doesn't filter out frozen nodes
- SERVER-46686 Explain does not respect maxTimeMS
- SERVER-46740 establishCursors() must always drain the AsyncRequestsSender::_baton
- SERVER-52879 Periodic operation latency spikes every 5 minutes due to closing idle cached WT sessions
- SERVER-53234 jstests/core/profile2.js fails when background operations are run against test database
- SERVER-54091 Update assertion messages for dbhash check run by resmoke.py
- SERVER-54134 Ignore newer mongo versions on older branches of setup_multiversion_mongodb.py
4.0.22 Changelog
Sharding
- SERVER-36739 Use the mongos_manual_intervention_action hook in concurrency stepdown suites
- SERVER-41192 Add a metric for the size of the SessionCatalog under
logicalSessionRecordCache
- SERVER-42632 Disable pinger threads that reach out to config server to make integration tests pass
- SERVER-46393 Always check client last operation time when computing operationTime to append to the response
- SERVER-48679 flushRoutingTableCacheUpdates should block on critical section with kWrite, not kRead
- SERVER-51808 invariant failure: readConcern level != Available
- SERVER-51885 Blacklist balancing_sessions_collection.js from sharding_csrs_continuous_config_stepdown
- SERVER-52955 KeysCollectionClientDirect should check if majority read concern is supported by storage engine
Replication
- SERVER-33747 Arbiter tries to start data replication if cannot find itself in config after restart
- SERVER-50116 Forbid oplog writes when replication is enabled
- SERVER-51262 Rename skipCheckingForNotMasterInCommandDispatch to skipCheckingForHelloInCommandDispatch
- SERVER-51598 Add new test suites that test transaction expiration logic
- SERVER-51887 "InvalidNamespace" in oplog tests on 4.0 branch
- SERVER-52560 oplog_writes_only_permitted_on_standalone.js must wait for insert to be in stable checkpoint
- SERVER-52680 Removed node on startup stuck in STARTUP2 after being re-added into the replica set
- SERVER-53026 Secondary cannot restart replication
Query
SERVER-32960 $mod has inconsistent rounding/truncation behavior
Aggregation
SERVER-48523 Unconditionally check the first entry in the oplog when attempting to resume a change stream
Storage
- SERVER-51858 Investigate queryable issue on 4.0.20
- SERVER-52902 Remove assertion !haveJournalFiles() at dur_journal.cpp:265
Operations
- SERVER-46729 Make Windows shell soft-fail for unavailable OCSP responder
- SERVER-51757 Collect /proc/vmstat numa_pages_migrated statistics in FTDC
Build and Packaging
SERVER-52891 Run PPC builds less frequently
Internals
- SERVER-45624 Pre-split and distribute chunks of sessions collection
- SERVER-45992 InMemory engine startupwarnings confusing
- SERVER-48742 Log whenever profiler settings are changed via setProfilingLevel
- SERVER-49165 endSessions command in Client.Disconnect causes an authorization failure for an unauthed connection on a host that requires authentication
- SERVER-50123 Record number of physical cores on all platforms
- SERVER-50267 Set output limit for 'rawMongoProgramOutput()'
- SERVER-50365 Stuck with long-running transactions that can't be timed out
- SERVER-50445 Return the value as double when NumberLong subtraction overflows in ExpressionSubtract
- SERVER-50605 Add {logMessage: "msg"} test-only command
- SERVER-51303 Lookup stage followed by $match on type uses wrong field in matching condition
- SERVER-51607 Upgrade Twisted dependency to at least twisted-19.7.0
- SERVER-51902 Check if storage engine supports Recover to Stable Timestamp rather than if eMRC=false in sync_tail.cpp
- SERVER-52646 Validate and possibly fix edge cases in regex rewrite rules for userToDNMapping
- SERVER-52654 new signing keys not generated by the monitoring-keys-for-HMAC thread
- SERVER-52806 deb install files assume systemd
- SERVER-52969 Disable Powercyle on non-master branches
- SERVER-53233 Fix change_streams_update_lookup_shard_metadata_missing.js [4.2, 4.0]
- SERVER-53348 Pin PyOpenSSL
- WT-6507 Exit cache eviction worker after our operation has timed out
- WT-6602 Allow operation timeout ms to be passed to commit and rollback
- WT-6666 Start op timer when we configure it in rollback and commit
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-51083 Problem with regex index bounds
- SERVER-51120 Find queries with SORT_MERGE 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
- SERVER-51608 [4.0] backport implicitly_retry_on_background_op_in_progress.js
- SERVER-51802 Add requires_majority_read_concern tag to decrypt_tool.js on v4.0
- 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