Releases: couchbase/libcouchbase
2.8.3
API documentation: http://docs.couchbase.com/sdk-api/couchbase-c-client-2.8.3/
Changes
-
CCBC-415: Fixes in IPv6 support. To use IPv6 addresses, the application should connect to IPv6-enabled Couchbase Server, and explicitly switch on option via connection string
ipv6=allow
oripv6=only
, where first variant permits the library to use both IPv6 and IPv4, and the second -- disables IPv6. Alternatively this setting controlled withLCB_CNTL_IP6POLICY
andlcb_cntl
. -
CCBC-872: Metrics management. These metrics are intended at providing information on libcouchbase operations performed over the lifetime of the current
lcb_t
instance (processed request packets, processed response packets, request packets pending emission, server errors, server timeouts, misrouted operations, retried operations).Metrics collection is currently disabled by default. To enable metrics collection, the user should call:
int activate = 1; lcb_cntl(instance, LCB_CNTL_SET, LCB_CNTL_METRICS, &activate);
Access to the collected metrics is done using:
lcb_METRICS* my_metrics; lcb_cntl(instance, LCB_CNTL_GET, LCB_CNTL_METRICS, &my_metrics);
-
CCBC-870: Fix updating URL on retry. When retrying HTTP request, instead of replacing just
host:port
part of the old URL, the library inserted full URL. -
CCBC-547: Detect dead sockets under libuv.
-
Ensure macros safe by surrounding values with parentheses
2.8.2
API documentation: http://docs.couchbase.com/sdk-api/couchbase-c-client-2.8.2/
Changes
-
CCBC-833, CCBC-834: Update real cluster integration in the test suite.
-
CCBC-860: cbc-connstr: Do not zero out C++ instances.
-
CCBC-859: Fix libm shared object detection on Debian 9.
-
Bugs reported by clang analyzer:
- CCBC-858: Fix memory leak for compressed packet.
- CCBC-857: Fix possible NULL pointer dereference in
mcreq_reserve_key
. - CCBC-856: Initialize response struct in
H_config
. - CCBC-855: Fix dead assignments in
contrib/genhash
. - CCBC-854: Init vbguess array before entry lookup.
- CCBC-853: cbc-proxy: do not use client object after free.
- CCBC-852: Do not free memory twice in N1QL index manager.
2.8.1
API documentation: http://docs.couchbase.com/sdk-api/couchbase-c-client-2.8.1/
Changes
-
Check nodes number for durability checks. The store with durability
requirements will report more specific error when the library cannot
fulfill the condition during failover.- Issues: CCBC-817
-
Handle enhanced error messages for subdoc operations. The subdoc
responses will now expose context and reference ID if present.- Issues: CCBC-846
-
Discover and bootstrap analytics service from cluster configuration.
- Issues: CCBC-840
-
Improve documentation of configuration parameters.
- Issues: CCBC-835
-
Enable Error Map feature by default.
- Issues: CCBC-838
-
Cleanup and extend
minimal
,libeventdirect
,instancepool
examples -
Tools:
- improve error reporting
- experimental subcommand
cbc-proxy
- fix memory leaks
- retry store operations during population phase in
cbc-pillowfight
2.8.0
API documentation: http://docs.couchbase.com/sdk-api/couchbase-c-client-2.8.0/
Changes
-
Add support for OpenSSL-1.1.
- Issues: CCBC-814
-
Mask
LOCKED
status code for backward compatibility. This code
(as well as others possible codes with 'item-locked' attribute)
replaced withLCB_KEY_EEXISTS
forSET
,REPLACE
andDELETE
operations, and withLCB_ETMPFAIL
for the rest.- Issues: CCBC-832
-
Stop enumerating bootstrap nodes and mechanisms when the server
returns authentication error.- Issues: CCBC-825
-
Fixed double free error with
lcb_ping3
.- Issues: CCBC-826
-
Exposed additional N1QL query parameters:
lcb_n1p_readonly
,
lcb_n1p_scancap
,lcb_n1p_pipelinecap
.- Issues: CCBC-823
-
Fixed
cbc-subdoc/upsert
without XATTR.- Issues: CCBC-823
-
XERROR attributes synchronized with recent list on server.
- Issues: CCBC-828
-
Add missing documentation, and update stability of the API.
-
Do not throttle background configuration polling by throttle interval
of configuration error handler.- Issues: CCBC-829
-
Turn on background polling by default. The library will try
to schedule configuration update every 2.5 seconds. To disable it
useconfig_poll_interval=0
.- Issues: CCBC-836
2.7.7
API documentation: http://docs.couchbase.com/sdk-api/couchbase-c-client-2.7.7/
Changes
-
Implement new function
lcb_ping3
, which sends NOOP-like message to
each service in the cluster and allows to measure latency along with
health status of the connection. Might be useful for application-side
keep-alive mechanisms.- Issues: CCBC-801
-
Detect and expose bucket type through
LCB_CNTL_BUCKETTYPE
:lcb_BTYPE type; lcb_cntl(instance, LCB_CNTL_GET, LCB_CNTL_BUCKETTYPE, &type);
- Issues: CCBC-790
-
Fixed setting expiration in subdoc mutations.
- Issues: CCBC-799
-
Fixed DNS SRV support of Fedora 26 and FreeBSD.
- Issues: CCBC-816
-
Fixed DNS SRV with SSL connections.
- Issues: CCBC-794
-
Define EREMOTEIO in libuv
- Issues: CCBC-812
-
New subdocument command to remove whole document
- Issues: CCBC-811
-
New cbc command:
cbc-subdoc
. It provides interactive shell, where
all subdocument commands accessible to inspect and modify documents
in the cluster. -
New cbc command:
cbc-ping
. It sends NOOP-like messages to all accessible
services in the cluster, and displays the status along with latency.- Issues: CCBC-801
-
Fix
cbc-cat --replica
, which now allows reading documents from replicas.- Issues: CCBC-820
-
Implement NOOP command and
cbc-pillowfight --noop
, which sends NOOP
instead of data manipulation commands.- Issues: CCBC-801
-
Clarify errors found in
.cbcrc
. Now it will display configuration path
along with error message.- Issues: CCBC-759
-
Update examples:
- Support username/password in subdoc and libeventdirect examples
- Added example for subdoc XATTRs
-
Integrate fix for parallel build with dtrace on FreeBSD
freebsd/freebsd-ports@a71e1a8 -
Make enhanced errors API public
- Issues: CCBC-803
-
Fixed various compiler and cppcheck warnings and documentation update.
2.7.6
API documentation: http://docs.couchbase.com/sdk-api/couchbase-c-client-2.7.6/
Changes
-
Expose enhanced errors for data commands. Couchbase Server 5 might return
additional information about errors in the response body. According to
SDK-RFC-28, the library allow user code to inspect this information using
following functions:lcb_resp_get_error_context(int, const lcb_RESPBASE *)
lcb_resp_get_error_ref(int, const lcb_RESPBASE *)
They both return non-NULL strings if any of error information accessible.
The lifetime of these fields limited by lifetime of the response object.- Issues: CCBC-781
-
Report contextualized error messages during negotiation. The event reference
could be used to find more details about authentication errors in the server
logs.- Issues: CCBC-780
-
Specify correct protocol level for
SO_KEEPALIVE
. This fixes setting
tcp_keepalive
option on connections.- Issues: CCBC-798
-
Implement Error Map Retries. This implements the mechanics needed to retry
commands on various errors based on dynamic settings supplied via the error map.- Issues: CCBC-783
-
Add cluster admin provider. This provider doesn't do anything except serve
as a source of management hostnames. And the library will fall back to it
when bucket is not specified for cluster management connections.- Issues: CCBC-797
-
Implement RBAC user management in cbc tools. In addition to
examples/users
,
this can be a demonstration of new security APIs which appear in Couchbase
Server 5.- Issues: CCBC-757
-
Allow to inspect query errors in
cbc-n1qlback
. The command will write
details for failed queries to file, specified with option--error-log
. -
Fix memory leak in io::Pool
- Issues: CCBC-791
-
Fix
LCB_SDCMD_GET_FULLDOC
. This would not actually work beforehand
because the opcode it's mapped to is 0, and we used 0 as a sentinel
value for an invalid opcode within the subdoc implementation.- Issues: CCBC-792
-
Add LCB_NOT_AUTHORIZED error code. This error code maps to
Memcached's EACCESS -
Don't send empty Authorization header for HTTP requests, If there's
no username and/or password- Issues: CCBC-789
-
Internal refactoring:
io::Pool
- remove empty dtor- Fix
BadPluginEnvironment
test on Fedora where libm.so is ld script - Add missing commands for
cbc-help
-
Documentation update:
- Add additional documentation for
lcb_n1ql_cancel()
- Typos
- Add additional documentation for