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-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-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-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-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-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
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-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
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