Details
-
Bug
-
Resolution: Fixed
-
Critical
-
None
-
Untriaged
-
1
-
Unknown
Description
As part of the high level interface definition for the C SDK, libcouchbase relies on the application to drive its event loop, whether through the use of lcb_wait or through integration with the applications own event loop. Part of this definition implicitly relies on the application granting time to libcouchbase often enough to perform its internal bookkeeping, especially as it relates to handling topology updates.
In the current implementation of libcouchbase within eventing, it is possible for libcouchbase to sit unused for substantial periods of time, leading to the SDKs internal topology map no longer accurately reflecting the true cluster topology. This leads to a number of problems when the SDK is eventually woken to perform operations.
In order to resolve this, the eventing service should periodically wake libcouchbase instances to allow them the necessary time to process new topology updates or alternatively should provide an IO plugin to libcouchbase which enables it to integrate with the event loop within the eventing service which would permit libcouchbase to internally schedule the needed bookkeeping work on its own.