When running a Couchbase Server that has 'scope data limits' enabled, libcouchbase shows a confusing/unexpected message when the data-limit his reached, in this case memcached fails mutation commands with status 0x34 and the following is displayed by pillowfight Operation(s) failed: LCB_ERR_CAS_MISMATCH (209): CAS mismatch.
Some brief discussion suggest this is just because the libcouchbase I used didn't support the V2 error map, so please close this issue if another ticket tracks that work
and this ticket is expected behaviour for the down-level libcouchbase (although an improvement/suggestion would be to not print CAS_MISMATCH, this is confusing, a raw status may of been more useful for people to debug issues).
To reproduce I think the following works without a source build.
- Install this toy-build
- Create a single node cluster and add one bucket (default in this example)
- Create a scope with a small data limit (0 might work, but this is what I used at the time of testing)
- Add a collection to the new scope
Now run pillowfight so it hits the data limit
Note in my testing I was using libcouchbase from my server build with the following SHA
- 494582fa 2021-10-13 |
CCBC-1510: fix key length calculation for exists/get/touch/unlock (HEAD, m/master) [Sergey Avseyev]
cbc-pillowfight will eventually return:
If the toy-build is not required/wanted a server build can be used from this SHA that represent the feature in development
Also fyi the new status code was added here http://review.couchbase.org/c/kv_engine/+/164048