Uploaded image for project: 'Kudu'
  1. Kudu
  2. KUDU-1868

Java client mishandles socket read timeouts for scans

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.2.0
    • 1.9.0
    • client

    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.

      Attachments

        Issue Links

          Activity

            People

              wdberkeley William Berkeley
              jdcryans Jean-Daniel Cryans
              Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: