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 <wenfeiyi...@gmail.com> AuthorDate: Fri Mar 27 10:04:52 2020 +0800 HBASE-24040 WALFactory.Providers.multiwal causes StackOverflowError (#1338) Signed-off-by: Duo Zhang <zhang...@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 {