[ 
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 <n...@nickallen.org>
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)

Reply via email to