Problem Description
I see the following exception on my Java Async Application when a node is un-reachable or during a networking event in the cluster:
com.aerospike.client.AerospikeException$Timeout: Client timeout: iteration=0 socket=30000 total=30000 maxRetries=2 node=null inDoubt=false
Explanation
It is expected to have cluster nodes undergo network issues and cause them to be unreachable. However, we expect to see errors in tending or timeouts with a specific node rather than a null node.Solution
The timeout exception showing a 'null' node happens only in the following known scenarios:
-
Timeout occurred when the async command is in delay queue. Note that Delay queue is only used when EventPolicy.maxCommandsInProcess > 0.
-
Async command is submitted from a non-eventloop thread and the timeout occured before the command is executed in the eventloop thread.
Note: Timeout exceptions with a null node do not occur when using the Java Sync Client.
Subscribing to the Client Logging is recommended as it would show cluster tend errors (if any).
Notes
- Documentation on Java Async API