Details
Description
Found that performing a multi-get during a rebalance had a couple of issue when the code returns from the following line.
Client code is using client.ExecuteGet(<array of keys>)
The main issue is that the 'result.Fail' ends up back with the client and StatusCode == null, even though there's a "not my vbucket" status (7) in response.StatusCode.
Minor issue is that the result.Fail message doesn't get formatted to include the correlationId, always prints
{0}.
I've a draft patch that ensures the StatusCode is passed through so that the client can see the failure is not-my-vbucket and issue a retry.
With my draft patch though I couldn't seem to get the StatusCode passed through without creating an "rv" and returning that.
Basically:
result.StatusCode = response.StatusCode;
return result.Fail(...);
and
this.StatusCode = response.StatusCode;
return result.Fail(...)
still returned StatusCode of null?
(patch attached soon)
Attachments
For Gerrit Dashboard: NCBC-555 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
39540,1 | [NCBC-555] Multi get can fail and return a null StatusCode | master | couchbase-net-client | Status: ABANDONED | 0 | 0 |
39590,1 | [NCBC-555] Multi get can fail and return a null StatusCode | master | couchbase-net-client | Status: ABANDONED | 0 | 0 |
39658,3 | [NCBC-555] Multi get can fail and return a null StatusCode | release13 | couchbase-net-client | Status: MERGED | +2 | +1 |
64822,1 | CouchbaseBucket holds its own non-configurable ITypeTranscoder with a DefaultSerializer | master | couchbase-net-client | Status: ABANDONED | -2 | 0 |