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

The region server hosting the SYSTEM.CATALOG fails to serve any metadata requests as default handler pool threads are exhausted.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.1.0, 5.1.1, 4.16.1, 5.2.0, 5.1.2
    • 5.2.0
    • core
    • None

    Description

      When SYSTEM.CATALOG region server is restarted and the server is experiencing heavy metadata call volume.

      The stack traces indicate that all the default handler pool threads are waiting for the CQSI.init thread to finish initializing.
      The CQSI.init thread itself cannot proceed since it cannot complete the second RPC call (org.apache.phoenix.query.ConnectionQueryServicesImpl.checkClientServerCompatibility) due to thread starvation.

      For e.g
      The following code turned the getTable(..) into needing an additional server-to-server RPC call when initializing a PhoenixConnection (CQSI.init) for the first time on the JVM. 
      It is well-known that server-to-server RPC calls are prone to deadlocking due to thread pool exhaustion.

      Attachments

        1. stacktraces.txt
          6 kB
          Jacob Isaac

        Issue Links

          Activity

            People

              jisaac Jacob Isaac
              jisaac Jacob Isaac
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: