[ https://issues.apache.org/jira/browse/HBASE-26680?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17508225#comment-17508225 ]
Hudson commented on HBASE-26680: -------------------------------- Results for branch branch-2.5 [build #66 on builds.a.o|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.5/66/]: (x) *{color:red}-1 overall{color}* ---- details (if available): (/) {color:green}+1 general checks{color} -- For more information [see general report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.5/66/General_20Nightly_20Build_20Report/] (/) {color:green}+1 jdk8 hadoop2 checks{color} -- For more information [see jdk8 (hadoop2) report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.5/66/JDK8_20Nightly_20Build_20Report_20_28Hadoop2_29/] (/) {color:green}+1 jdk8 hadoop3 checks{color} -- For more information [see jdk8 (hadoop3) report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.5/66/JDK8_20Nightly_20Build_20Report_20_28Hadoop3_29/] (x) {color:red}-1 jdk11 hadoop3 checks{color} -- For more information [see jdk11 report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.5/66/JDK11_20Nightly_20Build_20Report_20_28Hadoop3_29/] (/) {color:green}+1 source release artifact{color} -- See build output for details. (x) {color:red}-1 client integration test{color} --Failed when running client tests on top of Hadoop 2. [see log for details|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.5/66//artifact/output-integration/hadoop-2.log]. (note that this means we didn't run on Hadoop 3) > Close and do not write trailer for the broken WAL writer > -------------------------------------------------------- > > Key: HBASE-26680 > URL: https://issues.apache.org/jira/browse/HBASE-26680 > Project: HBase > Issue Type: Improvement > Components: wal > Affects Versions: 3.0.0-alpha-1, 2.0.0 > Reporter: Xiaolin Ha > Assignee: Xiaolin Ha > Priority: Major > Fix For: 2.5.0, 2.6.0, 3.0.0-alpha-3, 2.4.12 > > > {code:java} > public static AsyncWriter createAsyncWriter(Configuration conf, FileSystem > fs, Path path, > boolean overwritable, long blocksize, EventLoopGroup eventLoopGroup, > Class<? extends Channel> channelClass, StreamSlowMonitor monitor) throws > IOException { > // Configuration already does caching for the Class lookup. > Class<? extends AsyncWriter> logWriterClass = conf.getClass( > WRITER_IMPL, AsyncProtobufLogWriter.class, AsyncWriter.class); > try { > AsyncWriter writer = logWriterClass.getConstructor(EventLoopGroup.class, > Class.class) > .newInstance(eventLoopGroup, channelClass); > writer.init(fs, path, conf, overwritable, blocksize, monitor); > return writer; > } catch (Exception e) { > if (e instanceof CommonFSUtils.StreamLacksCapabilityException) { > LOG.error("The RegionServer async write ahead log provider " + > "relies on the ability to call " + e.getMessage() + " for proper > operation during " + > "component failures, but the current FileSystem does not support > doing so. Please " + > "check the config value of '" + CommonFSUtils.HBASE_WAL_DIR + "' and > ensure " + > "it points to a FileSystem mount that has suitable capabilities for > output streams."); > } else { > LOG.debug("Error instantiating log writer.", e); > } > Throwables.propagateIfPossible(e, IOException.class); > throw new IOException("cannot get log writer", e); > } > } {code} > I think writer should be closed when encounters init exception here. > This can reduce the recoverLease time before log split, and will reduce side > effects after HBASE-26552. > Broken writers need to be closed, so that when doing log split, there will be > no need to recover lease for those length 0 wals. -- This message was sent by Atlassian Jira (v8.20.1#820001)