Skip to content

Releases: couchbase/libcouchbase

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