Uploaded image for project: 'Access Server (READ-ONLY)'
  1. Access Server (READ-ONLY)
  2. ACCESS-1108

when set "hbase.wal.regiongrouping.delegate" to multiwal ,it cause endless loop

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 1.2.0
    • Fix Version/s: None
    • Labels:
    • Environment:
      linux

      Description

      when set hbase.wal.provider to be multiwal ,then  set "hbase.wal.regiongrouping.delegate" to multiwal ,it cause endless loop .

      getProvider invoke init ,then init invoke getProvider.

      public void init(final WALFactory factory, final Configuration conf,
      final List<WALActionsListener> listeners, final String providerId) throws IOException {
      super.init(factory, conf, listeners, providerId);
      // no need to check for and close down old providers; our parent class will throw on re-invoke
      delegates = new WALProvider[Math.max(1, conf.getInt(NUM_REGION_GROUPS,
      DEFAULT_NUM_REGION_GROUPS))];
      for (int i = 0; i < delegates.length; i++) {
      delegates[i] = factory.getProvider(DELEGATE_PROVIDER, DEFAULT_DELEGATE_PROVIDER, listeners,
      providerId + i);
      LOG.info("delegates provider ="+ delegates[i]);
      }

      WALProvider getProvider(final String key, final String defaultValue,
      final List<WALActionsListener> listeners, final String providerId) throws IOException {
      Class<? extends WALProvider> clazz;
      try

      { clazz = Providers.valueOf(conf.get(key, defaultValue)).clazz; LOG.warn("WALProvider = "+clazz.getName()+",conf="+conf.get(key, defaultValue)); }

      catch (IllegalArgumentException exception)

      { // Fall back to them specifying a class name // Note that the passed default class shouldn't actually be used, since the above only fails // when there is a config value present. clazz = conf.getClass(key, DefaultWALProvider.class, WALProvider.class); }

      LOG.info("Instantiating WALProvider of type " + clazz);
      try {
      final WALProvider result = clazz.newInstance();
      result.init(this, conf, listeners, providerId);

      }

      LOG.info("Configured to run with " + delegates.length + " delegate WAL providers.");
      }

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              huafeng.shi shihuafeng
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: