Details
-
Bug
-
Resolution: Won't Fix
-
Major
-
None
-
None
-
None
-
None
Description
LCB version : 2.7.6
Server version : 4.5.1 GA
4 node cluster
After lcb_stats3(instance, &out, &cmd) returned LCB_SUCCESS, while submitting result, SDKD has following codes
rs.remaining += nsubmit;
|
|
if (!rs.options.iterwait) {
|
// everything is buffered up
|
return true;
|
}
|
|
if (rs.remaining < rs.options.iterwait) {
|
return true;
|
}
|
|
lcb_sched_leave(instance);
|
lcb_wait(instance);
|
then, while in lcb_wait(instance), cb_stats which is callback for lcb_stats3, is invoked with LCB_NOT_MY_BUCKET error
I'm not sure why cb_stats with LCB_NOT_MY_BUCKET is invoked after lcb_stats3 retuned LCB_SUCCESS but this happens regularily, like on one test, it happens on every around 25 seconds, on next test, in every around 60 seconds.
The occurence of this LCB_NOT_MY_BUCKET is less than 10% of success, meaning 15~20 errors out of 200 success and this happens on every 25~60 seconds but when it happens, it keeps regular terms. Meaning, once it start happening in 25 seconds, it keeps every 25 seconds. Once it start happening in 60 seconds, it keeps every 60 seconds.
Attached IDE screenshot that has callstack of SDKD at the time when the error happens and here is test result.
This maybe due to SDKD has wrong usage of lcb_* functions, thus adding SDKD code link here as well.
https://github.com/couchbase/sdkd-cpp/blob/master/src/Handle.cpp#L401
Please let me know if SDKD code is wrong.
Attachments
Issue Links
- relates to
-
CCBC-1013 one node swap rebalance test shows LCB_KEY_ENOENT at rebound
- Open