Details
-
Bug
-
Resolution: Fixed
-
Critical
-
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.