Uploaded image for project: 'Couchbase C client library libcouchbase'
  1. Couchbase C client library libcouchbase
  2. CCBC-948

The library might stuck in indefinite retry of configuration get when all nodes down

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • 2.9.3
    • None
    • None
    • None
    • 1

    Description

      In synchronous mode (data requests followed by lcb_wait) when node down (or the network link cut), the library will insert get_config (0xb5) request into retry queue, and that might lead lcb_wait not to return when all data requests timed out. Because it blocks indefinitely and will not give control to user application, the only two options left to the user:

      • just kill thread holding lcb_t instance and reconnect
      • count responses with lcb_breakout() in the callback on timeout status + lcb_wait in the loop until all requests served.

      The library should be able to detect that the only request in the retry queue is get_config (0xb5) and consider that queue empty when checking for permissing to breakout for lcb_wait().

      The asynchronous interaction is not affected by this issue as it would not use lcb_wait at all.

      Attachments

        For Gerrit Dashboard: CCBC-948
        # Subject Branch Project Status CR V

        Activity

          People

            avsej Sergey Avseyev
            avsej Sergey Avseyev
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty