Skip to content

Latest commit

 

History

History
343 lines (211 loc) · 8.54 KB

CHANGES.adoc

File metadata and controls

343 lines (211 loc) · 8.54 KB

Changelog

v2.x

v2.10.3

Maintenance release. Switch away from git:// URLs.

v2.10.2

Maintenance release.

Bugs fixed:

  • MANTA-5299 cueball should ease off on the SRV requests

v2.10.1

Maintenance release.

Bugs fixed:

  • MANTA-5189 Bump artedi dep from 1.x to 2.x.

v2.10.0

New minor release, due to addition of new API.

API changes:

  • Recovery objects now accept an optional property delaySpread, to control the magnitude of randomization applied to delay

  • DNS resolver-related stats counters have been added to the kang endpoints.

Bugs fixed:

  • #151 DNS resolver no longer falls back to 60 second retries in error cases if it has previously seen a valid TTL.

  • #150 Many cueball errors are now VError subclasses, with improved error messages and chaining back to their original cause.

v2.9.0

New minor release, due to addition of new API.

API Changes:

  • The connection interface now has a new optional function it can implement, setUnwanted() which allows for optimising behaviour for connection types that do extra work before emitting connect (e.g. authentication)

Bugs fixed:

  • #148 cset with n=1 holds onto dead connections

v2.8.0

New minor release, due to addition of new API.

API Changes:

  • The Pool constructor now accepts a new option, maxChurnRate to constrain the maximum per-backend connection churn rate of the pool.

v2.7.1

Maintenance release.

Bugs fixed:

  • #144 slot failure immediately after removal from resolver leads to sadness

v2.7.0

New minor release, due to addition of new API. The v2.6.0 release was mistakenly published with only the Pool part of the API change.

API changes:

  • The Pool and Set classes now both accept a new constructor option — decoherenceInterval which allows increasing the interval of the decoherence/shuffle timer.

v2.5.3

Maintenance release.

Bugs fixed:

  • #138 added isStopped() method to Agent.

v2.5.2

Maintenance release.

Bugs fixed:

  • #140 Fix bug in pool statistics gathering

v2.5.1

Urgent maintenance release: node-moray, a notable consumer, was broken by v2.5.0 (by depending on undocumented behaviour in the API)

Bugs fixed:

  • #134 fix for #116 broke node-moray (SRV timeouts no longer leading to fallback to A/AAAA records)

v2.5.0

New minor release, due to addition of new API.

