[
https://issues.apache.org/jira/browse/METRON-597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15713250#comment-15713250
]
ASF GitHub Bot commented on METRON-597:
---------------------------------------
GitHub user nickwallen opened a pull request:
https://github.com/apache/incubator-metron/pull/383
METRON-597 Sporadic Failures of Profiler Integration Tests
## [METRON-597](https://issues.apache.org/jira/browse/METRON-597)
### Changes
#### MockHTable
The MockHTable uses an ArrayList to store a log of Puts that have been
submitted against the MockHTable. The MockHTable, along with the put log, is
accessed from multiple threads during the integration tests, but it is not
thread safe.
The Put log is used by multiple tests, but more so by the
ProfilerIntegrationTest. This tests polls the list to block the thread until
the expected number of Puts have been submitted. This is likely why this test
is more impacted by this issue than others.
#### Test Validation
Some of the test validation was very opinionated about the number of times
the Profiler itself had flushed. As the integration test is being validated,
the Profiler is running in the background and will continue to flush
measurements.
The validation was changed to not care how many times the Profiler has
flushed measurements to HBase.
### Testing
Prior to these changes, the Travis CI build was reliably failing. After
making these changes, the Travis CI build has passed at least 6 times in a row.
I have also run this repeatedly on my local machine and have not
experienced any failures.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/nickwallen/incubator-metron METRON-597-2
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/incubator-metron/pull/383.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #383
----
commit 7344c05a2fe4add2809bbb3ea94b6c4d3bd937f6
Author: Nick Allen <[email protected]>
Date: 2016-11-30T18:37:26Z
METRON-597 Sporadic Failures of Profiler Integration Tests
----
> Sporadic Failures of Profiler Integration Tests
> -----------------------------------------------
>
> Key: METRON-597
> URL: https://issues.apache.org/jira/browse/METRON-597
> Project: Metron
> Issue Type: Bug
> Reporter: Nick Allen
> Assignee: Nick Allen
>
> Seems to be some kind of timing issue.
> {code}
> -------------------------------------------------------
> T E S T S
> -------------------------------------------------------
> Running org.apache.metron.profiler.integration.ProfilerIntegrationTest
> Tests run: 5, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 66.564 sec
> <<< FAILURE!
> testExample3(org.apache.metron.profiler.integration.ProfilerIntegrationTest)
> Time elapsed: 16.759 sec <<< FAILURE!
> java.lang.AssertionError: expected:<20.0> but was:<NaN>
> at org.junit.Assert.fail(Assert.java:88)
> at org.junit.Assert.failNotEquals(Assert.java:834)
> at org.junit.Assert.assertEquals(Assert.java:553)
> at org.junit.Assert.assertEquals(Assert.java:683)
> at
> org.apache.metron.profiler.integration.ProfilerIntegrationTest.testExample3(ProfilerIntegrationTest.java:203)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:483)
> at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.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(JUnit4Provider.java:252)
> at
> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
> at
> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:483)
> at
> org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
> at
> org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
> at
> org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
> at
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
> at
> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
> Results :
> Failed tests:
> testExample3(org.apache.metron.profiler.integration.ProfilerIntegrationTest):
> expected:<20.0> but was:<NaN>
> Tests run: 5, Failures: 1, Errors: 0, Skipped: 0
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)