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