Error Code 215


#1

We’ve upgraded to version 3.6.0 and all the sudden are seeing error codes 215 which we didn’t see previously.

Also with the latest client, this code seems not to be covered yet.

What does this error code mean and what could be the cause for this error message?


#2

Somewhere around March the LDT ERR_NOT_FOUND 1401 changed to 125. The 3.3.21 server reflected that. Are you sure that it started with 3.6.0? What’s the context?


#3

It is 215 and not 125 :wink:

And yes, it started with 3.6.0, we were on 3.5.4 before and still have that running on another box without this issue.


#4

Aha! I knew I needed to get my :coffee: before trying to answer. I’ll look into it.


#5

Found out that error code 215 refers to AS_PROTO_RESULT_FAIL_QUERY_DUPLICATE, but not sure what does that mean?

It seems somehow related to the config setting query-untracked-time-ms, this parameter was 1000000 in 3.5.4 and now is 1000. When increasing this setting to the original we do not see this error anymore.


#6

Hi joewei,

Error AS_PROTO_RESULT_FAIL_QUERY_DUPLICATE means you have more than one running query with same trid (transaction id). Most probably you are not setting the query trid in your application.

query-untracked-time-ms means the amount of time query will spend before aerospike will start tracking it. For tracking trid of the query will be used. At one point of time, more than one running query with same trid is not allowed. In short all running queries which are being tracked should have unique trid. So good job on finding a work-around (increasing query-untracked-time-ms). But the right fix would be to set a unique trid for each query in application code itself.

If you can let us know the client which you are using, we can point you to the right API. Can you also please mention the client’s version ?

Thanks


#7

Thank you pratyyy, we’re actually fighting some other issues currently.

We will test this soon and I will report back then.


#8

i am also facing same issue using java API please update on this .

based on the key range i am running multiple threads


#9

If you’re running the same query on multiple threads you need to set a unique task ID for each one to avoid that error to occur.

The task ID can be set on the statement.


#10

still i am facing this issue task id also set

for (int i = 0; i < totalthreads; i++) {

			start = end + 1;
			end = range * (i + 1);

			long randomValue = start
					+ (long) (random.nextLong() * (end - start));

			stmt.setFilters(Filter.range("hash_id", start, end));
			stmt.setTaskId(randomValue);

016-01-21 13:00:43.449 SEVERE 38 call: exception occured while processing for shard:26com.aerospike.client.AerospikeException: Error Code 215: at com.aerospike.client.command.MultiCommand.parseGroup(MultiCommand.java:96) at com.aerospike.client.command.MultiCommand.parseResult(MultiCommand.java:71) at com.aerospike.client.command.SyncCommand.execute(SyncCommand.java:56) at com.aerospike.client.query.QueryExecutor$QueryThread.run(QueryExecutor.java:137) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744)


#11

This code snippet isn’t really helpful, not sure what totalThreads and range refer to, can you paste your entire query code?


#12

Thanks joewei i am able to fix it moved statement declaration to inside for loop