4.2 Changelog
4.2.1 Changelog
Security
- SERVER-28011 Support multiple KMIP hosts in the –kmipServerName parameter
- SERVER-41277 Create FLE Data Framing Classes
- SERVER-42351 RHEL8 TLS 1.0 and TLS 1.1 protocols are disabled in the DEFAULT system-wide cryptographic policy level
- SERVER-43243 Reintroduce unused repairDatabase ActionType
Sharding
- SERVER-10456 get cursor logic used to find docs to clone (in migration) is not same as in removeRange
- SERVER-11328 Allow concurrent draining shards
- SERVER-33973 Commands to force cleanup of partial data that might have remained after failed collection/database drop
- 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-39573 Add unique id to log label “TransactionCoordinator”
- SERVER-39763 transactions_target_at_point_in_time.js should disable expiring old chunk history
- SERVER-40258 Relax locking requirements for sharding metadata refresh on shards
- SERVER-40496 transactions_snapshot_errors_subsequent_statements.js and transactions_writes_not_retryable.js should not use mode {times: 1} for failpoint
- SERVER-40852 mongod_returns_no_cluster_time_without_keys.js should wait for shard primary to load cluster time keys
- SERVER-40983 Track and log relevant single transaction metrics on mongos for currentOp
- SERVER-41374 Add currentOpen, currentActive, and currentInactive to mongos transactions serverStatus output
- SERVER-41376 Track time transactions on mongos are active and inactive and include in slow txn logging
- SERVER-41615 Transaction coordinator diagnostics should handle coordinator failover
- SERVER-41758 Dropping config.shards is allowed and can cause mongos to crash in aggregation code
- SERVER-42006 Add transaction tags to prepared_txn_metadata_refresh.js
- SERVER-42234 Make txn_two_phase_commit_failover.js robust to all replica nodes running for election at the same time
- SERVER-42335 ShutdownShouldCancelQueuedRequests cpp test can ignore kill signal
- SERVER-42338 transaction_coordinator_test can self deadlock
- SERVER-42457 Check if cluster time has been set on TransactionRouter before observing from an external thread
- SERVER-42559 Race in WaitWithOpTimeEarlierThanLowestQueued causes it to fail
- SERVER-42610 Flip order of assert.lte arguments in shards_and_config_return_last_committed_optime.js
- SERVER-42751 Take CSRLock when observing transaction commit for migration
- SERVER-42809 Track and log relevant single two phase commit metrics for transaction coordinator on mongod for currentOp
- SERVER-42842 Unable to drop collection in admin database of sharded cluster
- SERVER-42856 Transactions with write can be sent to the wrong shard
- SERVER-42907 Add timeActiveMicros and timeInactiveMicros for transactions in mongos currentOp output
- SERVER-42963 For active sessions only set transaction stats in TransactionRouter::Observer::_reportState()
- SERVER-43196 Blacklist update_where.js from sharded concurrency suites with balancer on and no txn override
Replication
- SERVER-7019 rs.status needs to show initial sync happening
- SERVER-7681 Report majority number in ReplSetGetStatus/isMaster
- SERVER-36570 Make OplogEntry mutable
- SERVER-38356 Forbid dropping oplog when replset config is present
- SERVER-39576 Remove doTxn test command
- SERVER-39610 Reformat TransactionParticipant comments and remove last references to the metrics mutex
- SERVER-39613 Remove kCommittingWithPrepare and kCommittingWithoutPrepare from TransactionState
- SERVER-39614 Remove inActiveOrKilledMultiDocumentTransaction() from TransactionParticipant
- SERVER-40466 Unify checks for inMultiDocumentTransaction and friends
- SERVER-41221 rollback_after_enabling_majority_reads.js test should make sure the final rollback occurs on node 0
- SERVER-41457 Unify the different ways the TransactionParticipant offers for aborting a transaction
- SERVER-41465 fassert when applying operations for transactions on secondaries
- SERVER-41481 Return dbResponse object stored with exhaustNS and exhaustCursorId in receivedCommands
- SERVER-41482 makeExhaustMessage should no longer call OpMsg::parse
- SERVER-41497 Create IDL types for ElectionMetrics, ElectionCandidateMetrics and ElectionParticipant Metrics
- SERVER-41498 Create ReplicationMetrics class
- 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-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-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-41580 Don’t run transactions suites on the No Journal builder
- SERVER-41788 Add OplogApplication::Mode to options in the OplogApplier
- SERVER-41918 CollectionBulkLoader does not anticipate exceptions from MultiIndexBlock
- SERVER-41955 Add test for replicating prepare oplog entries that were received during initial sync
- SERVER-41956 Add integration tests for killOp of commit and abort of prepared transactions
- SERVER-41957 Add integration tests for killSessions of a session with a prepared transaction on it
- SERVER-41958 Add a test for rolling back prepare and then trying to retry prepare
- SERVER-41959 Test running transaction commands through the applyOps command
- 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-42219 Oplog buffer not always empty when primary exits drain mode
- SERVER-42453 ensure current clusterTime is greater than afterClusterTime value for read in step_down_on_secondary.js
- 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-42478 Remove DB MODE_X locks from oplog application of create/createIndexes
- SERVER-42484 May not be inside required WriteUnitOfWork when writing multikey index keys during initial sync data cloning
- SERVER-42523 Add more logging to oplog_rollover.js
- SERVER-42534 Step down primary for less time in freeze_timeout.js and increase electionTimeoutMillis
- SERVER-42562 Increase election timeout for recover_prepared_transactions_startup_secondary_application.js
- SERVER-42602 Guarantee that unconditional step down will not happen due to slow node restarts in rollbackfuzzer[un]clean_shutdowns suites.
- SERVER-42613 getHashes should default to liveSlaves, not _slaves in replsettest.js
- SERVER-42714 Log replication recovery oplog application completion at level 0
- SERVER-42750 OperationContext::inMultiDocumentTransaction() doesn’t return true when applying operations for prepared transaction during recovery
- SERVER-42755 recover_prepared_txn_with_multikey_write.js should make sure no prepare conflicts are generated on catalog object after restarting node
- 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-43016 Fix typo in timestamped_reads_wait_for_prepare_oplog_visibility.js and check that nModified = 1
- SERVER-43230 Fix race in catchup_takeover_two_nodes_ahead.js
- SERVER-43237 replSetFreeze and replSetStepDown cmd done part of restartNode()/transitionToSteadyStateOperations() in rollback test should be resilient of network error.
- SERVER-43330 ReplicationStateTransitionLockGuard::_unlock doesn’t work with its move constructor
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-41996 Improve PlanExecutor error logging
- SERVER-42399 max_time_ms.js test should always disable failpoints if an exception is thrown
- SERVER-42514 wait for all nodes to finish index builds in text_index_limits.js
- SERVER-42518 Wildcard index plans miss results when the query path has multiple subsequent array indexes
- SERVER-42744 Fix transaction history iterator to not return unowned BSON that may be left dangling
- SERVER-42749 Ban server_status_with_timeout_cursors from transaction passthroughs
- SERVER-42864 change index build initial write timestamp logic
- SERVER-43074 Do not use a global variable to encode ‘multikeyPath’ information when writing out catalog documents
- SERVER-43202 Aggregation system can continue trying to execute a query plan after being interrupted, leading to server-fatal invariant failure
Aggregation
- SERVER-41770 Multiversion test for change stream support of large transactions
- SERVER-42756 $multiply operator may return with or w/o an error depending on whether pipeline optimisation is enabled
Catalog
SERVER-42567 Remove magic from CollectionImpl and IndexCatalogImpl
Storage
- SERVER-39708 Fastpath no-ops to multikey updates in IndexBuildInterceptor::sideWrite to avoid mutex acquisition
- 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-41909 Add the ValidateCmd Genny workload to system_perf.yml
- SERVER-41937 Add a try-catch block in TimestampMonitor::startup() or notifyAll() to suppress exceptions
- SERVER-41947 Disallow using the “system.views” collection name as the source or target names in the rename command
- SERVER-42060 Limit maximum recursion depth for KeyString _appendBsonValue and toBsonValue
- SERVER-42205 Raise the snapshot window’s cache pressure threshold from 50 to 95
- SERVER-42373 Prevent “invalid view definition” error while dropping nonexistent collection
- SERVER-42441 renameCollectionForApplyOps should always rename the target out of the way if it exists
- SERVER-42652 Fix issue with rename collection
- SERVER-42718 dropDatabase commands can be run concurrently, leading to an invalid state
- SERVER-42799 obtain timestamp for cleaning up index build without noop write
- SERVER-42800 skip size adjustments on temporary record stores for index builds
- SERVER-42803 Remove ‘no except’ in the TimestampMonitor
- SERVER-42824 do not lock RSTL for index build cleanup
- SERVER-42869 IndexBuildInterceptor rollback handler access _sideWritesCounter field after interceptor is destroyed
- SERVER-42915 New style repair’s catalog corrections are often false positives, aggressively marking repl nodes as corrupted
- SERVER-43019 IndexBuildsCoordinator removes interrupted index build at shutdown on secondary
- SERVER-43025 rollback should ignore no-op startIndexBuild oplog entry
- SERVER-43075 MongoDB 4.2 cannot use storage.journal.commitIntervalMs param in yaml config file.
- SERVER-43322 Add tracking tools for measuring OplogStones performance
WiredTiger
- SERVER-39004 Introduce a quota mechanism for the overflow file
Operations
- SERVER-41874 Never kill cursors in shell garbage collection in concurrency_simultaneous_replication
- SERVER-42599 Regression prevents use of ‘show collections’ without listCollections privilege
- SERVER-42969 Handle non-ascii characters in
USERPROFILE
environment variable. - SERVER-43005 getKeyVault.createKey() should return the created data key
- SERVER-43039 db.collection.bulkWrite doesn’t support hint with replaceOne
- SERVER-43265 Mongo Shell exits with InvalidOptions error when using URI compressors parameter
Build and Packaging
- SERVER-37768 Platform Support: Add Community & Enterprise Debian 10 x64
- SERVER-37772 Platform Support: Add Community & Enterprise RHEL 8 x64
- SERVER-41232 Update man pages
- SERVER-41431 Platform Support: Re-enable SUSE 15 build variants
- SERVER-41570 Xcode 11 generates new warnings
- SERVER-42778 hot_backups should use RHEL 7 large
- SERVER-42787 4.2.0 regression (vs 4.0.12): Build failure with various system packages
- SERVER-42911 Rebuild mongodb by building.md and failed to build due to ModuleNotFoundError: No module named ‘Cheetah’ with MSVC on windows
- SERVER-43046 Use toolchain python binary to create virtual environments
Internals
- SERVER-25025 Improve startup time when there are tens of thousands of collections/indexes on WiredTiger
- SERVER-36816 Avoid reloading the view catalog on the primary and secondaries during the dbhash check
- SERVER-39776 Initial sync and replication threads simultaneous startup and shutdown races
- SERVER-40004 Change the signature of AtomicWord::compareAndSwap to mimic the implementation
- SERVER-41466 Blacklist mongos_no_detect_sharding from sharding_csrs_continuous_config_stepdown
- SERVER-41492 Disable WiredTiger cursor caching and introduce more aggressive file handle sweeps in testing
- SERVER-41585 background_thread_clock_source_test shouldn’t assume we can schedule the background thread
- SERVER-41622 Reduce noisiness in flow_control_replica_set.js
- SERVER-41802 generate_resmoke_tasks doesn’t apply max_sub_suites option
- SERVER-41939 Connect to fastest LDAP server first
- SERVER-42067 Ensure key Ordering offset does not exceed the maximum number of compound index keys
- SERVER-42069 uassert when decimal type is encoded in KeyString V0
- SERVER-42075 Add DSI module to perf.yml
- SERVER-42178 Disable Split Horizon HOSTALIAS testing on SLES
- SERVER-42210 Modify changestream tests on multiple databases to support interleaving
- SERVER-42216 Ensure pin_getmore_cursor.js waits for server to finish killing cursor
- SERVER-42303 NetworkInterfaceTL should schedule out-of-line immediately and never again
- SERVER-42305 Need to ensure replication is finished initializing before advancing commit point in heartbeats
- SERVER-42310 Specify mode for NamedTemporaryFile in hang_analyzer.py
- SERVER-42356 teardown(finished=True) isn’t ever called for the NoOpFixture
- SERVER-42400 Add new task in system_perf.yml for million documents in transaction workload
- SERVER-42419 Ban whole_cluster_metadata_notifications test from running with majority read concern off
- SERVER-42424 Blacklist max_doc_size.js and mr_bigobject.js from Periodic Kill Secondaries suite
- SERVER-42440 burn_in_test should run tasks on the distro they are normally run
- SERVER-42452 failNonIntentLocksIfWaitNeeded failpoint interrupts lock requests in UninterruptibleLockGuard
- SERVER-42461 Allow errors in aggregates_during_balancing.js pending work in SERVER-29446
- SERVER-42469 Increase initial sync passthrough timeout to 24 hours
- SERVER-42476 Improve free monitoring tests
- SERVER-42520 Auto encryption of a $changeStream aggregation fails with obscure error
- SERVER-42561 searchbeta* tests fail on testing only changes
- SERVER-42571 Collect Windows event logs on remote machine during powercycle
- SERVER-42608 Allow updateOne and updateMany in shell helper to accept hint
- SERVER-42615 Run chkdsk command on Windows after each powercycle loop
- SERVER-42622 resmoke.py doesn’t attempt to tear the fixture down if setting it up raises an exception
- SERVER-42623 sched module in Python 3 causes close() event to mistakenly be canceled, leading to resmoke.py hang
- SERVER-42837 Allow the waitInFindBeforeBatch FailPoint to take a data.nss parameter
- SERVER-42866 Trigger a logical session cache refresh on all shards in the ShardedCluster test fixture before running test
- SERVER-42888 Deprecate CodeWScope for use within the mapReduce command
- SERVER-42917 Flow Control should disregard faulty wall clock time readings during lag calculation
- SERVER-42946 Setting 4.2 FCV in standalone with existing transaction table crashes MongoDB
- SERVER-42953 ttl_repl_secondary_disabled.js should prevent elections
- SERVER-43004 Turn on archive for zbigMapReduce in sharding suite
- SERVER-43022 Allow compile to be run independently on rhel 62
- SERVER-43081 validate should report when an index’s ‘multikeyPaths’ are set but the ‘multikey’ flag is false
- SERVER-43093 Concurrent calls to ShardingReplicaSetChangeListener::onConfirmedSet can cause starvation in the fixed executor
- SERVER-43166 auditFormat BSON writes incomplete bson
- SERVER-43186 Limit the number of tests added to a generated suite
- SERVER-43200 Make auth/mongoURIAuth.js robust to slow commands
- SERVER-43288 Update fallback values for generated tasks