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 todelay
-
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.
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 emittingconnect
(e.g. authentication)
Bugs fixed:
-
#148 cset with n=1 holds onto dead connections
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.
Maintenance release.
Bugs fixed:
-
#144 slot failure immediately after removal from resolver leads to sadness
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
andSet
classes now both accept a new constructor option —decoherenceInterval
which allows increasing the interval of the decoherence/shuffle timer.
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)
New minor release, due to addition of new API.
API Changes:
-
The
Pool
class now has a methodgetStats()
, 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
New minor release, due to addition of new API.
API Changes:
-
The
Agent
methodcreatePool()
now accepts aport
option, as well as various TLS-related options (#125)
New minor release, due to addition of new API.
API changes:
-
The
Agent
class now has methodsgetPool()
andcreatePool()
, 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
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)
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
Maintenance release.
Bugs fixed:
-
#111 smgr fixes in 2.2.6 forgot 'error' states — possible crash resulting from mistake in fix for #108
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)
Maintenance release.
Bugs fixed:
-
#107 Bootstrap resolver not stopped when the last resolver using it stops
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)
Maintenance release.
Bugs fixed:
-
#105 Agent pinger logs at INFO level on success. Much logs. Very noise.
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
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 optionconnectionHandlesError
to avoid the need to add a no-op"error"
handler when using aconstructor
that already handles errors.
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
New minor release, due to relaxation of API requirements.
API changes:
-
Connection
interface implementations (i.e. implementers of the objects that are returned by theconstructor
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
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) orhandle.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
Maintenance release.
Bugs fixed:
-
#70 possible crash whenever using the kang "pool monitor" feature.
-
#76 silenced spurious EventEmitter "leak" warnings