[ https://issues.apache.org/jira/browse/HBASE-21544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16708072#comment-16708072 ]
Hadoop QA commented on HBASE-21544: ----------------------------------- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 17s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green} 0m 0s{color} | {color:green} Patch does not have any anti-patterns. {color} | | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 6 new or modified test files. {color} | || || || || {color:brown} branch-2.0 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 13s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 3m 7s{color} | {color:green} branch-2.0 passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 2m 30s{color} | {color:green} branch-2.0 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 1m 43s{color} | {color:green} branch-2.0 passed {color} | | {color:green}+1{color} | {color:green} shadedjars {color} | {color:green} 4m 4s{color} | {color:green} branch has no errors when building our shaded downstream artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 2m 58s{color} | {color:green} branch-2.0 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 46s{color} | {color:green} branch-2.0 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 13s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 46s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 2m 22s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 2m 22s{color} | {color:green} the patch passed {color} | | {color:red}-1{color} | {color:red} checkstyle {color} | {color:red} 1m 21s{color} | {color:red} hbase-server: The patch generated 2 new + 416 unchanged - 6 fixed = 418 total (was 422) {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedjars {color} | {color:green} 3m 58s{color} | {color:green} patch has no errors when building our shaded downstream artifacts. {color} | | {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 8m 45s{color} | {color:green} Patch does not cause any errors with Hadoop 2.6.5 2.7.4 or 3.0.0. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m 29s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 49s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 2m 30s{color} | {color:green} hbase-common in the patch passed. {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green}118m 53s{color} | {color:green} hbase-server in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 37s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}162m 31s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/hbase:6f01af0 | | JIRA Issue | HBASE-21544 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12950464/HBASE-20734.001.branch-2.0.patch | | Optional Tests | dupname asflicense javac javadoc unit findbugs shadedjars hadoopcheck hbaseanti checkstyle compile | | uname | Linux 80c8f554e13a 4.4.0-139-generic #165~14.04.1-Ubuntu SMP Wed Oct 31 10:55:11 UTC 2018 x86_64 GNU/Linux | | Build tool | maven | | Personality | /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh | | git revision | branch-2.0 / 8e36aae9d3 | | maven | version: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z) | | Default Java | 1.8.0_181 | | findbugs | v3.1.0-RC3 | | checkstyle | https://builds.apache.org/job/PreCommit-HBASE-Build/15183/artifact/patchprocess/diff-checkstyle-hbase-server.txt | | Test Results | https://builds.apache.org/job/PreCommit-HBASE-Build/15183/testReport/ | | Max. process+thread count | 4242 (vs. ulimit of 10000) | | modules | C: hbase-common hbase-server U: . | | Console output | https://builds.apache.org/job/PreCommit-HBASE-Build/15183/console | | Powered by | Apache Yetus 0.8.0 http://yetus.apache.org | This message was automatically generated. > WAL writer for recovered.edits file in WalSplitting should not require hflush > from filesystem > --------------------------------------------------------------------------------------------- > > Key: HBASE-21544 > URL: https://issues.apache.org/jira/browse/HBASE-21544 > Project: HBase > Issue Type: Bug > Components: wal > Reporter: Josh Elser > Assignee: Josh Elser > Priority: Major > Fix For: 2.0.4 > > Attachments: HBASE-20734.001.branch-2.0.patch > > > Been talking through this with a bunch of folks. [~enis] brought me back from > the cliff of despair though. > Context: running HBase on top of a filesystem that doesn't have hflush for > hfiles. In our case, on top of Azure's Hadoop-compatible filesystems (WASB, > ABFS). > When a RS fails and we have an SCP running for it, you'll see log splitting > get into an "infinite" loop where the master keeps resubmitting and the RS > which takes the action deterministically fails with the following: > {noformat} > 2018-11-26 20:59:18,415 ERROR > [RS_LOG_REPLAY_OPS-regionserver/wn2-b831f9:16020-0-Writer-2] > wal.FSHLogProvider: The RegionServer write ahead log provider for FileSystem > implementations relies on the ability to call hflush for proper operation > during component failures, but the current FileSystem does not support doing > so. Please check the config value of 'hbase.wal.dir' and ensure it points to > a FileSystem mount that has suitable capabilities for output streams. > 2018-11-26 20:59:18,415 WARN > [RS_LOG_REPLAY_OPS-regionserver/wn2-b831f9:16020-0-Writer-2] > wal.AbstractProtobufLogWriter: WALTrailer is null. Continuing with default. > 2018-11-26 20:59:18,467 ERROR > [RS_LOG_REPLAY_OPS-regionserver/wn2-b831f9:16020-0-Writer-2] wal.WALSplitter: > Got while writing log entry to log > java.io.IOException: cannot get log writer > at > org.apache.hadoop.hbase.wal.FSHLogProvider.createWriter(FSHLogProvider.java:96) > at > org.apache.hadoop.hbase.wal.FSHLogProvider.createWriter(FSHLogProvider.java:61) > at > org.apache.hadoop.hbase.wal.WALFactory.createRecoveredEditsWriter(WALFactory.java:370) > at > org.apache.hadoop.hbase.wal.WALSplitter.createWriter(WALSplitter.java:804) > at > org.apache.hadoop.hbase.wal.WALSplitter$LogRecoveredEditsOutputSink.createWAP(WALSplitter.java:1530) > at > org.apache.hadoop.hbase.wal.WALSplitter$LogRecoveredEditsOutputSink.getWriterAndPath(WALSplitter.java:1501) > at > org.apache.hadoop.hbase.wal.WALSplitter$LogRecoveredEditsOutputSink.appendBuffer(WALSplitter.java:1584) > at > org.apache.hadoop.hbase.wal.WALSplitter$LogRecoveredEditsOutputSink.append(WALSplitter.java:1566) > at > org.apache.hadoop.hbase.wal.WALSplitter$WriterThread.writeBuffer(WALSplitter.java:1090) > at > org.apache.hadoop.hbase.wal.WALSplitter$WriterThread.doRun(WALSplitter.java:1082) > at > org.apache.hadoop.hbase.wal.WALSplitter$WriterThread.run(WALSplitter.java:1052) > Caused by: > org.apache.hadoop.hbase.util.CommonFSUtils$StreamLacksCapabilityException: > hflush > at > org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.initOutput(ProtobufLogWriter.java:99) > at > org.apache.hadoop.hbase.regionserver.wal.AbstractProtobufLogWriter.init(AbstractProtobufLogWriter.java:165) > at > org.apache.hadoop.hbase.wal.FSHLogProvider.createWriter(FSHLogProvider.java:77) > ... 10 more{noformat} > This is the sanity check added by HBASE-18784, failing on creating the writer > for the recovered.edits file. > The odd-ball here is that our recovered.edits writer is just a WAL writer > class. The WAL writer class thinks it always should have hflush support; > however, we don't _actually_ need that for writing out the recovered.edits > files. If {{close()}} on the recovered.edits file would fail, we're trash any > intermediate data in the filesystem and rerun the whole process. > It's my understanding that this check is over-bearing and we should not make > the check when the ProtobufLogWriter is being used for the recovered.edits > file. > [~zyork], [~busbey] fyi -- This message was sent by Atlassian JIRA (v7.6.3#76005)