You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2020/03/27 02:32:31 UTC

[hbase] branch branch-1.4 updated: HBASE-24040 WALFactory.Providers.multiwal causes StackOverflowError (#1338)

This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-1.4
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-1.4 by this push:
     new ca56c53  HBASE-24040 WALFactory.Providers.multiwal causes StackOverflowError (#1338)
ca56c53 is described below

commit ca56c53c9886e1bd9ece9c1e4ed830bcfc441c51
Author: WenFeiYi <we...@gmail.com>
AuthorDate: Fri Mar 27 10:04:52 2020 +0800

    HBASE-24040 WALFactory.Providers.multiwal causes StackOverflowError (#1338)
    
    Signed-off-by: Duo Zhang <zh...@apache.org>
---
 .../java/org/apache/hadoop/hbase/wal/RegionGroupingProvider.java    | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/RegionGroupingProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/RegionGroupingProvider.java
index 96cef6f..978efb7 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/RegionGroupingProvider.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/RegionGroupingProvider.java
@@ -121,7 +121,7 @@ public class RegionGroupingProvider implements WALProvider {
   public static final String REGION_GROUPING_STRATEGY = "hbase.wal.regiongrouping.strategy";
   public static final String DEFAULT_REGION_GROUPING_STRATEGY = Strategies.defaultStrategy.name();
 
-  /** delegate provider for WAL creation/roll/close */
+  /** delegate provider for WAL creation/roll/close, but not support multiwal */
   public static final String DELEGATE_PROVIDER = "hbase.wal.regiongrouping.delegate.provider";
   public static final String DEFAULT_DELEGATE_PROVIDER = WALFactory.Providers.defaultProvider
       .name();
@@ -158,6 +158,10 @@ public class RegionGroupingProvider implements WALProvider {
     this.providerId = sb.toString();
     this.strategy = getStrategy(conf, REGION_GROUPING_STRATEGY, DEFAULT_REGION_GROUPING_STRATEGY);
     this.providerClass = factory.getProviderClass(DELEGATE_PROVIDER, DEFAULT_DELEGATE_PROVIDER);
+    if (providerClass.equals(this.getClass())) {
+      LOG.warn("delegate provider not support multiwal, falling back to defaultProvider.");
+      providerClass = WALFactory.Providers.defaultProvider.clazz;
+    }
   }
 
   private WALProvider createProvider(String group) throws IOException {