[ https://issues.apache.org/jira/browse/HADOOP-6513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12806095#action_12806095 ]
Todd Lipcon commented on HADOOP-6513: ------------------------------------- Rob: can you please post this test as a patch that just adds the new test case and doesn't comment out or modify other parts of TestSequenceFile? You can generate a patch using "svn diff". It's difficult to review what the test is doing when you've uploaded the entire modified file. See http://wiki.apache.org/hadoop/HowToContribute As for the other JIRA, please keep discussion on each issue within the comments for that issue. One of the central foundations of the Apache process is open discussion and the ability to see how decisions were made. If you put comments in this JIRA that pertain to another, people may not see them, and down the road they certainly won't find them. > SequenceFile.Sorter design issue and class-check bug > ----------------------------------------------------- > > Key: HADOOP-6513 > URL: https://issues.apache.org/jira/browse/HADOOP-6513 > Project: Hadoop Common > Issue Type: Bug > Components: io > Affects Versions: 0.20.1 > Environment: hadoop 20.1, java 1.6.0_17,fedora > Reporter: robert Cook > Attachments: TestSequenceFile.java > > > SequenceFile.Writer takes key/value classes as creation arguments and checks > for validity on every append. > Reader does not take class arguments on creation because they are derived > from the input file. > Sorter takes key/value classes as creation arguments?? no point. should be > derived from input. > In any case, SortPass does not compare Sorter key/value classes with input > file classes. > No error is given for the following: > private static void writeTest4(FileSystem fs, int count, int seed, > Path file, > SequenceFile.CompressionType compressionType, > CompressionCodec codec, Configuration conf) > throws IOException { > fs.delete(file, true); > LOG.info("creating " + count + " records with " + compressionType + > " compression"); > SequenceFile.Writer writer = > SequenceFile.createWriter(fs, conf, file, > StringWritable.class, FloatWritable.class, > compressionType, codec); > FloatWritable x=new FloatWritable(); > StringWritable y=new StringWritable(); > for (int i = count-1; i >= 0; i--) { > x.set(i); y.set(""+i); > writer.append(y, x); > } > writer.close(); > } > private static void sortTest(FileSystem fs, int count, int megabytes, > int factor, boolean fast, Path file, Configuration > conf) > throws IOException { > fs.delete(new Path(file+".sorted"), true); > SequenceFile.Sorter sorter = newSorter(fs, fast, megabytes, > factor, conf); > LOG.debug("sorting " + count + " records"); > sorter.sort(file, file.suffix(".sorted")); > LOG.info("done sorting " + count + " debug"); > } > > private static SequenceFile.Sorter newSorter(FileSystem fs, > boolean fast, > int megabytes, int factor, Configuration conf) { > SequenceFile.Sorter sorter = > fast > ? new SequenceFile.Sorter(fs, new > IntWritable.Comparator(), > FloatWritable.class, > IntWritable.class, conf) > : new SequenceFile.Sorter(fs, FloatWritable.class, > IntWritable.class, conf); > sorter.setMemory(megabytes * 1024*1024); > sorter.setFactor(factor); > return sorter; > } > ---------------------Note String/Float does not match Float/Int > Macintosh-2:datanode bobcook$ od -c file > 0000000 S E Q 006 016 S t r i n g W r i t a > 0000020 b l e \r F l o a t W r i t a b l > 0000040 e \0 \0 \0 \0 \0 \0 203 ` n E J z 272 d 352 > 0000060 w 177 373 \n 364 M 276 \0 \0 \0 \n \0 \0 \0 006 \0 > 0000100 \0 \0 001 \0 4 @ 200 \0 \0 \0 \0 \0 \n \0 \0 \0 > 0000120 006 \0 \0 \0 001 \0 3 @ @ \0 \0 \0 \0 \0 \n \0 > 0000140 \0 \0 006 \0 \0 \0 001 \0 2 @ \0 \0 \0 \0 \0 \0 > 0000160 \n \0 \0 \0 006 \0 \0 \0 001 \0 1 ? 200 \0 \0 \0 > 0000200 \0 \0 \n \0 \0 \0 006 \0 \0 \0 001 \0 0 \0 \0 \0 > * > 0000220 > Macintosh-2:datanode bobcook$ od -c file.sorted > 0000000 S E Q 006 \r F l o a t W r i t a b > 0000020 l e \v I n t W r i t a b l e \0 \0 > 0000040 \0 \0 \0 \0 6 364 343 \r 256 h U 222 365 T 7 l > 0000060 357 i ~ } \0 \0 \0 \n \0 \0 \0 006 \0 \0 \0 001 > 0000100 \0 4 @ 200 \0 \0 \0 \0 \0 \n \0 \0 \0 006 \0 \0 > 0000120 \0 001 \0 3 @ @ \0 \0 \0 \0 \0 \n \0 \0 \0 006 > 0000140 \0 \0 \0 001 \0 2 @ \0 \0 \0 \0 \0 \0 \n \0 \0 > 0000160 \0 006 \0 \0 \0 001 \0 1 ? 200 \0 \0 \0 \0 \0 \n > 0000200 \0 \0 \0 006 \0 \0 \0 001 \0 0 \0 \0 \0 \0 > 0000216 > NOTE OUTPUT FILE IS TOTALLY TOASTED, but no error was generated! > PS: Your evaluation of my previous bug reports was enlightening. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.