duyluonglc / lucid-mongo

Mongodb ODM for adonis framework
325 stars 61 forks source link

An in-range update of mongodb is breaking the build 🚨 #217

Open greenkeeper[bot] opened 5 years ago

greenkeeper[bot] commented 5 years ago

The dependency mongodb was updated from 3.2.7 to 3.3.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

mongodb is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details - ❌ **continuous-integration/travis-ci/push:** The Travis CI build is in progress ([Details](https://travis-ci.org/duyluonglc/lucid-mongo/builds/571366048?utm_source=github_status&utm_medium=notification)). - ❌ **continuous-integration/appveyor/branch:** AppVeyor build failed ([Details](https://ci.appveyor.com/project/duyluonglc/lucid-mongo/builds/26668146)).

Commits

The new version differs by 1878 commits ahead by 1878, behind by 7.

  • 8b3c3b0 chore(release): 3.3.0
  • 0d2018c docs(AutoEncryption): adds documentation for extraOptions
  • 3ecda98 docs(autoEncryption): document that autoEncryption is in beta
  • 814a4cc chore(useUnifiedTopology): add deprecation warning for useUnifiedTopology
  • b7308db test: disable some failing tests for later investigation
  • b23e606 test(transactions): disable invalid pinning test
  • 82a7a6e chore(travis): add 4.2 testing to travis
  • 392f5a6 fix(topology): add new error for retryWrites on MMAPv1
  • 2ef8f2c chore(ci): update evergreen config to test Ubuntu 18.04 on mongodb >= 4.2
  • ae729f8 refactor(change-stream): use AggregateOperation for stream cursor
  • 831968d refactor(cursor): return operation readPreference with priority
  • 1ffe9b7 refactor(client): provide default namespace and read preference
  • 778928f refactor(command): support full response as command op option
  • 6acef6d refactor(find): use FindOperation for finds
  • 0f88582 refactor(cursor): modernize and deduplicate cursor classes

There are 250 commits in total.

See the full diff

FAQ and help There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).

Your Greenkeeper Bot :palm_tree:

greenkeeper[bot] commented 5 years ago

After pinning to 3.2.7 your tests are still failing. The reported issue might not affect your project. These imprecisions are caused by inconsistent test results.

greenkeeper[bot] commented 5 years ago

Your tests are still failing with this version. Compare changes

greenkeeper[bot] commented 5 years ago

Your tests are still failing with this version. Compare changes

greenkeeper[bot] commented 5 years ago

Your tests are still failing with this version. Compare changes

Commits

The new version differs by 146 commits.

  • f326744 chore(release): 3.3.3
  • 4cdb950 Revert "feat(Update): add the ability to specify a pipeline to an update command (#2017)"
  • 558d4fb test: simply access to required topology directive
  • 8e5391d test: remove deprecated test runner filters
  • 0a98aa4 test: don't throw errors in eachAsync in new test runner
  • ee15ea0 refactor(monitoring): hoist Server constants out of monitor code
  • 8a4de3f test: remove legacy code for no longer existant server bug
  • 7b8dcbf test: remove accidentally committed debug code
  • 33744f5 test: remove duplicate configuration code
  • 3fe378a chore: reenable linting as part of test script
  • 6fc750e chore: remove dependency on mongodb-test-runner
  • 8ccea97 test(es-next): ensure inventory collection is already created
  • c5f1558 test: add configuration for evergreen
  • b6f356d test: close => destroy
  • 6eb2e16 test: check that servers exist before coercing them into an array

There are 146 commits in total.

See the full diff

greenkeeper[bot] commented 5 years ago

Your tests are still failing with this version. Compare changes

Release Notes for v3.3.4

The MongoDB Node.js team is pleased to announce version 3.3.4 of the driver

Release Highlights

This release primary consists of improvements to the "unified topology". In particular, a regression with interaction between the connection pool and topology could result in servers which "go away" (due to network error, for example) would not return, resulting in a MongoTimeoutError.

Release Notes

Bug

  • [NODE-2123] - MaxListenersExceededWarning caused by topologyDescriptionChanged
  • [NODE-2214] - Incorrect removal of Unknown server type from ReplicaSetNoPrimary topology
  • [NODE-2234] - isConnected() takes legacy path with useUnifiedTopology
  • [NODE-2251] - `useUnifiedTopology` continuously emits 'close' event when replica set member is down
  • [NODE-2268] - Legacy SDAM ReplSet topology reports incorrect topology ID
  • [NODE-2270] - Servers are not removed from unknownServer list, leaking
  • [NODE-2274] - Unified topology never regains nodes which temporarily go down
  • [NODE-2277] - Unhandled error when server is offline

Improvement

  • [NODE-1517] - normalize state management across all stateful types
  • [NODE-2257] - Introduce ServerDescription equality to reduce SDAM events
  • [NODE-2263] - support ability to pass hint to update
  • [NODE-2276] - Add SDAM test for debouncing topology description updates
  • [NODE-2280] - Integrate a state machine into the unified topology
  • [NODE-2309] - Document the design and rationale of the unified topology
  • [NODE-2316] - Correct client metadata for unified topology
Commits

The new version differs by 91 commits.

  • ce60476 chore(release): 3.3.4
  • d126665 fix(topology): report unified topology as nodejs
  • 0a22e3f test: allow values other than true for unified filter
  • d38a6b6 refactor(topology): always ensure useUnifiedTopology is present
  • 7dc7cb8 test: support only passing options to configuration.newTopology
  • 5f6a787 fix(connect): prevent multiple callbacks in error scenarios
  • ba123a6 refactor: support a factory type in connect
  • 51e8807 doc: introduce documentation about the unified topology design
  • 0c1114d refactor(topology): report topology state for helper methods
  • b493e1b chore(release): 3.3.4-rc0
  • edb1335 fix(topology): set max listeners to infinity for db event relay
  • 29e5ef7 test: disable historically flakey test until we can triage the cause
  • 63e8fb5 chore: remove evergreen targets that don't run newer node versions
  • 06398a3 test: use a universally supported invalid query
  • 6475fd9 test: test multiple possible projection error messages

There are 91 commits in total.

See the full diff

greenkeeper[bot] commented 5 years ago

Your tests are still failing with this version. Compare changes

Commits

The new version differs by 26 commits.

  • 6930e12 chore(release): 3.3.5
  • b0f83b8 refactor: notify when attempting to use deprecated events/options
  • 3b076b3 fix(cursor): call initialize after session support check
  • 3471c28 fix(pool): support a drain event for use with unified topology
  • c24eb91 test: add a color for workload messages to sdam_viz
  • 261f1e5 fix(topology): don't drain iteration timers on server selection
  • b425fe5 refactor(topology): remove extra timers around selection monitoring
  • 2d976bd fix(topology): correct logic for checking for sessions support
  • 4d2bd6e test: remove use of format in max staleness tests
  • 28a944b refactor: minor modification to the workload generator for sdam_viz
  • a95347a refactor: use named exports for all SDAM types
  • 38d5ed8 test: add support for a simulated read workload to sdam_viz
  • be0d36e refactor: explicitly disallow selection if topology is closed
  • f07a03f test: add unit tests for selectServers method
  • f597e52 refactor(monitoring): simplify logic for rescheduling monitoring

There are 26 commits in total.

See the full diff

greenkeeper[bot] commented 4 years ago

Your tests are still failing with this version. Compare changes

Commits

The new version differs by 116 commits.

  • ff95a2f chore(release): 3.4.0
  • e6ff085 test: only test CSFLE on LTS versions of node
  • 13bb49c chore: update mongodb-client-encryption to 1.0.0 in testing
  • 8588e57 style: correct linting issues introduced with prettier update
  • 0e48300 style: update to newest version of prettier
  • b573fe1 refactor: translate modern tls options to ssl, update documentation
  • 806cd62 fix(scram): verify server digest, ensuring mutual authentication
  • cb107a8 fix: add calculated duration to server as roundTripTime
  • faab9ad chore: fix name of atlas connectivity tests
  • afb125f fix(srv-poller): always provide a valid number for intervalMS
  • 8da416f chore: move srv polling tests to test/unit/sdam
  • b9b5208 refactor(pool): use cancellation token for connection establishment
  • 2014b7b feat: support connection establishment cancellation
  • 8a07893 refactor: simplify connect, reuse a set for error event names
  • f3a8093 test: update SDAM spec tests to support multiple phases

There are 116 commits in total.

See the full diff

greenkeeper[bot] commented 4 years ago

Your tests are still failing with this version. Compare changes

Commits

The new version differs by 5 commits.

  • bc93598 chore(release): 3.4.1
  • e46a70e fix: always check for network errors during SCRAM conversation
  • e44f553 chore: update google analytics code
  • 20800ac fix(bulk): use original indexes as map for current op index
  • 3f34e3e doc: update version for doc generation

See the full diff

greenkeeper[bot] commented 4 years ago

Your tests are still failing with this version. Compare changes

Release Notes for v3.5.0

The MongoDB Node.js team is pleased to announce version 3.5.0 of the driver

Release Highlights

CMAP-compliant Connection Pool

This release introduces a modern replacement for the driver's connection pool, available only with the
unified topology. A major effort was made in early 2019 to fully specifiy connection pools for MongoDB
drivers (see: CMAP specification), and this release brings the Node.js driver in line with that
specification.

Traceability

The new pool supports monitoring for all aspects of its behavior. This allows deep introspection into
the operation of the connection pool, as well as an ability to profile the lifetime of an operation
when used in conjunction with command monitoring.

Stream-first Connection Design

The Connection class was completely rewritten for the new pool adopting a stream-first mentality. All
wire message processing and compression is handled in a duplex stream called the MessageStream, and
that stream is connected bidirectionally to the underlaying TCP socket. The result is a connection which
gains the general benefit of streams: better performance, less memory pressure, backpressure support. It
also opens the possiblity of supporting non-TCP/UDP streams as a transport for the driver.

waitQueueTimeoutMS

The new connection pool has a concept of a "wait queue", which allows operation requests to buffer waiting
for a connection to execute against. There is no timeout by default, but users can now specify a new value
waitQueueTimeoutMS in their connection string or MongoClient options to proactively cancel operations
that have waited too long.

Remember that the new connection pool is only available for the "Unified Topology", so remember to pass
useUnifiedTopology: true to your MongoClient constructor to use it!

Dedicated monitoring thread

Both the legacy and unified SDAM implementations have until now executed monitoring checks as priority
messages in the legacy Pool implementation. This means that monitoring (ismaster) operations were
prioritized over other queued operations, but also means that monitoring could be indefinitely blocked,
in particular during failover or blackhole scenarios. The default socket timeout is null (read: Infinity),
so if the pool was completely saturated with operations, there may be no ability to execute a monitoring
check and determine that the connection to a server was no longer valid. This version of the driver
introduces a new Monitor class which manages its own dedicated monitoring socket to each known
node.

Server selection errors

In v3.3.0 of the driver we introduced a new MongoTimeoutError for all errors covered by the server
selection loop, leading to a spike in bug reports with a title similar to Server selection timed out after 30000ms.
Even though the error type itself had an attached reason field, we still feel it was easy to miss why
the selection had failed. As a result we have introduced a new type MongoServerSelectionError which
will use the originating error (reason) for its message, better informing users what caused a
selection error, while still also conveying it is an error in server selection.

Release Notes

New Feature

  • [NODE-1742] - Implement Connection Monitoring and Pooling spec
  • [NODE-2386] - Use a dedicated monitoring thread

Bug

  • [NODE-2400] - Synchronous errors are swallowed by executeOperation
  • [NODE-2417] - Server descriptions with me mismatch from primary response should be removed
  • [NODE-2418] - client platform not sent in metadata for CMAP connections

Improvement

  • [NODE-1619] - Remove wasteful empty Buffer allocations in `Connection`
  • [NODE-2049] - Add "connectionError" as a valid "reason" for a ConnectionCheckOutFailedEvent when connection set up fails
  • [NODE-2397] - Make server selection errors more informative
  • [NODE-2402] - Integrate CMAP connection pool into unified topology
  • [NODE-2419] - Improve traceability of CMAP events
  • [NODE-2033] - Ignore ConnectionReadyEvent in CMAP pool creation test
Commits

The new version differs by 131 commits.

  • 8991285 chore(release): 3.5.0
  • ea56625 chore: waitQueueTimeoutMS is a valid connection string option
  • a630389 refactor: wait until server destroyed before stopping event relay
  • c04a520 doc: add basic documentation for CMAP event monitoring
  • c01bf50 refactor: don't encode type name into public CMAP event types
  • 1aea4de feat: relay all CMAP events to MongoClient
  • ed8c9d4 refactor: warn on use of deprecated SDAM events in unified mode
  • 7e64df7 test: reduce flakiness of objectid test which checks by time
  • 0715a36 doc: add documentation for CMAP events and errors
  • 9bd360c feat: include connectionId for APM with new CMAP connection pool
  • 9541410 test: ignore ismaster events in change streams spec tests
  • ec3d87b test: allow all test files to use custom chai mongodb spec matcher
  • 35d0274 fix: report the correct platform in client metadata
  • c528a66 Revert "fix: remove servers with me mismatch in updateRsFromPrimary"
  • 903208f Revert "test: include auth information in generated test connection string"

There are 131 commits in total.

See the full diff

greenkeeper[bot] commented 4 years ago

Your tests are still failing with this version. Compare changes

greenkeeper[bot] commented 4 years ago

Your tests are still failing with this version. Compare changes

greenkeeper[bot] commented 4 years ago

Your tests are still failing with this version. Compare changes

Release Notes for v3.5.4

The MongoDB Node.js team is pleased to announce version 3.5.4 of the driver

Release Highlights

Regression in hasNext when piping a cursor

Pierre Mallet and @Sintendo helped identify a regression with our cursors which did not
properly rewind a cursor when hasNext was called before the cursor was piped.

Regression in server selection queue processing

A change introduced in v3.5.3 converted the server selection loop from a loop with timers
to a queue of callbacks. A subtle bug was introduced to the code to process the quere where
the upper bound of a for loop was using a dynamically decreasing length, leading to some
operations being ignored, and ultimately timing out. Many thanks to Frederic Maillasson,
@paulrobinson, and @adityapatadia for helping uncover this issue

Only ensure minimum connection pool size if a size is specified

User @millerick submitted a PR short circuiting the background task for ensuring a minimum
pool size if no minimum size was set.

Release Notes

Bug

  • [NODE-2454] - Cursor.hasNext() seems to consume first document when the cursor is piped in a writable stream
  • [NODE-2464] - max election ID comparison uses invalid comparison for tracking
  • [NODE-2466] - Driver does not seem to properly recover from a long disconnection with primary server
  • [NODE-2467] - MongoServerSelectionError when using useUnifiedTopology: true

Improvement

  • [NODE-2459] - Do not run minimum connection size task if there is no minimum pool size
Commits

The new version differs by 15 commits.

  • 582d3e2 chore(release): 3.5.4
  • e08b358 chore: disable test using CodeWScope with a $where clause
  • 3dd726c chore: upate EVG macos runs to use 10.14 boxes
  • 494dffb fix(topology): enter STATE_CLOSING before draining waitQueue
  • bf701d6 fix(topology): ensure selection wait queue is always processed
  • 361bc1e refactor: remove SKIP_SESSION aspect
  • f6a8ceb refactor: use maybePromise for all MongoClient fake operations
  • 6f71507 chore: move sdam spec unit tests from unit/core to unit/sdam
  • a1e0849 fix(sdam): use ObjectId comparison to track maxElectionId
  • 2d1b713 fix(cmap): don't run min connection thread if no minimum specified
  • f8694f5 refactor: remove nextObject helper, inline code in cusror class
  • bb359a1 fix: don't consume first document when calling hasNext on cursor
  • c56ff72 test: add test for hasNext not consuming first document in stream
  • 76333fc refactor: use maybePromise instead of fake operations
  • ac9e4c9 feat: add utility helper for returning promises or using callbacks

See the full diff

greenkeeper[bot] commented 4 years ago

Your tests are still failing with this version. Compare changes

Release Notes for v3.5.5

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 events
by introducing a ServerDescription equality operator. Since equality does not take the
lastUpdateTime and lastWriteDate fields of an ismaster into account, the driver could
eventually 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 driver
thinking 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 introduced maybePromise 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 custom
promise library if one was provided!

Thanks very much to all the community members who contributed to this release!

Release Notes

Bug

  • [NODE-2460] - Memory Leak with ReplSet and NodeJS v12
  • [NODE-2472] - TypeError on server available with useUnifiedTopology: true
  • [NODE-2474] - Server_Description update with lastUpdateTime / lastWriteDate fields is ignored in topology
  • [NODE-2480] - TypeError after reconnecting
  • [NODE-2483] - Regression using hasNext on cursor with limit
  • [NODE-2490] - promiseLibrary option is not honoured
Commits

The new version differs by 11 commits.

  • d7ac176 chore(release): 3.5.5
  • f69f51c fix: multiple concurrent attempts to process the queue may fail
  • cde11ec fix: pass optional promise lib to maybePromise
  • 0c36a32 NODE-2474: update equal server description (#2260)
  • 6b3b64d test: ensure mock server is setup before continuing with tests
  • 6238c84 fix: correctly use template string for connection string error message
  • 44097c2 test: use a reduced minHeartbeatFrequencyMS for spec test runner
  • ef04d00 fix(cursor): hasNext consumes documents on cursor with limit
  • b72fefe docs: update community links to use MongoDB Community forums
  • e7dd608 docs: fix typo and formatting of bulletted lists
  • 3ddaa3e fix: don't depend on private node api for Timeout wrapper

See the full diff

greenkeeper[bot] commented 4 years ago

Your tests are still failing with this version. Compare changes

Release Notes for v3.5.6

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 a null value. @vkarpov15
submitted the fix.

readPreferenceTags interpreted as an array

A bug was fixed where readPreferenceTags with a single value in the connection
string 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

  • [NODE-2503] - Cursor ReadStream applies map function twice
  • [NODE-2515] - TypeError when transaction is rejected with empty reason
  • [NODE-2541] - readPreferenceTags are not interpreted as an array
  • [NODE-2545] - Cannot set property 'isDirty' of null
  • [NODE-2549] - Unknown topology should return empty array for server selection with read preference
Commits

The new version differs by 14 commits.

  • 08e89c0 chore(release): 3.5.6
  • e43d39a chore: require bson 1.1.4 or higher
  • a6f6da0 test: wait for mock server creation before using it
  • 611be8d fix: only mark server session dirty if the client session is alive
  • 7403e31 docs: Fix typo in Collection#find param
  • f9e786a fix: always return empty array for selection on unknown topology
  • d6f3001 Revert "fix: createCollection only uses listCollections in strict mode"
  • a50611b fix: single readPreferenceTags should be parsed as an array
  • d368f12 fix: createCollection only uses listCollections in strict mode
  • 153646c fix: don't throw if withTransaction() callback rejects with a null reason
  • 7778977 chore: remove superfluous build variants
  • a0b1c5a chore: remove exotic build configurations
  • 1c4cf6c fix: polyfill for util.promisify
  • 704f30a fix(cursor): transforms should only be applied once to documents

See the full diff

greenkeeper[bot] commented 4 years ago

Your tests are still failing with this version. Compare changes

Release Notes for v3.5.7

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

  • [NODE-2536] - Circular dependency in Node.js 14 nightly
  • [NODE-2552] - Server session creation grows unbounded with every operation call

Improvement

  • [NODE-2534] - Document options supported by the unified topology
  • [NODE-2560] - Make 'reIndex' a standalone-only command
Commits

The new version differs by 12 commits.

  • 6eb6d6c chore(release): 3.5.7
  • 7f1cf35 refactor(ChangeStream): use maybePromise for next/hasNext
  • 8851a28 docs: fix event names in gridFS tutorial
  • 8a69ed6 chore: update snappy version to fix issue with node v4
  • 61aaa3d doc: document options supported by the unified topology
  • f778ef5 test: reduce flakiness of socket timeout test
  • 3d05a6d fix: limit growth of server sessions through lazy acquisition
  • 56a1b8a fix: remove circular dependency warnings on node 14
  • 84d2354 test: temporarily skip sharded transactions tests
  • 0b6f813 chore: update package lock to depend on latest bson version
  • 0665a02 test: remove replicaset topology from reIndex tests
  • d8bbb55 test: lint the driver in a single evergreen task

See the full diff

greenkeeper[bot] commented 4 years ago

Your tests are still failing with this version. Compare changes

Release Notes for 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

Improvement

  • [NODE-2522] - Remove ElectionInProgress (216) from ResumableChangeStreamError
  • [NODE-2571] - Don't use admin database for FLE tests
  • [NODE-2630] - Simplify code path for ending implicit sessions in cursors
Commits

The new version differs by 14 commits.

  • 9c4288c chore(release): 3.5.8
  • 5c6fda1 fix: ensure implicit sessions are ended consistently
  • 0394f9d fix: always clear cancelled wait queue members during processing
  • 58b4f94 fix: always include writeErrors on a BulkWriteError instance
  • 6cee96b fix: unordered bulk write should attempt to execute all batches
  • 4faf9f5 fix: filter servers before applying reducers
  • 5ecf18e fix(ChangeStream): should resume from errors when iterating
  • 7fad15a test: improve shared helpers
  • 246669f fix: honor journal=true in connection string (#2359)
  • 1e3b4c9 refactor(ChangeStream): use maybePromise for close, improve tests
  • 5e7197a test: ignore error for missing killAllSessions on legacy versions
  • 4f987f1 refactor: don't use admin database in CSFLE tests
  • a9d3965 fix(ChangeStream): whitelist resumable errors (#2337)
  • 922c3ab test: use a different conflicting option for index error validation

See the full diff