v3.5.8
The MongoDB Node.js team is pleased to announce version 3.5.8 of the driver
Release Highlights
Fixes for NEAREST latency window calculation
@adityapatadia helped uncover an issue with our server selection logic which
filtered out servers after evaluating whether they were in the latency window.
This meant that non-viable servers were considered during the window calculation
and would render certain viable servers unviable.
BulkWriteError writeErrors
property
@vkarpov15 submitted a patch to always include writeErrors
on a BulkWriteError
.
We have logic to set the message
of BulkWriteError
to the message of the first
error encountered if there is only one error. Unfortunately, this logic removed
the writeErrors
field when doing that, so users could be faced with an error
which conditionally changed shape.
Memory leak in timed out wait queue members
@dead-horse identified a memory leak in the new connection pool where wait queue
members which timed out might be left in the queue indefinitely under sufficient
load. The fix here was to ensure that all wait queue members are flushed during
wait queue processing before evaluating whether there were available sockets to
process new requests.
Implicit sessions cleanup improvements
Once @dead-horse was able to patch the connection pool memory leak, they also
identified a edge case where implicit sessions could be leaked in a very specific
error condition. The logic to release implicit sessions was simplified, preventing
this from happening in the future
Unordered bulk writes continue-on-error
A bug introduced last summer prevented unordered bulk write operations from
continuing after the first write error - one of the most important features of
being an unordered operation. We now properly support this feature again.
journal
in connection string is ignored
@nknighter filed a report that the journal
option was ignored when provided
via the connection string. The paramater j
was supported both through the
connection string and explicit added to MongoClient
options, but the official
documentation for connection strings support a journal
option.
Documentation
Reference: http://mongodb.github.io/node-mongodb-native/3.5/
API: http://mongodb.github.io/node-mongodb-native/3.5/api/
Changelog: https://github.com/mongodb/node-mongodb-native/blob/3.5/HISTORY.md
We invite you to try the driver immediately, and report any issues to the NODE project.
Thanks very much to all the community members who contributed to this release!
Release Notes
Bug
- [NODE-2407] - UnifiedTopology + near read makes application crash with timeout error when one of replica server is down
- [NODE-2413] - The node process enters an infinite loop at the pool and causes OOM
- [NODE-2442] - journal=true is ignored in connection string
- [NODE-2548] - Change streams do not resume from errors
- [NODE-2565] - Change stream should not check for NonResumableChangeStreamError label
- [NODE-2619] - Unordered bulk write aborts on first encountered error
- [NODE-2625] - BulkWriteError should always have a writeErrors field
Task
- [NODE-2478] - Use white list for change stream resumability
- [NODE-2598] - Change stream close refactor
- [NODE-2605] - Refactor shared test helpers to improve usability