Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-1251

HConnectionManager.getConnection(HBaseConfiguration) returns same HConnection for different HBaseConfigurations

VotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.19.0
    • 0.20.0
    • Client
    • None

    Description

      This occurs when the following happens:

      1. Consider a client that invokes HBaseAdmin.checkHBaseAvailable(config) before doing anything. Although this method copies the HBaseConfiguration object and sets hbase.client.retries.number to 1 (see HBaseAdmin, line 751), it creates an HBaseAdmin object, which invokes HConnectionManager.getConnection(conf). Please notice that this conf is that with hbase.client.retries.number equals to 1.
      2. HConnectionManager.getConnection then creates a HConnection using this conf and puts it into a static map (see HConnectionManager, line 93) indexed by hbase.rootdir.
      3. Then, if the same client now creates a HTable object (using, for instance, a HBaseConfiguration with hbase.client.retries.number equals to 10 but the same hbase.rootdir), it will invoke HConnectionManager.getConnection(conf) again (see HTable, line 109). However, when it checks the static map for a HConnection it finds one - the one previously created by the HBaseAdmin object and using hbase.client.retries.number 1 - and returns it without creating a new one with the correct HBaseConfiguration.

      However, the expected behavior is: HConnectionManager must return different HConnections for different HBaseConfigurations.

      Attachments

        1. HBASE-1251.patch
          9 kB
          Guilherme Mauro Germoglio Barbosa

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            guiga Guilherme Mauro Germoglio Barbosa
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment