Gabriel Reid created PHOENIX-1963:
-------------------------------------

             Summary: Irregular failures in ResultTest#testMonitorResult
                 Key: PHOENIX-1963
                 URL: https://issues.apache.org/jira/browse/PHOENIX-1963
             Project: Phoenix
          Issue Type: Bug
            Reporter: Gabriel Reid


While validating the 4.4.0 release candidates, I had to run the phoenix-pherf 
test cases a number of times to get them to pass.

The offending test was ResultTest#testMonitorResult. I was running the test via 
{{maven clean install}}, and getting results such as the following:
{code}
Tests run: 4, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 6.034 sec <<< 
FAILURE! - in org.apache.phoenix.pherf.ResultTest
testMonitorResult(org.apache.phoenix.pherf.ResultTest) Time elapsed: 4.363 sec 
<<< FAILURE!
java.lang.AssertionError: Failed to get correct amount of CSV records. 
expected:<243> but was:<261>
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:743)
at org.junit.Assert.assertEquals(Assert.java:118)
at org.junit.Assert.assertEquals(Assert.java:555)
at org.apache.phoenix.pherf.ResultTest.testMonitorResult(ResultTest.java:99)
{code}

An important thing to point out is that I was encountering this issue on a 
single-CPU virtual machine, so if there are some sensitive timing issues then 
they might be tickled by my setup.

A quick look at the code doesn't show any directly obvious causes for this, but 
I did notice in the MonitorManager class that the resultHandler instance 
variable is protected via itself as a monitor in the run method, and protected 
by the this monitor in the readResults method. I'm not sure if this has 
anything to do with the underlying issue, but it does seem a bit questionable 
(i.e. different monitors are being used to lock access to a single variable).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to