Skip to content

Cluster tend failed: java.lang.ArrayIndexOutOfBoundsExceptionΒ #394

@vanjadardic

Description

@vanjadardic

Hey guys, we have been getting ArrayIndexOutOfBoundsException exceptions in tend when upgraded client from v8.1.3 to v8.1.4. This is happening when some node gets a Connection failed error. We have a cluster of 8 nodes deployed in US west coast and the client in located in US east coast. Client configuration is using all default values (including timeout 1000ms and login timeout 5000ms), only configuration we have is minConnsPerNode=4.

First we have a log when using client v8.1.3 with no exception at the end:

2025-01-29 13:22:43.500 | INFO  | main | com.test.AerospikeDataStore | Initializing aerospike data store...
2025-01-29 13:22:43.995 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node A10 192.168.34.95 3000
2025-01-29 13:22:49.733 | DEBUG | main | com.test.AerospikeDataStore | Failed to create connection: Error -8: Connection failed
2025-01-29 13:22:50.998 | DEBUG | main | com.test.AerospikeDataStore | Failed to create connection: Error -8: Connection failed
2025-01-29 13:22:50.998 | INFO  | main | com.test.AerospikeDataStore | Add node B20 192.168.34.98 3000
2025-01-29 13:22:50.998 | INFO  | main | com.test.AerospikeDataStore | Add node A10 192.168.34.95 3000
2025-01-29 13:22:50.998 | INFO  | main | com.test.AerospikeDataStore | Add node B10 192.168.34.97 3000
2025-01-29 13:22:50.998 | INFO  | main | com.test.AerospikeDataStore | Add node A21 192.168.35.96 4000
2025-01-29 13:22:50.999 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node B20 192.168.34.98 3000
2025-01-29 13:22:50.999 | INFO  | main | com.test.AerospikeDataStore | Add node A20 192.168.34.96 3000
2025-01-29 13:22:50.999 | INFO  | main | com.test.AerospikeDataStore | Add node B11 192.168.35.97 4000
2025-01-29 13:22:50.999 | INFO  | main | com.test.AerospikeDataStore | Add node B21 192.168.35.98 4000
2025-01-29 13:22:50.999 | INFO  | main | com.test.AerospikeDataStore | Add node A11 192.168.35.95 4000
2025-01-29 13:22:51.065 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node A21 192.168.35.96 4000
2025-01-29 13:22:51.132 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node B10 192.168.34.97 3000
2025-01-29 13:22:51.198 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node A11 192.168.35.95 4000
2025-01-29 13:22:51.264 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node B21 192.168.35.98 4000
2025-01-29 13:22:51.330 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node B11 192.168.35.97 4000
2025-01-29 13:22:51.396 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node A20 192.168.34.96 3000
2025-01-29 13:22:51.462 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node A10 192.168.34.95 3000
2025-01-29 13:22:51.538 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node B20 192.168.34.98 3000
2025-01-29 13:22:51.604 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node A21 192.168.35.96 4000
2025-01-29 13:22:51.670 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node B10 192.168.34.97 3000
2025-01-29 13:22:51.736 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node A11 192.168.35.95 4000
2025-01-29 13:22:51.802 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node B21 192.168.35.98 4000
2025-01-29 13:22:51.868 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node B11 192.168.35.97 4000
2025-01-29 13:22:51.934 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node A20 192.168.34.96 3000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed la1-as2m1.lan.us 4000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.35.97 4000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.35.98 4000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.35.95 4000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.34.97 3000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed la1-as2m0.lan.us 3000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed la1-as1m0.lan.us 3000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.34.95 3000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed la2-as2m1.lan.us 4000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed la2-as2m0.lan.us 3000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed la2-as1m1.lan.us 4000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed la1-as1m1.lan.us 4000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.34.98 3000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed la2-as1m0.lan.us 3000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.35.96 4000
2025-01-29 13:22:52.000 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.34.96 3000
.
.
.
2025-01-29 13:23:02.282 | WARN  | tend | com.test.AerospikeDataStore | Node A10 192.168.34.95 3000 refresh failed: Error -8: Connection failed
2025-01-29 13:23:02.740 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node B20 192.168.34.98 3000
2025-01-29 13:23:02.806 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node A21 192.168.35.96 4000
2025-01-29 13:23:02.872 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node B10 192.168.34.97 3000
2025-01-29 13:23:02.937 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node A11 192.168.35.95 4000
2025-01-29 13:23:03.003 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node B21 192.168.35.98 4000
2025-01-29 13:23:03.069 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node B11 192.168.35.97 4000
2025-01-29 13:23:03.135 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node A20 192.168.34.96 3000
2025-01-29 13:23:04.856 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node A10 192.168.34.95 3000
2025-01-29 13:23:04.922 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node B20 192.168.34.98 3000
2025-01-29 13:23:04.987 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node A21 192.168.35.96 4000
2025-01-29 13:23:05.053 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node B10 192.168.34.97 3000
2025-01-29 13:23:05.118 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node A11 192.168.35.95 4000
2025-01-29 13:23:05.184 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node B21 192.168.35.98 4000
2025-01-29 13:23:05.250 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node B11 192.168.35.97 4000
2025-01-29 13:23:05.315 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node A20 192.168.34.96 3000
2025-01-29 13:23:05.381 | DEBUG | tend | com.test.AerospikeDataStore | Update partition map for node A10 192.168.34.95 3000
2025-01-29 13:23:38.914 | DEBUG | tend | com.test.AerospikeDataStore | Failed to create connection: Error -8: Connection failed

