Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-10125

ReadFailure is thrown instead of ReadTimeout for range queries

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Normal
    • Resolution: Fixed
    • Fix Version/s: 3.0 beta 1
    • Component/s: None
    • Labels:
      None
    • Severity:
      Normal

      Description

      CASSANDRA-8099 merged the way single partition and range read messages where handled and has switch to using the same verb (Verb.READ) for both, effectively deprecating Verb.RANGE_SLICE. Unfortunately, we are relying on having 2 different verbs for timeouts. More precisely, when adding a callback in the expiring map of MessagingService, we use the timeout from the Verb. As a consequence, it's currently set with the single partition read timeout (5s) even for range queries (which have a 10s timeout). And when a callback expires, it is notified as a failure to the callback (which is debatable imo but a separate issue), which means range queries will generally send a ReadFailure (after 5s) instead of a ReadTimeout (since they do wait 10s before sending those).

      That is the reason for at least the failure of nosetests replace_address_test:TestReplaceAddress.replace_first_boot_test dtest (the test has 3 nodes, kill one and expects a timeout at CL.THREE but get a failure instead).

        Attachments

          Activity

            People

            • Assignee:
              slebresne Sylvain Lebresne
              Reporter:
              slebresne Sylvain Lebresne
              Authors:
              Sylvain Lebresne
              Reviewers:
              Ariel Weisberg
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: