Skip to content

Releases: couchbase/libcouchbase

2.8.3

22 Nov 10:21
2.8.3
Compare
Choose a tag to compare

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 or ipv6=only, where first variant permits the library to use both IPv6 and IPv4, and the second -- disables IPv6. Alternatively this setting controlled with LCB_CNTL_IP6POLICY and lcb_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

17 Oct 21:58
2.8.2
Compare
Choose a tag to compare

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

20 Sep 11:02
2.8.1
Compare
Choose a tag to compare

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.

  • Handle enhanced error messages for subdoc operations. The subdoc
    responses will now expose context and reference ID if present.

  • Discover and bootstrap analytics service from cluster configuration.

  • Improve documentation of configuration parameters.

  • Enable Error Map feature by default.

  • 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

31 Aug 12:12
2.8.0
Compare
Choose a tag to compare

API documentation: http://docs.couchbase.com/sdk-api/couchbase-c-client-2.8.0/

Changes

  • Add support for OpenSSL-1.1.

  • Mask LOCKED status code for backward compatibility. This code
    (as well as others possible codes with 'item-locked' attribute)
    replaced with LCB_KEY_EEXISTS for SET, REPLACE and DELETE
    operations, and with LCB_ETMPFAIL for the rest.

  • Stop enumerating bootstrap nodes and mechanisms when the server
    returns authentication error.

  • Fixed double free error with lcb_ping3.

  • Exposed additional N1QL query parameters: lcb_n1p_readonly,
    lcb_n1p_scancap, lcb_n1p_pipelinecap.

  • Fixed cbc-subdoc/upsert without XATTR.

  • XERROR attributes synchronized with recent list on server.

  • Add missing documentation, and update stability of the API.

  • Do not throttle background configuration polling by throttle interval
    of configuration error handler.

  • Turn on background polling by default. The library will try
    to schedule configuration update every 2.5 seconds. To disable it
    use config_poll_interval=0.

2.7.7

17 Aug 12:52
2.7.7
Compare
Choose a tag to compare

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.

  • Detect and expose bucket type through LCB_CNTL_BUCKETTYPE:

      lcb_BTYPE type;
      lcb_cntl(instance, LCB_CNTL_GET, LCB_CNTL_BUCKETTYPE, &type);
    
  • Fixed setting expiration in subdoc mutations.

  • Fixed DNS SRV support of Fedora 26 and FreeBSD.

  • Fixed DNS SRV with SSL connections.

  • Define EREMOTEIO in libuv

  • New subdocument command to remove whole document

  • 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.

  • Fix cbc-cat --replica, which now allows reading documents from replicas.

  • Implement NOOP command and cbc-pillowfight --noop, which sends NOOP
    instead of data manipulation commands.

  • Clarify errors found in .cbcrc. Now it will display configuration path
    along with error message.

  • 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

  • Fixed various compiler and cppcheck warnings and documentation update.

2.7.6

12 Jul 10:43
2.7.6
Compare
Choose a tag to compare

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.

  • Report contextualized error messages during negotiation. The event reference
    could be used to find more details about authentication errors in the server
    logs.

  • Specify correct protocol level for SO_KEEPALIVE. This fixes setting
    tcp_keepalive option on connections.

  • Implement Error Map Retries. This implements the mechanics needed to retry
    commands on various errors based on dynamic settings supplied via the error map.

  • 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.

  • 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.

  • 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

  • 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.

  • 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

  • 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