The next log is from client v8.1.4 with exception at the end:

2025-01-29 13:12:00.351 | INFO  | main | com.test.AerospikeDataStore | Initializing aerospike data store...
2025-01-29 13:12:00.772 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node A10 192.168.34.95 3000
2025-01-29 13:12:05.078 | DEBUG | main | com.test.AerospikeDataStore | Failed to create connection: Error -8: Connection failed
2025-01-29 13:12:07.052 | INFO  | main | com.test.AerospikeDataStore | Add node A10 192.168.34.95 3000
2025-01-29 13:12:07.053 | INFO  | main | com.test.AerospikeDataStore | Add node A21 192.168.35.96 4000
2025-01-29 13:12:07.053 | INFO  | main | com.test.AerospikeDataStore | Add node B20 192.168.34.98 3000
2025-01-29 13:12:07.054 | INFO  | main | com.test.AerospikeDataStore | Add node B10 192.168.34.97 3000
2025-01-29 13:12:07.054 | INFO  | main | com.test.AerospikeDataStore | Add node B21 192.168.35.98 4000
2025-01-29 13:12:07.054 | INFO  | main | com.test.AerospikeDataStore | Add node B11 192.168.35.97 4000
2025-01-29 13:12:07.054 | INFO  | main | com.test.AerospikeDataStore | Add node A11 192.168.35.95 4000
2025-01-29 13:12:07.055 | INFO  | main | com.test.AerospikeDataStore | Add node A20 192.168.34.96 3000
2025-01-29 13:12:07.055 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node B20 192.168.34.98 3000
2025-01-29 13:12:07.120 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node A21 192.168.35.96 4000
2025-01-29 13:12:07.186 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node B10 192.168.34.97 3000
2025-01-29 13:12:07.256 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node A11 192.168.35.95 4000
2025-01-29 13:12:07.322 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node B21 192.168.35.98 4000
2025-01-29 13:12:07.388 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node B11 192.168.35.97 4000
2025-01-29 13:12:07.453 | DEBUG | main | com.test.AerospikeDataStore | Update peers for node A20 192.168.34.96 3000
2025-01-29 13:12:07.519 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node A10 192.168.34.95 3000
2025-01-29 13:12:07.607 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node B20 192.168.34.98 3000
2025-01-29 13:12:07.673 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node A21 192.168.35.96 4000
2025-01-29 13:12:07.740 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node B10 192.168.34.97 3000
2025-01-29 13:12:07.806 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node A11 192.168.35.95 4000
2025-01-29 13:12:07.872 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node B21 192.168.35.98 4000
2025-01-29 13:12:07.938 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node B11 192.168.35.97 4000
2025-01-29 13:12:08.003 | DEBUG | main | com.test.AerospikeDataStore | Update partition map for node A20 192.168.34.96 3000
2025-01-29 13:12:08.069 | DEBUG | main | com.test.AerospikeDataStore | Add seed la2-as1m0.lan.us 3000
2025-01-29 13:12:08.069 | DEBUG | main | com.test.AerospikeDataStore | Add seed la1-as2m1.lan.us 4000
2025-01-29 13:12:08.069 | DEBUG | main | com.test.AerospikeDataStore | Add seed la1-as2m0.lan.us 3000
2025-01-29 13:12:08.069 | DEBUG | main | com.test.AerospikeDataStore | Add seed la1-as1m1.lan.us 4000
2025-01-29 13:12:08.069 | DEBUG | main | com.test.AerospikeDataStore | Add seed la1-as1m0.lan.us 3000
2025-01-29 13:12:08.070 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.35.98 4000
2025-01-29 13:12:08.070 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.35.97 4000
2025-01-29 13:12:08.070 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.34.96 3000
2025-01-29 13:12:08.070 | DEBUG | main | com.test.AerospikeDataStore | Add seed la2-as2m0.lan.us 3000
2025-01-29 13:12:08.070 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.34.97 3000
2025-01-29 13:12:08.070 | DEBUG | main | com.test.AerospikeDataStore | Add seed la2-as1m1.lan.us 4000
2025-01-29 13:12:08.070 | DEBUG | main | com.test.AerospikeDataStore | Add seed la2-as2m1.lan.us 4000
2025-01-29 13:12:08.070 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.34.95 3000
2025-01-29 13:12:08.070 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.34.98 3000
2025-01-29 13:12:08.070 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.35.95 4000
2025-01-29 13:12:08.070 | DEBUG | main | com.test.AerospikeDataStore | Add seed 192.168.35.96 4000
.
.
.
2025-01-29 13:12:15.458 | WARN  | tend | com.test.AerospikeDataStore | Node B10 192.168.34.97 3000 refresh failed: Error -8: Connection failed
2025-01-29 13:12:16.459 | WARN  | tend | com.test.AerospikeDataStore | Node A11 192.168.35.95 4000 refresh failed: Error -8: Connection failed
2025-01-29 13:12:16.655 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node A10 192.168.34.95 3000
2025-01-29 13:12:18.768 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node B20 192.168.34.98 3000
2025-01-29 13:12:18.768 | DEBUG | tend | com.test.AerospikeDataStore | Failed to create connection: Error -8: Connection failed
2025-01-29 13:12:18.834 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node A21 192.168.35.96 4000
2025-01-29 13:12:18.900 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node B21 192.168.35.98 4000
2025-01-29 13:12:18.967 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node B11 192.168.35.97 4000
2025-01-29 13:12:19.033 | DEBUG | tend | com.test.AerospikeDataStore | Update peers for node A20 192.168.34.96 3000
2025-01-29 13:12:19.099 | INFO  | tend | com.test.AerospikeDataStore | Remove node B10 192.168.34.97 3000
2025-01-29 13:12:19.100 | INFO  | tend | com.test.AerospikeDataStore | Remove node A11 192.168.35.95 4000
2025-01-29 13:12:19.101 | WARN  | tend | com.test.AerospikeDataStore | Cluster tend failed: java.lang.ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4
at com.aerospike.client.cluster.Cluster.removeNodesCopy(Cluster.java:920)
at com.aerospike.client.cluster.Cluster.removeNodes(Cluster.java:898)
at com.aerospike.client.cluster.Cluster.tend(Cluster.java:564)
at com.aerospike.client.cluster.Cluster.run(Cluster.java:508)
at java.base/java.lang.Thread.run(Unknown Source)

This is later causing exceptions like this when querying

com.aerospike.client.AerospikeException$InvalidNode: Error -3,1,0,30000,1000,2: Node not found for partition test:268

The same exception is also present in client v9.0.2.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions