Details
Description
Very simply, if you call libcouchbase_wait() without queuing some operation first (e.g store a key/value, arithmetic, etc...)
the call to libcouchbase_wait() never returns.
This means that a single threaded application that calls libcouchbase_wait() at different times to make sure operations are sent to the server runs the risk of stalling indefinitely. This is a very likely scenario.
I've attached a simple proof of concept, which never completes. If you uncomment the store operation, the program completes successfully.
Attachments
For Gerrit Dashboard: CCBC-59 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
14696,1 | Don't wait for empty buffers (CCBC-59) | master | libcouchbase | Status: MERGED | +2 | +1 |