Releases: couchbase/libcouchbase
3.3.14
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.3.14
Full Changelog: 3.3.13...3.3.14
- CCBC-1653: Fix setting timeout for analytics query.
- CCBC-1651: Ensure that purged packets get their memory released, it fixes memory leak in case of network issues.
- CCBC-1646: Server groups for replica reads.
- CCBC-1555: Remove extra prefix in tapset probes.
- CCBC-1598: Fix documentation for cbc tools.
- Fix tests on 7.6 server
3.3.13
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.3.13
Full Changelog: 3.3.12...3.3.13
3.3.12
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.3.12
Full Changelog: 3.3.11...3.3.12
-
CCBC-1636: Deallocate old packet when updating collection ID.
mcreq_renew_packet()
requires the caller to deallocate original copy, otherwise the memory will be only released by pipeline destructor. -
CCBC-1634: Fix reporting unresponsive nodes in
lcb_ping()
.- do not retry NOOP commands, as they might be routed to different pipeline, instead fail fast NOOPs to reflect network issues more precisely.
- use pipeline address as ping entry identifier instead of socket address, as socket might not be existing (not connected) due to network failures.
lcb_ping
still have report even when overall status is notLCB_SUCCESS
, so cbc-ping should still try to print report instead just printing overall status code.
-
CCBC-1630: Check collection id before storing packet to pipeline.
Every timecheck_collection_id()
is invoked, the caller should ensure that this function potentially is rewriting the packet, if it decides to insert/update encoded collection ID. -
CCBC-1627: Fix
bodylen
value whenffextlen
(flexible frame extra length) is not zero.
3.3.11
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.3.11
Full Changelog: 3.3.10...3.3.11
-
CCBC-1618: Update query error codes for dynamic authenticator. This is an update to internal interface, that allows more granular detection of stale authentication conditions for query service.
-
Prevent full rebuild on every run of cmake. Do not render built timestamp into the header, but instead only use it in object file.
3.3.10
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.3.10
Full Changelog: 3.3.9...3.3.10
-
CCBC-1616:
Await_for_config
check is now applied for all pipelines. Previously, thelcb_wait
function would wait for the pending configuration updates, but didn't do it if the configuration update operation was being retried. Now, the operation also will not wait for pending configuration updates, rather it will return fromlcb_wait
as soon as the operation completes.- The old behaviour still works when
wait_for_config=true
is passed in the connection string (orLCB_CNTL_WAIT_FOR_CONFIG
is set to non-zero value): in this case the library will wait for the configuration. - This setting does not affect the mode when the event loop is executed by the application, and without
lcb_wait
.
- The old behaviour still works when
3.3.9
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.3.9
Full Changelog: 3.3.8...3.3.9
-
CCBC-1608: reduce timeout for idle HTTP connections to 1 second
-
CCBC-1615: handle rate limit codes during bootstrap
-
CCBC-1612: Improve recovery time during rebalance for upcoming Server 7.6.
- do not throttle CCCP provider in faster failover mode.
- try to refresh configuration in case of network errors to speed up the recovery process during failover.
-
CCBC-1611: Handle
0x0d
(ECONFIG_ONLY
) status code. Treat this status code as a signal to refresh configuration.
The new or failed over nodes are set into config-only mode, where all data operations will be failed with code 0x0d. It is possible that the SDK might be using stale configuration and send requests to the node, that is not part of the cluster anymore, so to work around this, the library will update the configuration and retry the operation. -
CCBC-1610: Fix memory issues when setting collection id in the cluster with mixed server versions, where some of the nodes do not support collections.
3.3.8
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.3.8
-
CCBC-1584: Update documentation on how to use collections with pillowfight
-
CCBC-1607: Fix collection id encoding in mixed cluster
-
CCBC-1602: Implement Faster Failover.
This implements the set of protocol optimizations that help the SDK to save network traffic when tracking cluster topology. The feature will be only activated if the server supports it (7.6+). -
CCBC-1603: Do not log if logger is not accessible in
iotssl_log_errors
. -
CCBC-1599: Account NUL-byte when format IPv6 address (fixes potential invalid memory access).
3.3.7
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.3.7
-
CCBC-1596: replace unsafe sprintf with snprintf.
-
CCBC-1597: Update threading example, reduce global state.
Json::Reader
uses static global variable, this patch replaces calls to it withJson::CharReaderBuilder
, which is re-entrant.- Constants for tracing system defined as mutable static strings, this patch replaces it with const static strings.
- Updated examples for thread-safe usage is updated to SDK3 API and added them to the build pipeline
3.3.6
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.3.6
-
CCBC-1590: Always pick random node for HTTP services.
It helps with certain edge cases, when the application might spawn a lot of processes, perform queries, so that first queries will be directed to the same node due to the absense ofsrand()
call in the library. -
CCBC-1596: Fix various compiler warnings.
-
CCBC-1592: Allow to generate more randomized bodies in pillowfight
By default cbc-pillowfight pre-generates only one document body per selected size. New option--random-body-pool-size
allows to control how many documents will be generated (default is 100).
This fixes behaviour in the corner case when--min-size
equals--max-size
and allow still have many random bodies in this case. -
CCBC-1595: Fix building of the subdocument operation when
--subdoc
switch for pillowfight was used. -
pillowfight: use separate expiration time switch for GET operations.
Do not share the same value of expiry for get operations. Also it does not turnGET
intoGET_WITH_TOUCH
if the --get-expiry is not being used.
3.3.5
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.3.5
-
CCBC-1545: handle
LCB_ERR_REQUEST_CANCELED
in ping callbackIf the instance is being destroyed, while the operations in flight, all these operations will be cancelled with error code
LCB_ERR_REQUEST_CANCELED
. Ping implementation should handle this error code and don't assume any of the objects (except response) be in valid state. -
CCBC-1586: force SASL PLAIN for TLS connections
-
CCBC-1589: apply authenticator when passed to
lcb_create
-
CCBC-1585: fix build for gcc-13
-
CCBC-1587: allow to disable uninstall target