Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-6548

Race condition when triggering index rebuilds as regionserver closes

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 4.14.3, 4.16.1
    • 4.17.0, 5.2.0, 4.16.2, 5.1.3
    • None
    • None

    Description

      On each regionserver our coprocs keep a cache of HConnections with custom settings (such as short timeouts) for talking to other regionservers. They're used when coprocs need to make RPCs, such as during index rebuilds.

      When a regionserver is closed, these HConnections are closed as well. However, we've seen in our test pipelines a race condition where we may have just given out one of the HConnections to a coprocessor, only to have the connection closed just before it's used.

      This will produce an IllegalArgumentException from the HBase Table object, which (if the index rebuild was caused by a client Scan) will be thrown back to the client as a DoNotRetryIOException.

      In this case we want the client exception to be a normal retriable IOException, because if they try again after the region comes up again somewhere else, the Scan will likely succeed.

      Attachments

        Activity

          People

            jainankit Ankit Jain
            gjacoby Geoffrey Jacoby
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: