Bug: WALFactory.Providers.multiwal causes StackOverflowError
Status: Resolved | Priority: Minor | Resolution: Fixed
Created: 24/Mar/20 11:32
Affects Version/s: 1.0.0

if 'hbase.wal.provider=multiwal' and 'hbase.wal.regiongrouping.delegate.provider=multiwal', regionserver will create RegionGroupingProvider in a loop until StackOverflowError.

{code:java}
2020-03-24 19:08:19,180 WARN  [RS_CLOSE_META-regionserver/localhost:16020-0] handler.AssignRegionHandler: Fatal error occurred while opening region hbase:meta,,1.1
588230740, aborting...
java.lang.StackOverflowError
        at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:125)
        at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:566)
        at java.lang.StringBuffer.append(StringBuffer.java:357)
        at org.apache.log4j.helpers.ISO8601DateFormat.format(ISO8601DateFormat.java:134)
        at java.text.DateFormat.format(DateFormat.java:345)
        at org.apache.log4j.helpers.PatternParser$DatePatternConverter.convert(PatternParser.java:443)
        at org.apache.log4j.helpers.PatternConverter.format(PatternConverter.java:65)
        at org.apache.log4j.PatternLayout.format(PatternLayout.java:506)
        at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:310)
        at org.apache.log4j.RollingFileAppender.subAppend(RollingFileAppender.java:276)
        at org.apache.log4j.WriterAppender.append(WriterAppender.java:162)
        at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
        at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
        at org.apache.log4j.Category.callAppenders(Category.java:206)
        at org.apache.log4j.Category.forcedLog(Category.java:391)
        at org.apache.log4j.Category.log(Category.java:856)
        at org.slf4j.impl.Log4jLoggerAdapter.info(Log4jLoggerAdapter.java:304)
        at org.apache.hadoop.hbase.wal.RegionGroupingProvider.getStrategy(RegionGroupingProvider.java:105)
        at org.apache.hadoop.hbase.wal.RegionGroupingProvider.init(RegionGroupingProvider.java:160)
        at org.apache.hadoop.hbase.wal.WALFactory.createProvider(WALFactory.java:161)
        at org.apache.hadoop.hbase.wal.RegionGroupingProvider.createProvider(RegionGroupingProvider.java:166)
        at org.apache.hadoop.hbase.wal.RegionGroupingProvider.getWAL(RegionGroupingProvider.java:184)
        at org.apache.hadoop.hbase.wal.RegionGroupingProvider.getWAL(RegionGroupingProvider.java:212)
        at org.apache.hadoop.hbase.wal.RegionGroupingProvider.getWAL(RegionGroupingProvider.java:192)
        at org.apache.hadoop.hbase.wal.RegionGroupingProvider.getWAL(RegionGroupingProvider.java:212)
        at org.apache.hadoop.hbase.wal.RegionGroupingProvider.getWAL(RegionGroupingProvider.java:192)
        at org.apache.hadoop.hbase.wal.RegionGroupingProvider.getWAL(RegionGroupingProvider.java:212)
        at org.apache.hadoop.hbase.wal.RegionGroupingProvider.getWAL(RegionGroupingProvider.java:192)
        at org.apache.hadoop.hbase.wal.RegionGroupingProvider.getWAL(RegionGroupingProvider.java:212)
......
{code}