Bug
- [PYTHON-2098] - PyMongo does not publish Server or Topology change events for "Network error when reading or writing" or "not master" and "node is recovering"
- [PYTHON-2101] - Test failures - test_validation_with_system_ca_certs fails on macOS-1014 EVG platform
- [PYTHON-2117] - python_full_version comparison fails due to poor environment marker support in older setuptools versions
- [PYTHON-2128] - Test failure - test_ssl.TestSSL.test_ssl_pem_passphrase
- [PYTHON-2129] - Use error code to check for NamespaceNotFound errors
- [PYTHON-2150] - test_timestamp_values fails on 32bit platforms
- [PYTHON-2177] - Failed to start change stream (KeyError: 'operationTime')
- [PYTHON-2182] - Cursor namespace is ignored
- [PYTHON-2188] - OWASP security vulnerabilities in bson/buffer.c
- [PYTHON-2189] - Transaction spec test for bulk write fails on latest (4.5) sharded cluster
- [PYTHON-2191] - Double free in C extensions when realloc fails in buffer_grow
- [PYTHON-2192] - Clarify hostname canonicalization logic.
- [PYTHON-2205] - Connection pool can return connections from previous generations
- [PYTHON-2212] - MongoClient does not mark a server Unknown when handling NotMaster errors embedded in a write concern error
- [PYTHON-2214] - Test failure - test.test_transactions.TestTransactions.test_create_collection
- [PYTHON-2215] - Test failure - test_collection.TestCollection.test_index_filter
- [PYTHON-2254] - .clone() does not clone the .__empty attribute
- [PYTHON-2260] - Compile warning "_POSIX_C_SOURCE" redefined on RHEL 7.0 with Python 2.7.5
- [PYTHON-2295] - MongoClient with multiple hosts and directConnection=True does not raise an error
- [PYTHON-2297] - Pool leaves socket open when authentication fails
- [PYTHON-2304] - _RttMonitor very rarely keeps its connection alive after MongoClient.close()
- [PYTHON-2305] - Faulty change stream resume logic can result in changes being missed
- [PYTHON-2320] - Jython SSL + poll fails with AttributeError: 'SSLSocket' object has no attribute 'channel'
- [PYTHON-2331] - set_memory_error warning: function declaration isn’t a prototype
- [PYTHON-2334] - Gevent Timeout causing deadlock
Epic
- [PYTHON-2100] - Python MongoDB 4.4 Support
New Feature
- [PYTHON-1743] - Test Planned Maintenance Scenarios in Drivers
- [PYTHON-2019] - Add support for validate command "background" option
- [PYTHON-2034] - MONGODB-AWS authentication support
- [PYTHON-2040] - Support PyOpenSSL
- [PYTHON-2121] - Unify behavior around configuration for replica set discovery
Task
- [PYTHON-1438] - Change handling of network errors or timeouts during connection handshake
- [PYTHON-1651] - Bulk api does not publish CommandFailed events when commands fail with network errors
- [PYTHON-1976] - Bump wire protocol version for 4.4
- [PYTHON-2029] - Support shorter SCRAM conversation
- [PYTHON-2030] - Collection and index creation in multi-doc txns
- [PYTHON-2032] - Handle absence of 'ns' field in index specifications returned from listIndexes
- [PYTHON-2035] - Support for allowDiskUse on find operations
- [PYTHON-2036] - Allow passing hint to update_one/_many, find_one_and_update/_replace operations
- [PYTHON-2037] - Improve testing around default writeConcern
- [PYTHON-2068] - Test Failure - test_session.TestSession.test_unacknowledged_writes
- [PYTHON-2073] - Add NPS Survey to all off-domain driver documentation
- [PYTHON-2082] - Expand use of error labels for retryable writes (RetryableWriteError label)
- [PYTHON-2085] - Change uri_options/auth-options spec test to enable conditional tests
- [PYTHON-2093] - OCSP Support
- [PYTHON-2094] - Migrate macos-1012 Evergreen builds to macos-1014
- [PYTHON-2097] - Deprecate oplogReplay find command option from CRUD spec
- [PYTHON-2099] - Make ExceededTimeLimit retryable writes error
- [PYTHON-2102] - Test MongoDB 4.4 on Windows with Python 2.7, 3.4, 3.5, and 3.6
- [PYTHON-2103] - GridFS index checking should support indexes created in the shell
- [PYTHON-2112] - Redirect api.mongodb.com/python to pymongo.readthedocs.io
- [PYTHON-2118] - Fix texts that use writeConcern.w > 50
- [PYTHON-2119] - Fix failing mapReduce doctests caused by the MR in Agg project
- [PYTHON-2120] - Test failure - test_change_streams_change_streams_errors_Change_Stream_should_error_when__id_is_projected_out
- [PYTHON-2123] - Reduce Client Time To Recovery On Topology Changes
- [PYTHON-2124] - Test suite should assert that gc.garbage is empty
- [PYTHON-2126] - Refactor Monitor/SrvMonitor code to create PeriodicExecutors in one place
- [PYTHON-2130] - Stop testing $where with CodeWScope on MongoDB 4.4+
- [PYTHON-2138] - Move MONGODB-AWS Support to external library
- [PYTHON-2139] - Test MONGODB-AWS support on Windows and macOS
- [PYTHON-2140] - Test PyOpenSSL support on macOS
- [PYTHON-2143] - Do not repeatedly resume if getMore receives the same error
- [PYTHON-2148] - Test PyOpenSSL support on Windows
- [PYTHON-2149] - Test PyOpenSSL support with MongoDB < 4.4
- [PYTHON-2152] - Support Handling of Native UUID Types Specification
- [PYTHON-2153] - test_raise_wtimeout hangs on 4.5 latest
- [PYTHON-2154] - test_examples.TestTransactionExamples fails on 4.5-latest sharded clusters
- [PYTHON-2155] - Add MongoDB 4.4 to Evergreen
- [PYTHON-2161] - Add OCSP URI Option
- [PYTHON-2165] - Deprecate the fsync and unlock MongoClient helpers and the is_locked attribute
- [PYTHON-2170] - Driver support for server Hedged Reads
- [PYTHON-2173] - Update comment in Transactions withTxn examples for the manual.
- [PYTHON-2174] - SpecTestRunner for CRUD v2 format should be able to run against server versions without sessions support
- [PYTHON-2201] - Deprecate the reindex helper
- [PYTHON-2206] - Rename pool_id to generation to better match CMAP and SDAM specs
- [PYTHON-2217] - Add MockupDB tests for mechanism negotiation (saslSupportedMechs)
- [PYTHON-2218] - Test failure - test_max_staleness.TestMaxStaleness.test_last_write_date
- [PYTHON-2236] - Reset the server pool only after marking the server Unknown
- [PYTHON-2237] - Use sort when verifying contents of outcome collections
- [PYTHON-2239] - Avoid 30 second stalls in TestMongoClientFailover
- [PYTHON-2240] - Deprecate UUIDLegacy class
- [PYTHON-2256] - Document that a ClientSession cannot be used for multiple operations concurrently
- [PYTHON-2263] - Decoding of $uuid fields from extended JSON should respect UuidRepresentation
- [PYTHON-2268] - Close clients created in test suite
- [PYTHON-2271] - Add MongoDB 4.0, 4.2, 4.4 to mongo-python-driver-perf test
- [PYTHON-2277] - Remove uuidRepresentation deprecation warnings
- [PYTHON-2278] - Test failure - test_discovery_and_monitoring with Jython: None != {'clusterTime': Timestamp(0, 1)}
- [PYTHON-2281] - Ensure KeepAliveTime is set to 120 seconds on Windows
- [PYTHON-2292] - Doctest uuidRepresentation failure in FAQ page
- [PYTHON-2293] - OCSP test script (tools/ocsptest.py) does not work on Windows
- [PYTHON-2299] - Add "awaited" field to ServerHeartbeat events
- [PYTHON-2311] - Test failure - test_streaming_protocol.TestStreamingProtocol.test_monitor_waits_after_server_check_error
- [PYTHON-2328] - Test failure - test_topology.TestTopologyErrors.test_pool_reset
Improvement
- [PYTHON-1787] - PyMongo exceptions raised from server errors should include the errorCode in the traceback message
- [PYTHON-1998] - Add missing tests for aggregation pipeline in bulk write updates
- [PYTHON-2024] - Skip publishing SDAM events for "equivalent" ServerDescriptions
- [PYTHON-2076] - Provide importable APM event listeners
- [PYTHON-2088] - Define how multiple phases should be handled in SDAM spec runner
- [PYTHON-2113] - Specify behavior of empty authSource URI option
- [PYTHON-2115] - Remove threading.Lock() from SocketChecker
- [PYTHON-2116] - Add __repr__ to monitoring event classes
- [PYTHON-2132] - Cache OCSP responses
- [PYTHON-2136] - Provide diagnostic information in ServerSelectionTimeoutError exception message
- [PYTHON-2142] - Allow hinting the delete command
- [PYTHON-2144] - Test OCSP support on macOS and Windows
- [PYTHON-2158] - Support speculative authentication attempts in isMaster
- [PYTHON-2163] - Improve diagnostics of PyOpenSSL connection errors
- [PYTHON-2168] - Ensure that the WriteConcernError "errInfo" object is propagated
- [PYTHON-2179] - Tests drivers raise error if hint specified for unacknowledged delete using OP_MSG or OP_DELETE
- [PYTHON-2181] - ChangeStreams should account for missing operationTime in aggregate command response
- [PYTHON-2183] - Test that readPreferenceTags are always interpreted as an array
- [PYTHON-2185] - Deprecate geoHaystack and geoSearch
- [PYTHON-2186] - 'CommitQuorum' option support for 'createIndexes’ command on MongoDB 4.4
- [PYTHON-2193] - Update Evergreen config to run the new OCSP responder
- [PYTHON-2199] - Reduce race conditions in SDAM error handling
- [PYTHON-2207] - Don't use admin database for FLE tests
- [PYTHON-2208] - Revisions to "Issues and Help" pages of drivers documentation
- [PYTHON-2219] - Document Hidden Index Option
- [PYTHON-2220] - Update documentation for Text Search
- [PYTHON-2221] - Resync SDAM error handling spec tests
- [PYTHON-2243] - Raise informative error message when attempting a GridFS operation in a transaction
- [PYTHON-2252] - Add examples and documentation for new UUID behavior
- [PYTHON-2253] - allowDiskUse option for find should be documented as only being supported in 4.4+
- [PYTHON-2255] - Reduce default keepalive time to align with Azure defaults
- [PYTHON-2266] - Ensure OCSP and AWS auth are tested on both 4.4 and latest
- [PYTHON-2282] - Add coverage for valid maxStalenessSeconds with no viable servers
- [PYTHON-2285] - Don't start kill cursors thread until MongoClient actually connects
- [PYTHON-2294] - Increase replSetStepDown timeout and run replSetFreeze to avoid "Unable to acquire X lock" errors
- [PYTHON-2296] - Define behavior of connectTimeoutMS=0 with streaming protocol
- [PYTHON-2306] - Test that ElectionInProgress is not resumed
- [PYTHON-2315] - Treat CursorNotFound as a resumable change stream error
- [PYTHON-3667] - Drivers should include topology description in server selection timeout errors
Edit/Copy Release Notes
The text area below allows the project release notes to be edited and copied to another document.