Skip to content

Releases: couchbase/libcouchbase

3.3.12

02 Mar 20:27
3.3.12
Compare
Choose a tag to compare

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 not LCB_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 time check_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 when ffextlen (flexible frame extra length) is not zero.

3.3.11

25 Jan 19:01
3.3.11
Compare
Choose a tag to compare

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

10 Oct 18:59
3.3.10
Compare
Choose a tag to compare

API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.3.10
Full Changelog: 3.3.9...3.3.10

  • CCBC-1616:
    A wait_for_config check is now applied for all pipelines. Previously, the lcb_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 from lcb_wait as soon as the operation completes.

    • The old behaviour still works when wait_for_config=true is passed in the connection string (or LCB_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.

3.3.9

22 Sep 20:48
3.3.9
Compare
Choose a tag to compare

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

16 Aug 21:12
3.3.8
Compare
Choose a tag to compare

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

11 May 17:47
3.3.7
Compare
Choose a tag to compare

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 with Json::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

26 Apr 19:00
3.3.6
Compare
Choose a tag to compare

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 of srand() 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 turn GET into GET_WITH_TOUCH if the --get-expiry is not being used.

3.3.5

09 Mar 15:36
3.3.5
Compare
Choose a tag to compare

API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.3.5

  • CCBC-1545: handle LCB_ERR_REQUEST_CANCELED in ping callback

    If 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

3.3.4

08 Feb 16:27
3.3.4
Compare
Choose a tag to compare

API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.3.4

  • CCBC-1583: disable collections support if KV does not ack it.

3.3.3

08 Feb 15:41
3.3.3
Compare
Choose a tag to compare

API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.3.3

  • CCBC-1565: load system CAs when the trust certificate is not provided

    When the user has not set any root ca provider but is using TLS then we should trust both the system store and the Capella root CA.

  • CCBC-1564: update error message for authentication failure

  • CCBC-1568: skip logging for closed SSL IO contexts.
    OpenSSL might still invoke IO callbacks after the actual context has been closed. This more likely could happen with libuv-style IO.
    Ensure that once socket context has been closed, its pointer in SSL object will be erased.

  • Added cbc-bucket-list command to list all buckets.