FSOutputSummer do not flushBuffer on OutputStream.flush -------------------------------------------------------
Key: HADOOP-7299 URL: https://issues.apache.org/jira/browse/HADOOP-7299 Project: Hadoop Common Issue Type: Bug Components: fs Affects Versions: 0.21.0 Reporter: Vitalii Tymchyshyn When working with "file://" FileSystem (e.g. in tests), ChecksumFileSystem is used. I am calling next operations: create write hflush open seek read This results in: java.lang.IllegalStateException: java.io.IOException: Cannot seek after EOF at com.dbl.util.grid.apache.hdfs.FileSystemStorageHolder.get(FileSystemStorageHolder.java:52) at com.dbl.util.grid.apache.hdfs.FileSystemStorageTest.testRecursiveSave(FileSystemStorageTest.java:31) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59) at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98) at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79) at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87) at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77) at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42) at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88) at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51) at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44) at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27) at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37) at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42) at org.junit.runner.JUnitCore.run(JUnitCore.java:130) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:97) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:192) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115) Caused by: java.io.IOException: Cannot seek after EOF at org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSInputChecker.seek(ChecksumFileSystem.java:296) at org.apache.hadoop.fs.FSDataInputStream.seek(FSDataInputStream.java:42) at com.dbl.util.grid.apache.hdfs.FileSystemStorageHolder.get(FileSystemStorageHolder.java:49) ... 26 more It seems that FSOutputSummer does not implements flush OutputStream method - so hflush gets ignored. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira