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

RSGroupBasedLoadBalancer online status never updates after being set to true for the first time

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      Once the RSGroupBasedLoadBalancer is “online” (it has found the hbase:meta and hbase:rsgroup tables), it will never update the status again. That means if hbase:meta or hbase:rsgroup ever go offline, the balancer doesn’t update its status to “offline,” so some of the code paths will go through the “online” code path even though the catalog tables aren’t available to be read from or written to (in particular, anything that calls RSGroupInfoManagerImpl#flushConfig).

      Also, in the RSGroupInfoManagerImpl#flushConfig code path, the call to write to hbase:rsgroup comes before the update to the rsGroupMap and tableMap which are stored in memory (see order of these lines of code), so if hbase:rsgroup goes offline after the RSGroupBasedLoadBalancer is already marked as “online,” exceptions thrown while trying to write to an offline hbase:rsgroup table prevent the in-memory rsGroupMap and tableMap from being updated. In terms of the order just mentioned, in-memory state should be updated first.

      Attachments

        Issue Links

          Activity

            People

              caroliney14 Caroline Zhou
              caroliney14 Caroline Zhou
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: