[
https://issues.apache.org/jira/browse/MAPREDUCE-7361?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Yang Chen updated MAPREDUCE-7361:
---------------------------------
Description:
h2. What is the purpose of this change
This PR is to clean the polluted shared status among the 3 tests:
{code:java}
Test1:
org.apache.hadoop.mapred.TestTaskProgressReporter.testBytesWrittenRespectingLimit
Test2: org.apache.hadoop.mapred.TestTaskProgressReporter.testScratchDirSize
Test3: org.apache.hadoop.mapred.TestTaskProgressReporter.testTaskProgress{code}
{{}}
Test1 and Test2 pollute the shared status with Test3, which can make test3 fail.
h2. Reproduce the test failures
Run the tests in the same JVM in the following orders:
* Test1 and Test3
* Test2 and Test3
h2. Expected result
The tests should run successfully when multiple tests that use this shared
state are run in the same JVM.
h2. Actual result
* Run Test1 and Test3, Test3 fails:
{code:java}
[ERROR] TestTaskProgressReporter.testTaskProgress:267 expected:<[2]> but
was:<[3]>{code}
{{}} * Run Test2 and Test3, Test3 fails:
{code:java}
[ERROR] TestTaskProgressReporter.testTaskProgress:267 expected:<[2]> but
was:<[11]>{code}
{{}}
h2. Fix
Clean the value of {{statusUpdateTimes}} to 0 at the start of Test3(the victim)
to clean the pollution from Test1 and Test2(the polluters).
was:
h2. What is the purpose of this change
This PR is to fix a non-idempotent test
{code:java}
org.apache.hadoop.mapred.TestTaskProgressReporter.testTaskProgress{code}
h2. Why the test failed
The root cause for the failure is that this test does not reset
{{statusUpdateTimes}} at the end, which pollutes the shared state. It may be
better to clean state pollutions so that some other tests won't fail in the
future due to the shared state polluted by this test.
h2. Reproduce test failure
Run the test twice in the same JVM.
h2. Expected result
The test should pass without any failure 2 times.
h2. Actual result
Get failures:
{code:java}
[ERROR] Failures:
[ERROR] TestTaskProgressReporter.testTaskProgress:267 expected:<[2]> but
was:<[4]>{code}
h2. Fix
Reset the value of {{statusUpdateTimes}} to 0 at the end of the test.
> Clean shared state pollution to avoid flaky tests
> -------------------------------------------------
>
> Key: MAPREDUCE-7361
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-7361
> Project: Hadoop Map/Reduce
> Issue Type: Bug
> Reporter: Yang Chen
> Priority: Minor
>
> h2. What is the purpose of this change
> This PR is to clean the polluted shared status among the 3 tests:
>
> {code:java}
> Test1:
> org.apache.hadoop.mapred.TestTaskProgressReporter.testBytesWrittenRespectingLimit
> Test2: org.apache.hadoop.mapred.TestTaskProgressReporter.testScratchDirSize
> Test3:
> org.apache.hadoop.mapred.TestTaskProgressReporter.testTaskProgress{code}
> {{}}
> Test1 and Test2 pollute the shared status with Test3, which can make test3
> fail.
> h2. Reproduce the test failures
> Run the tests in the same JVM in the following orders:
> * Test1 and Test3
> * Test2 and Test3
> h2. Expected result
> The tests should run successfully when multiple tests that use this shared
> state are run in the same JVM.
> h2. Actual result
> * Run Test1 and Test3, Test3 fails:
> {code:java}
> [ERROR] TestTaskProgressReporter.testTaskProgress:267 expected:<[2]> but
> was:<[3]>{code}
> {{}} * Run Test2 and Test3, Test3 fails:
> {code:java}
> [ERROR] TestTaskProgressReporter.testTaskProgress:267 expected:<[2]> but
> was:<[11]>{code}
> {{}}
> h2. Fix
> Clean the value of {{statusUpdateTimes}} to 0 at the start of Test3(the
> victim) to clean the pollution from Test1 and Test2(the polluters).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]