API Changes:

  • The Pool class now has a method getStats(), which returns a snapshot of the Pool instance’s counters along with four additional numbers: total connections, idle connections, partly-open connections, and the number of requests queued on available connections (#132)

  • The Pool class has a new option, targetClaimDelay, to allow configuring target claim timeouts to help with managing long, overloaded claim queues (#128)

Bugs fixed:

  • #116 timeout on SRV should avoid triggering fallback to A/AAAA — this helps to prevent "flapping" between A and SRV record lookups

  • #115 handle REFUSED responses as name not known, which modern SDC binders now produce for records outside of their area of authority

v2.4.0

New minor release, due to addition of new API.

API Changes:

  • The Agent method createPool() now accepts a port option, as well as various TLS-related options (#125)

v2.3.0

New minor release, due to addition of new API.

API changes:

  • The Agent class now has methods getPool() and createPool(), which enables inspection of its internal state, as well as injection of a custom Resolver (#122, #124)

  • Pools and Sets now have a new method getLastError() (#80)

Bugs fixed:

  • #123 ConnectionSet memory leak during failure

  • #120 Documentation improvements

v2.2.9

Maintenance release.

Bugs fixed:

  • #118 slot should retain reference to previous claim handle (helps in debugging some types of claimer misbehaviour)

  • #112 docs improvements

  • #119 bump min version of mooremachine to get timestamps (another debugging aid, to see how long claims took to process)

v2.2.8

Maintenance release.

Bugs fixed:

  • #113 spurious error handler leak warnings when using Agent. This is also MANTA-3331 and MANTA-3204

  • #114 cueball agent breaks HTTP Upgrade

v2.2.7

Maintenance release.

Bugs fixed:

  • #111 smgr fixes in 2.2.6 forgot 'error' states — possible crash resulting from mistake in fix for #108

v2.2.6

Maintenance release.

Bugs fixed:

  • #108 crash: unhandled smgr state transition — issue which most commonly happens due to HTTP requests that time out while stalled (buffers full)

  • #109 Agent "health check ok" log msg needs domain name of pool (also adds a bunch of other useful attributes to that log message)

v2.2.5

Maintenance release.

Bugs fixed:

  • #107 Bootstrap resolver not stopped when the last resolver using it stops

v2.2.4

Maintenance release.

Bugs fixed:

  • #106 want INFO logs when backends are shuffled into the top N for pool/set, and when resolver adds/removes records (only after first successful lookup)

v2.2.3

Maintenance release.

Bugs fixed:

  • #105 Agent pinger logs at INFO level on success. Much logs. Very noise.

v2.2.2

  • Fix-up for 2.2.1 being broken (lib/agent.js missing)

v2.2.1

Maintenance release.

Warning
This release is broken. Do not use it.

Bugs fixed:

  • #102 HTTP Agent pinger hangs. HttpAgent’s "ping" option has been broken since 2.0.0.

  • #103 pinger running should not trigger creation of more connections

v2.2.0

New minor release, due to addition of new API.

API changes:

  • The DNSResolver class is now exported in the package root, as specified in the documentation. It was mistakenly left out.

  • Users of ConnectionSet can now supply the option connectionHandlesError to avoid the need to add a no-op "error" handler when using a constructor that already handles errors.

v2.1.1

Maintenance release.

Bugs fixed:

  • #92 ConnectionSet emits 'removed' for connection it never 'added' — this release is now actually safe to use with Moray.

  • #93 kang payload missing "options.domain" etc — makes Kang snapshots a lot easier to read

  • #95, #79, #97 logging improvements, reduction of many ERROR level logs to WARNINGS since applications may not treat a given cueball pool as fatal

  • #96 crash in Pool#on_resolver_removed when FSM already stopped, happens most easily in cases where there is nameserver "flapping"

  • #94 ConnectionSet needs better protection against removing its last working connection

  • #98 test coverage for Kang monitor

v2.1.0

New minor release, due to relaxation of API requirements.

API changes:

  • Connection interface implementations (i.e. implementers of the objects that are returned by the constructor parameter) are no longer required to implement #ref() or #unref().

Bugs fixed:

  • #85 documentation improvements and re-organization

  • #26 clarified that programs that wish to exit cleanly without calling process.exit() must call .stop() on agents or pools.

  • #90 ensure cueball works with node 0.10

  • #88 correct a bug that cause a crash bringing up a backend after pool failure

v2.0.1

Bugs fixed:

  • #86 pool monitor broken on csets (kang endpoint always returns InternalError)

v2.0.0

New major release, due to API change in ConnectionSet.

API changes:

  • ConnectionSet now requires the use of handles to indicate when connections have been drained.

    • Client code must store the handle which is now the 3rd argument to all 'added' events.

    • Client code must be modified to call handle.release() (for a successful drain and clean close) or handle.close() (for failure) and not call .destroy() on the connection, after 'removed' is emitted.

Bugs fixed:

  • #77, #72, #73 rewrite of connection management FSMs. Solves a swathe of issues around error handling and protocols that don’t keep-alive idle connections.

  • #83 new "internals" guide to explain the design and implementation of the library for new developers

  • #75 doc fix for optional parameters that are actually required

  • #82 pools should error-out all outstanding claims when entering "failed" state

v1.x

v1.3.2

Maintenance release.

Bugs fixed:

  • #70 possible crash whenever using the kang "pool monitor" feature.

  • #76 silenced spurious EventEmitter "leak" warnings

v1.3.1

Maintenance release.

Bugs fixed:

  • #69 clearer log messages around connection attempts, failures and delays

  • #71 some additional assertions related to #70

  • #61 handling null as well as undefined for optional settings