This repository has been archived by the owner on Jul 25, 2020. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^2.6.1
->^3.0.0
^2.6.1
->^3.0.0
^2.2.36
->^3.0.0
Release Notes
caolan/async
v3.2.0
Compare Source
func.name
v3.1.1
Compare Source
name
property on wrapped functions.v3.1.0
Compare Source
q.pushAsync
andq.unshiftAsync
, analagous toq.push
andq.unshift
, except they always do not accept a callback, and reject if processing the task errors. (#1659)q.push
andq.unshift
when a callback is not passed now resolve even if an error ocurred. (#1659)autoInject
with complicated function bodies (#1663)v3.0.1
Compare Source
Bug fixes
queue
andcargo
would be completely flattened. (#1645)v3.0.0
Compare Source
The
async
/await
release!There are a lot of new features and subtle breaking changes in this major version, but the biggest feature is that most Async methods return a Promise if you omit the callback, meaning you can
await
them from within anasync
function.Breaking Changes
await
-able! (#1572)queue
,priorityQueue
,cargo
andcargoQueue
, the "event"-style methods, likeq.drain
andq.saturated
are now methods that register a callback, rather than properties you assign a callback to. They are now of the formq.drain(callback)
. If you do not pass a callback a Promise will be returned for the next occurrence of the event, making themawait
-able, e.g.await q.drain()
. (#1586, #1641)callback(false)
will cancel an async method, preventing further iteration and callback calls. This is useful for preventing memory leaks when you break out of an async flow by calling an outer callback. (#1064, #1542)during
anddoDuring
have been removed, and insteadwhilst
,doWhilst
,until
anddoUntil
now have asynchronoustest
functions. (#850, #1557)limits
of less than 1 now cause an error to be thrown in queues and collection methods. (#1249, #1552)memoize
no longer memoizes errors (#1465, #1466)applyEach
/applyEachSeries
have a simpler interface, to make them more easily type-able. It always returns a function that takes in a single callback argument. If that callback is omitted, a promise is returned, making it awaitable. (#1228, #1640)New Features
cargoQueue
, a queue with bothconcurrency
andpayload
size parameters. (#1567)queue
now have aSymbol.iterator
method, meaning they can be iterated over to inspect the current list of items in the queue. (#1459, #1556)async.mjs
is included in theasync
package. This is described in thepackage.json
"module"
field, meaning it should be automatically used by Webpack and other compatible bundlers.Bug fixes
asyncify
(#1568, #1569)Other
mde/ejs
v3.1.3
Compare Source
v3.1.2
Compare Source
v3.0.2
Compare Source
v3.0.1
Compare Source
mongodb/node-mongodb-native
v3.5.9
Compare Source
The MongoDB Node.js team is pleased to announce version 3.5.9 of the driver
Release Highlights
Use duration of handshake if no previous roundTripTime exists
The default
roundTripTime
of aServerDescription
is -1, which means if that value is used we can potentially calculate a negativeroundTripTime
. Instead, if no previousroundTripTime
exists, we use the duration of the initial handshake.the options [maxIdleTimeMS] is not supported
A number of new options were added when the CMAP compliant connection pool was introduced in 3.5.x. Unfortunately, these options were not documented properly. Now they are mentioned in the
MongoClient
documentation, with a notice that they are only supported with the unified topology.TypeError: Reduce of empty array with no initial value
A fix in 3.5.8 which ensured proper filtering of servers during server selection exposed an issue in max staleness calculations when the topology type is
ReplicaSetNoPrimary
and no servers are currently known. In order to estimate an upper bound of max staleness when there is no primary, the most stale known server is known to compare the others to - if there are no known servers, you can't reduce the array!Server monitoring is prevented under heavy request load
In certain very high load fail-over scenarios the driver is unable to reschedule a monitoring check in order to update its view of the topology for retryability. This would result in a high number of failed operations, as they were unable to determine a new viable server.
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
Improvement
v3.5.8
Compare Source
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 aBulkWriteError
.We have logic to set the
message
ofBulkWriteError
to the message of the firsterror encountered if there is only one error. Unfortunately, this logic removed
the
writeErrors
field when doing that, so users could be faced with an errorwhich 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 providedvia the connection string. The paramater
j
was supported both through theconnection string and explicit added to
MongoClient
options, but the officialdocumentation 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
Task
Improvement
v3.5.7
Compare Source
The MongoDB Node.js team is pleased to announce version 3.5.7 of the driver
Release Highlights
Warning: Accessing non-existent property 'count' of module exports inside circular dependency
Work earlier this year left some dead code in our operations code, resulting in this warning message reported by multiple users. While we still have a few cycles in our codebase yet, this will quiet Node.js 14's circular dependency warnings.
Sessions are only acquired when operations are executed
Drivers use an implicit session for all operations where an explicit session is not provided. A subtle bug was introduced when session support was implemented where implicit sessions were created and assigned to operations even if they were about to sit in a queue waiting for execution. This results in the driver creating many sessions rather than reusing pooled ones. The fix is to ensure a session is only checked out of the pool when the operation is about to be written to a server.
Thanks very much to all the community members who contributed to this release!
Release Notes
Bug
Improvement
v3.5.6
Compare Source
The MongoDB Node.js team is pleased to announce version 3.5.6 of the driver
Release Highlights
Regression in
map
when cursor used as a stream@dobesv helped identify a regression where a map function would be applied twice
if defined on a cursor, and that cursor was used to stream data.
TypeError: Cannot read property 'code' of undefined
User @linus-hologram originally reported an issue with a TypeError when the lambda
passed to the
withTransaction
helper rejected with anull
value. @vkarpov15submitted the fix.
readPreferenceTags
interpreted as an arrayA bug was fixed where
readPreferenceTags
with a single value in the connectionstring was not properly interpreted as an array of tags. This prevented the
Use Analytics Nodes to Isolate Workload guidance from working
correctly.
Cannot set property 'isDirty' of null
User @sean-daley reported seeing this in an AWS Lambda environment, but has proven to
be somewhat of a heisenbug. We are rolling out a fix here that ensures sessions
(implicit or not) are not used after they have been explicitly ended.
Thanks very much to all the community members who contributed to this release!
Release Notes
Bug
v3.5.5
Compare Source
The MongoDB Node.js team is pleased to announce version 3.5.5 of the driver
Release Highlights
Regression in
hasNext
when using a cursor with a limit@peterbroadhurst helped point out a regression introduced in v3.5.4 where using
hasNext
on a cusor with a limit would not return the full set of results.
Ignored topology updates cause servers to fall out of latency window
A change introduced across all MongoDB drivers, and in particular v3.5.0 of the Node.js
driver, attempted to prevent needless duplicate
topologyDescriptionChanged
topology eventsby introducing a
ServerDescription
equality operator. Since equality does not take thelastUpdateTime
andlastWriteDate
fields of an ismaster into account, the driver couldeventually consider servers non-suitable for server selection, since they would fall out
of the latency window.
All updates are considered viable for topology updates now, and only event emission is
gated by
ServerDescription
equality.Memory leaks with Node.js v12+
The legacy topology types (in particular if you were connected to a replic set) used a
custom
Timeout
class to wrap a timer. Unfortunately, the class depended on an undocumented,private variable
_called
, which was removed in Node.js v12. This would lead to the driverthinking the timeout never occurred, and therefore never releasing the object for garbage
collection. We recommend users of the legacy topology types immediately update to this
version of the driver, or use the Unified Topology which is unaffected by this bug.
TypeError: Cannot read property 'Symbol(cancelled)' of undefined
@erfanium and @Paic helped us identify an issue in rare failover events where multiple
requests to process the server selection queue would result in an attempted property
access of an
undefined
variable.promiseLibrary
not respected by newly introducedmaybePromise
helper@tobyealden pointed out that an internal refactor to use a helper to optionally
return a
Promise
for top level API methods was not, in fact, using a custompromise library if one was provided!
Thanks very much to all the community members who contributed to this release!
Release Notes
Bug
v3.5.4
Compare Source
Bug Fixes
STATE_CLOSING
before draining waitQueue (494dffb)hasNext
on cursor (bb359a1)Features
v3.5.3
Compare Source
Bug Fixes
Features
v3.5.2
Compare Source
Bug Fixes
v3.5.1
Compare Source
Bug Fixes
secureConnect
for tls connections (f8bdb8d)ssl=true
(c8d182e)v3.5.0
Compare Source
Bug Fixes
ssl
option to pool connection options (563ced6)updateRsFromPrimary
(95a772e)connectTimeoutMS
(c83af9a)timeout
event (5319ff9)Features
withConnection
helper to the connection pool (d59dced)connectionId
for APM with new CMAP connection pool (9bd360c)MongoServerSelectionError
(0cf7ec9)Monitor
type for server monitoring (2bfe2a1)3.4.1 (2019-12-19)
Bug Fixes
v3.4.1
Compare Source
Bug Fixes
v3.4.0
Compare Source
Bug Fixes
initialize
after session support check (e50c51a)roundTripTime
(cb107a8)drain
event for use with unified topology (da931ea)intervalMS
(afb125f)Features
MessageStream
for streamed wire protocol messaging (8c44044)Connection
replacement for CMAP (7890e48)3.3.5 (2019-11-26)
Bug Fixes
initialize
after session support check (3b076b3)drain
event for use with unified topology (3471c28)Features
3.3.4 (2019-11-11)
Bug Fixes
DISCONNECTED
if reconnect enabled (43d461e)topologyId
for event emission (19549ff)minHeartbeatIntervalMS
=>minHeartbeatFrequencyMS
(af9fb45)close
every time a child server closes (818055a)nodejs
(d126665)Features
hint
to all update methods (720f5e5)3.3.3 (2019-10-16)
Bug Fixes
force
parameter for topology close (d6e8936)Features
3.2.7 (2019-06-04)
Bug Fixes
3.3.2 (2019-08-28)
Bug Fixes
close
is emitted after last chunk (ae94cb9)3.3.1 (2019-08-23)
Bug Fixes
v3.3.5
Compare Source
Bug Fixes
initialize
after session support check (3b076b3)drain
event for use with unified topology (3471c28)Features
v3.3.4
Compare Source
Bug Fixes
DISCONNECTED
if reconnect enabled (43d461e)topologyId
for event emission (19549ff)minHeartbeatIntervalMS
=>minHeartbeatFrequencyMS
(af9fb45)close
every time a child server closes (818055a)nodejs
(d126665)Features
hint
to all update methods (720f5e5)v3.3.3
Compare Source
Bug Fixes
force
parameter for topology close (d6e8936)Features
v3.3.2
Compare Source
Bug Fixes
close
is emitted after last chunk (ae94cb9)v3.3.1
Compare Source
Bug Fixes
v3.3.0
Compare Source
Bug Fixes
full
option was specified (95a7d05)mapReduce
without inline (51a36f3)executeOperation
for explain, if promise is desired (b4a7ad7)Features
Renovate configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻️ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by WhiteSource Renovate. View repository job log here.