You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-issues@hadoop.apache.org by "Zhengxi Li (Jira)" <ji...@apache.org> on 2020/11/29 23:16:00 UTC

[jira] [Updated] (MAPREDUCE-7310) Fix flaky test TestJobHistoryEventHandler.testSigTermedFunctionality

     [ https://issues.apache.org/jira/browse/MAPREDUCE-7310?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Zhengxi Li updated MAPREDUCE-7310:
----------------------------------
    Description: 
The test '{{org.apache.hadoop.mapreduce.jobhistory.TestJobHistoryEventHandler.testSigTermedFunctionality'}} is not idempotent and fails if run twice in the same JVM, because it pollutes state shared among tests. It may be good to clean this state pollution so that some other tests do not fail in the future due to the shared state polluted by this test.
h3. Details

Running `TestJobHistoryEventHandler.testSigTermedFunctionality` twice would result in the second run failing due to `NullPointerException`shown in the following:
{noformat}
 java.lang.NullPointerException
 at org.apache.hadoop.mapreduce.jobhistory.JobHistoryEventHandler.serviceStop(JobHistoryEventHandler.java:460)
 at org.apache.hadoop.service.AbstractService.stop(AbstractService.java:221)
 at org.apache.hadoop.mapreduce.jobhistory.TestJobHistoryEventHandler.testSigTermedFunctionality(TestJobHistoryEventHandler.java:933)
{noformat}
The root cause of this is that running '{{TestJobHistoryEventHandler.testSigTermedFunctionality'}} results in some entries to be added to the static '{{JobHistoryEventHandler.fileMap'}}. The entries in the '{{fileMap'}} are not cleaned up when the test is done, resulting in a NullPointerException in the second run as the stale object(added in the first run) in the 'fileMap' is accessed.

 

PR link: https://github.com/apache/hadoop/pull/2499

  was:
The test '{{org.apache.hadoop.mapreduce.jobhistory.TestJobHistoryEventHandler.testSigTermedFunctionality'}} is not idempotent and fails if run twice in the same JVM, because it pollutes state shared among tests. It may be good to clean this state pollution so that some other tests do not fail in the future due to the shared state polluted by this test.
h3. Details

Running `TestJobHistoryEventHandler.testSigTermedFunctionality` twice would result in the second run failing due to `NullPointerException`shown in the following:
{noformat}
 java.lang.NullPointerException
 at org.apache.hadoop.mapreduce.jobhistory.JobHistoryEventHandler.serviceStop(JobHistoryEventHandler.java:460)
 at org.apache.hadoop.service.AbstractService.stop(AbstractService.java:221)
 at org.apache.hadoop.mapreduce.jobhistory.TestJobHistoryEventHandler.testSigTermedFunctionality(TestJobHistoryEventHandler.java:933)
{noformat}
The root cause of this is that running '{{TestJobHistoryEventHandler.testSigTermedFunctionality'}} results in some entries to be added to the static '{{JobHistoryEventHandler.fileMap'}}. The entries in the '{{fileMap'}} are not cleaned up when the test is done, resulting in a NullPointerException in the second run as the stale object(added in the first run) in the 'fileMap' is accessed.


> Fix flaky test TestJobHistoryEventHandler.testSigTermedFunctionality
> --------------------------------------------------------------------
>
>                 Key: MAPREDUCE-7310
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-7310
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>            Reporter: Zhengxi Li
>            Priority: Minor
>
> The test '{{org.apache.hadoop.mapreduce.jobhistory.TestJobHistoryEventHandler.testSigTermedFunctionality'}} is not idempotent and fails if run twice in the same JVM, because it pollutes state shared among tests. It may be good to clean this state pollution so that some other tests do not fail in the future due to the shared state polluted by this test.
> h3. Details
> Running `TestJobHistoryEventHandler.testSigTermedFunctionality` twice would result in the second run failing due to `NullPointerException`shown in the following:
> {noformat}
>  java.lang.NullPointerException
>  at org.apache.hadoop.mapreduce.jobhistory.JobHistoryEventHandler.serviceStop(JobHistoryEventHandler.java:460)
>  at org.apache.hadoop.service.AbstractService.stop(AbstractService.java:221)
>  at org.apache.hadoop.mapreduce.jobhistory.TestJobHistoryEventHandler.testSigTermedFunctionality(TestJobHistoryEventHandler.java:933)
> {noformat}
> The root cause of this is that running '{{TestJobHistoryEventHandler.testSigTermedFunctionality'}} results in some entries to be added to the static '{{JobHistoryEventHandler.fileMap'}}. The entries in the '{{fileMap'}} are not cleaned up when the test is done, resulting in a NullPointerException in the second run as the stale object(added in the first run) in the 'fileMap' is accessed.
>  
> PR link: https://github.com/apache/hadoop/pull/2499



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: mapreduce-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: mapreduce-issues-help@hadoop.apache.org