Description
Scan calls from the Java client that take more than the socket read timeout get retried (unless the operation timeout has expired) instead of being killed. Users will see this:
org.apache.kudu.client.NonRecoverableException: Invalid call sequence ID in scan request
Note that the right behavior here would still end up killing the scanner, so this is really a problem the user has to deal with! It's usually caused by slow IO, combined with very selection scans.
Workaround: set defaultSocketReadTimeoutMs higher, ideally equal to defaultOperationTimeoutMs (the defaults are 10 and 30 seconds respectively). But really the user should investigate why single the scans are so slow.
One potentially easy fix to this is to handle retries differently for scanners so that the user gets nicer exception. A harder fix is to handle socket read timeouts completely differently, basically it should be per-RPC and not per TabletClient like it is right now.