Closed devlo closed 3 years ago
Which server version and edition are you using?
Aerospike Community Edition build 5.6.0.3
I'm also having the same issue, same aerospike version
Thanks for your report. The fix is coming tomorrow.
This should be fixed in the v5.0.1. Feel free to close the ticket if the issue is resolved. Otherwise, give us a holler.
This fix seems to introduce another regression, we are getting now randomly:
ResultCode: COMMON_ERROR, Iteration: 0, InDoubt: false, Node: \u003cnil\u003e: common, none-aerospike error. Checked the wrapped error for detail\nResultCode: NO_AVAILABLE_CONNECTIONS_TO_NODE, Iteration: 0, InDoubt: false, Node: \u003cnil\u003e: connection pool is empty. This happens when either all connection are in-use already, or no connections were available
Could you please give me a bit more context about this error and where and how it happens? All tests are passing, this has to be a corner case that I'm missing.
3 node cluster, BatchGet request with default policy.
I'm not sure if this patch introduced this regression or it was like that in v5.0.0 as this is the first time we could use BatchGet in v5. It's triggered randomly, so it could work 5 times in a row and it will error on 6th etc. that's why maybe tests are passing. We are using v5.0.0 on different part of our system already and there are no problems there BUT we are not using BatchGet there at all. So it seems it's something wrong specifically with this command. Hope this helps.
Can you share the values of your batch policy, and how many keys you retrieve per call?
policy := as.NewBatchPolicy()
policy.SendKey = true
and how many keys you retrieve per call?
really small amount of keys for that queries, not more than 10 I think
And we are not experiencing this issue on v4.5, only on v5.0.1 with the same DB version and the same code.
This seems to stem from the new error handling. The v4
client never chained errors and was happy to return no error for commands which encountered them but passed on retry. While the new client still mostly does that, it wasn't doing it for Batch requests.
What you were encountering was that the client would return an error to you indicating that the connection pool is empty.
The new v5.0.2 release should mostly fix the issue, but you may still hit that problem if you do not warm up the client before using it. To do that, call client.WarmUp(0)
after you connect to the cluster to make sure the connection pool is filled up before putting any load on it.
I released v5.1.0 yesterday which should also remove another class of these errors. Do you still encounter them?
Hello, After upgrading to v5 we are experiencing panic in
BatchGet
command, it works on previous version without issues. Panic occurs here https://github.com/aerospike/aerospike-client-go/blob/v5/error.go#L386 It seems likeae
is not set on type switch, which could indicate thatouter
is nil or have different type.