Checking with other sdks, go and java both would retry internally until the op times out. I've worked around it in the client for txns for now, but I'd love to remove my workaround.
Build couchbase-server-7.0.0-5043 contains libcouchbase commit 5faa1f0 with commit message: : when retrying GETCID return TIMEOUT error
CB robot April 27, 2021 at 6:58 AM
Build couchbase-server-7.0.0-5043 contains libcouchbase commit cdd632f with commit message: : do not send collection in the key
David Kelly April 8, 2021 at 1:19 AM
When I run my tests, I try to do an operation (get or upsert) after setting either the collection or the collection and the scope both to something that doesn't exist. Sometimes I get an LCB_ERR_TIMEOUT, sometimes I get an LCB_ERR_NETWORK.
I'm thinking this should be consistently giving me the LCB_ERR_TIMEOUT.
David Kelly February 24, 2021 at 7:51 PM
Against 3.0.7, they do retry. However, when they finish, they return the LCB_ERR_COLLECTION_NOT_FOUND or LCB_ERR_SCOPE_NOT_FOUND. So - I think we just need to return LCB_ERR_TIMEOUT, with the reason in the context perhaps? Something like that.
Fixed
Pinned fields
Click on the next to a field label to start pinning.
When implementing transactions, I noticed that the fit performer tests expected a kv operation against a collection/scope that doesn't exist to retry until the operation times out. However, lcb returns an LCB_ERR_SCOPE_NOT_FOUND or LCB_ERR_COLLECTION_NOT_FOUND in this situation. The tests verify it: https://github.com/couchbase/libcouchbase/blob/7f0afd1bc7b647aec4f4b12532a8afccafa2c1b2/tests/iotests/t_collections.cc#L240 for instance.
Checking with other sdks, go and java both would retry internally until the op times out. I've worked around it in the client for txns for now, but I'd love to remove my workaround.