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

HBase/ZooKeeper connection leaks when providing principal/keytab in JDBC url

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 4.8.0
    • Fix Version/s: 4.9.0, 4.8.1
    • Labels:
      None

      Description

      We've been doing some more testing after PHOENIX-3126 and, with the help of Arpit Gupta and sriharsha chintalapani, we've found an issue in a test between Storm and Phoenix.

      Storm was configured to create a JDBC Bolt, specifying the principal and keytab in the JDBC URL, relying on PhoenixDriver to do the Kerberos login for them. After PHOENIX-3126, a ZK server blacklisted the host running the bolt, and we observed that there were over 140 active ZK threads in the JVM.

      This results in a subtle change where every time the client tries to get a new Connection, we end up getting a new UGI instance (because the ConnectionQueryServicesImpl#openConnection() always does a new login).

      If users are correctly caching Connections, there isn't an issue (best as I can presently tell). However, if users rely on the getting the same connection every time (the pre-PHOENIX-3126), they will saturate their local JVM with connections and crash.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                elserj Josh Elser
                Reporter:
                elserj Josh Elser
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: