METRON-743 (https://github.com/apache/incubator-metron/pull/467) for reference.
On Sat, Feb 25, 2017 at 11:51 PM, Casey Stella <ceste...@gmail.com> wrote: > Hmm, that's a very good catch if it's the issue. I was able to verify > that if you botch the sort order of the files that it fails. > > Would you mind sorting the files on PcapJob line 199 by filename? > Something like Collections.sort(files, (o1,o2) -> o1.getName().compareTo(o2. > getName())); > > I'm going to submit a PR regardless because we should own the assumptions > here, but I suspect that for the HDFS filesystem this works as expected. > That being said, it's better to be safe than sorry. > > Casey > > On Sat, Feb 25, 2017 at 11:35 PM, Otto Fowler <ottobackwa...@gmail.com> > wrote: > >> /** >> * List the statuses and block locations of the files in the given path. >> * Does not guarantee to return the iterator that traverses statuses >> * of the files in a sorted order. >> * <pre> >> * If the path is a directory, >> * if recursive is false, returns files in the directory; >> * if recursive is true, return files in the subtree rooted at the path. >> * If the path is a file, return the file's status and block locations. >> * </pre> >> * @param f is the path >> * @param recursive if the subdirectories need to be traversed recursively >> * >> * @return an iterator that traverses statuses of the files >> * >> * @throws FileNotFoundException when the path does not exist; >> * @throws IOException see specific implementation >> */ >> public RemoteIterator<LocatedFileStatus> listFiles( >> >> >> So if we depend on this returning something sorted, it is only working >> accidentally? >> >> >> On February 25, 2017 at 23:10:59, Otto Fowler (ottobackwa...@gmail.com) >> wrote: >> >> https://issues.apache.org/jira/browse/HADOOP-12009 makes it seem like >> there is no order >> >> >> On February 25, 2017 at 23:06:37, Otto Fowler (ottobackwa...@gmail.com) >> wrote: >> >> Maybe Hadoop Local FileSystem returns different things from ListFiles() on >> different platforms? >> That would be something to check? >> >> Sorry that is all I got right now >> >> >> >> On February 25, 2017 at 22:57:49, Otto Fowler (ottobackwa...@gmail.com) >> wrote: >> >> There are also some if Log.isDebugEnabled() outputs, so maybe try changing >> the logging level, maybe running just this test? >> >> >> >> On February 25, 2017 at 22:39:02, Otto Fowler (ottobackwa...@gmail.com) >> wrote: >> >> There are multiple “tests” within the test, with different parameters. If >> you look at where this is breaking, it is at >> >> { >> //make sure I get them all. >> Iterable<byte[]> results = >> job.query(new Path(outDir.getAbsolutePath()) >> , new Path(queryDir.getAbsolutePath()) >> , getTimestamp(0, pcapEntries) >> , getTimestamp(pcapEntries.size()-1, pcapEntries) + 1 >> , 10 >> , new EnumMap<>(Constants.Fields.class) >> , new Configuration() >> , FileSystem.get(new Configuration()) >> , new FixedPcapFilter.Configurator() >> ); >> assertInOrder(results); >> Assert.assertEquals(Iterables.size(results), pcapEntries.size()); >> >> >> >> Which is the 7th test job run against the data. I am not familiar with >> this test or code, but >> that has to be significant. >> >> Maybe you should enable and print out the information of the results - and >> we can see a pattern there? >> >> On February 25, 2017 at 22:19:00, Kyle Richardson ( >> kylerichards...@gmail.com) >> wrote: >> >> mvn integration-test >> >> Although I have also tried... >> mvn clean install && mvn integration-test >> mvn clean package && mvn integration-test >> mvn install && mvn surefire-test@unit-tests && mvn >> surefire-test@integration-tests >> >> -Kyle >> >> On Feb 25, 2017, at 8:34 PM, Otto Fowler <ottobackwa...@gmail.com> wrote: >> >> What command are you using to build? >> >> >> >> On February 25, 2017 at 17:40:20, Kyle Richardson ( >> kylerichards...@gmail.com) >> wrote: >> >> Tried with Oracle JDK and got the same result. I went as far as trying to >> run it through the debugger but am not that familiar with this part of the >> code. The timestamps of the packets are definitely not coming back in the >> expected order, but I'm not sure why. Could it be related to something >> filesystem specific? >> >> Apologies if I'm just being dense but I'd really like to understand why >> this consistently fails on some platforms and not others. >> >> -Kyle >> >> > On Feb 25, 2017, at 9:07 AM, Kyle Richardson <kylerichards...@gmail.com >> > >> wrote: >> > >> > Ok, I've tried this so many times I may be going crazy, so thought I'd >> ask the community for a sanity check. >> > >> > I'm trying to verify RC5 and I keep running into the same integration >> test failures but only on my Fedora (24 and 25) and CentOS 7 systems. It >> passes fine on my Macbook. >> > >> > It always fails on the PcapTopologyIntegrationTest (test results pasted >> below). Anyone have any ideas? I'm using the exact same version of maven >> in >> all cases (v3.3.9). The only difference I can think of is the >> Fedora/CentOS >> systems are using OpenJDK whereas the Macbook is running Sun/Oracle JDK. >> > >> > ------------------------------------------------------- >> > T E S T S >> > ------------------------------------------------------- >> > Running org.apache.metron.pcap.integration.PcapTopologyIntegrationTest >> > Formatting using clusterid: testClusterID >> > Formatting using clusterid: testClusterID >> > Sent pcap data: 20 >> > Wrote 20 to kafka >> > Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 42.011 >> sec <<< FAILURE! - in >> org.apache.metron.pcap.integration.PcapTopologyIntegrationTest >> > >> testTimestampInPacket(org.apache.metron.pcap.integration.Pca >> pTopologyIntegrationTest) >> Time elapsed: 26.968 sec <<< FAILURE! >> > java.lang.AssertionError >> > at org.junit.Assert.fail(Assert.java:86) >> > at org.junit.Assert.assertTrue(Assert.java:41) >> > at org.junit.Assert.assertTrue(Assert.java:52) >> > at >> org.apache.metron.pcap.integration.PcapTopologyIntegrationTe >> st.assertInOrder(PcapTopologyIntegrationTest.java:537) >> > at >> org.apache.metron.pcap.integration.PcapTopologyIntegrationTe >> st.testTopology(PcapTopologyIntegrationTest.java:383) >> > at >> org.apache.metron.pcap.integration.PcapTopologyIntegrationTe >> st.testTimestampInPacket(PcapTopologyIntegrationTest.java:135) >> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> > at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce >> ssorImpl.java:62) >> > at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe >> thodAccessorImpl.java:43) >> > at java.lang.reflect.Method.invoke(Method.java:498) >> > at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall( >> FrameworkMethod.java:50) >> > at >> org.junit.internal.runners.model.ReflectiveCallable.run(Refl >> ectiveCallable.java:12) >> > at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(Fr >> ameworkMethod.java:47) >> > at >> org.junit.internal.runners.statements.InvokeMethod.evaluate( >> InvokeMethod.java:17) >> > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) >> > at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit >> 4ClassRunner.java:78) >> > at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit >> 4ClassRunner.java:57) >> > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) >> > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) >> > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) >> > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) >> > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) >> > at org.junit.runners.ParentRunner.run(ParentRunner.java:363) >> > at >> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUni >> t4Provider.java:283) >> > at >> org.apache.maven.surefire.junit4.JUnit4Provider.executeWithR >> erun(JUnit4Provider.java:173) >> > at >> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestS >> et(JUnit4Provider.java:153) >> > at >> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit >> 4Provider.java:128) >> > at >> org.apache.maven.surefire.booter.ForkedBooter.invokeProvider >> InSameClassLoader(ForkedBooter.java:203) >> > at >> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInPro >> cess(ForkedBooter.java:155) >> > at >> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) >> > >> > >> testTimestampInKey(org.apache.metron.pcap.integration.PcapTo >> pologyIntegrationTest) >> Time elapsed: 15.038 sec <<< FAILURE! >> > java.lang.AssertionError >> > at org.junit.Assert.fail(Assert.java:86) >> > at org.junit.Assert.assertTrue(Assert.java:41) >> > at org.junit.Assert.assertTrue(Assert.java:52) >> > at >> org.apache.metron.pcap.integration.PcapTopologyIntegrationTe >> st.assertInOrder(PcapTopologyIntegrationTest.java:537) >> > at >> org.apache.metron.pcap.integration.PcapTopologyIntegrationTe >> st.testTopology(PcapTopologyIntegrationTest.java:383) >> > at >> org.apache.metron.pcap.integration.PcapTopologyIntegrationTe >> st.testTimestampInKey(PcapTopologyIntegrationTest.java:152) >> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> > at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce >> ssorImpl.java:62) >> > at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe >> thodAccessorImpl.java:43) >> > at java.lang.reflect.Method.invoke(Method.java:498) >> > at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall( >> FrameworkMethod.java:50) >> > at >> org.junit.internal.runners.model.ReflectiveCallable.run(Refl >> ectiveCallable.java:12) >> > at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(Fr >> ameworkMethod.java:47) >> > at >> org.junit.internal.runners.statements.InvokeMethod.evaluate( >> InvokeMethod.java:17) >> > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) >> > at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit >> 4ClassRunner.java:78) >> > at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit >> 4ClassRunner.java:57) >> > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) >> > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) >> > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) >> > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) >> > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) >> > at org.junit.runners.ParentRunner.run(ParentRunner.java:363) >> > at >> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUni >> t4Provider.java:283) >> > at >> org.apache.maven.surefire.junit4.JUnit4Provider.executeWithR >> erun(JUnit4Provider.java:173) >> > at >> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestS >> et(JUnit4Provider.java:153) >> > at >> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit >> 4Provider.java:128) >> > at >> org.apache.maven.surefire.booter.ForkedBooter.invokeProvider >> InSameClassLoader(ForkedBooter.java:203) >> > at >> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInPro >> cess(ForkedBooter.java:155) >> > at >> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) >> > >> > >> > Results : >> > >> > Failed tests: >> > >> PcapTopologyIntegrationTest.testTimestampInKey:152->testTopo >> logy:383->assertInOrder:537 >> null >> > >> PcapTopologyIntegrationTest.testTimestampInPacket:135->testT >> opology:383->assertInOrder:537 >> null >> > >> > >> > >> > Tests run: 2, Failures: 2, Errors: 0, Skipped: 0 >> > >> > [ERROR] Failed to execute goal >> org.apache.maven.plugins:maven-surefire-plugin:2.18:test >> (integration-tests) on project metron-pcap-backend: There are test >> failures. >> > [ERROR] >> > [ERROR] Please refer to >> /home/kyle/projects/metron-fork/metron-platform/metron-pcap- >> backend/target/surefire-reports >> for the individual test results. >> > [ERROR] -> [Help 1] >> > [ERROR] >> > [ERROR] To see the full stack trace of the errors, re-run Maven with the >> -e switch. >> > [ERROR] Re-run Maven using the -X switch to enable full debug logging. >> > [ERROR] >> > [ERROR] For more information about the errors and possible solutions, >> please read the following articles: >> > [ERROR] [Help 1] >> http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException >> > [ERROR] >> > [ERROR] After correcting the problems, you can resume the build with the >> command >> > [ERROR] mvn <goals> -rf :metron-pcap-backend >> > >> > >> > >